PHP Manual

PHP Manual

Stig Sæther Bakken
Alexander Aulbach
Egon Schmid
Jim Winstead
Lars Torben Wilson
Rasmus Lerdorf
Andrei Zmievski
Jouni Ahto

Edited by

Stig Sæther Bakken

Egon Schmid

This file was generated: Tue Apr 27 04:57:16 2004
Go to http://www.php.net/docs.php to get the actual version.

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 the PHP Documentation Group


Manual do PHP

Stig Sæther Bakken
Alexander Aulbach
Egon Schmid
Jim Winstead
Lars Torben Wilson
Rasmus Lerdorf
Andrei Zmievski
Jouni Ahto

Editado por

Stig Sæther Bakken
Egon Schmid
Renato Arruda
André L F S Bacci
Anderson Fortaleza
João Prado Maia
Claudio Pereira
Lucas Rocha
Alessander Pery Lopes Thomaz
Taniel Franklin
Thomas Gonzalez Miranda
Ernani Joppert Pontes Martins
Fernando Correa da Conceição
Marcelo Pereira Fonseca da Silva

27-04-2004

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 PHP Documentation Group

Prefácio
I. Começando
1. Introdução
2. Um simples tutorial
3. Instalação
4. Configuração
II. Referência da Linguagem
5. Sintaxe básica
6. Tipos
7. Variáveis
8. Constantes
9. Expressões
10. Operadores
11. Estruturas de Controle
12. Funções
13. Classes e Objetos
14. Referências
III. Segurança
15. Segurança
IV. Características
16. HTTP authentication with PHP
17. Cookies
18. Gerenciar o upload de arquivos
19. Using remote files
20. Connection handling
21. Persistent Database Connections
22. Safe Mode
23. Utilizando o PHP na linha de comando
V. Referência das Funções
I. Apache
II. Arrays
III. Aspell functions [deprecated]
IV. BCMath Funções Matemáticas de Precisão Arbitrária
V. Bzip2
VI. Calendário, funções
VII. CCVS API Functions [deprecated]
VIII. COM support functions for Windows
IX. Classes e Objetos
X. ClibPDF Functions
XI. Crack, funções de teste de senha
XII. CURL, Client URL Library Functions
XIII. Cybercash Payment Functions
XIV. Cyrus IMAP administration Functions
XV. Character Type Functions
XVI. Database (dbm-style) Abstraction Layer Functions
XVII. Data e hora
XVIII. dBase
XIX. DBM Functions [deprecated]
XX. funções dbx
XXI. DB++ Functions
XXII. Direct IO Functions
XXIII. Diretórios
XXIV. DOM XML Functions
XXV. .NET Functions
XXVI. Erros e Logs
XXVII. File Alteration Monitor Functions
XXVIII. FrontBase Functions
XXIX. filePro
XXX. Filesystem (Sistema de arquivos)
XXXI. Forms Data Format Functions
XXXII. FriBiDi
XXXIII. FTP
XXXIV. Funções para manuseamento de funções
XXXV. Gettext
XXXVI. GMP
XXXVII. HTTP
XXXVIII. Hyperwave Functions
XXXIX. Hyperwave API Functions
XL. iconv Functions
XLI. Image Functions
XLII. IMAP, POP3 and NNTP Functions
XLIII. Informix Functions
XLIV. InterBase
XLV. Ingres II Functions
XLVI. Funções de IRC Gateway
XLVII. PHP / Java Integration
XLVIII. LDAP Functions
XLIX. LZF Functions
L. Mail
LI. mailparse Functions
LII. Matemática e Trigonometria
LIII. Multibyte String Functions
LIV. MCAL Functions
LV. Mcrypt Encryption Functions
LVI. MCVE Payment Functions
LVII. Mhash - Funções de hash
LVIII. Funções Mimetype
LIX. Microsoft SQL Server
LX. Ming functions for Flash
LXI. Miscelânea
LXII. mnoGoSearch Functions
LXIII. mSQL
LXIV. MySQL
LXV. Improved MySQL Extension
LXVI. Mohawk Software Session Handler Functions
LXVII. muscat Functions
LXVIII. Network - Funções de Rede
LXIX. Ncurses Terminal Screen Control Functions
LXX. Lotus Notes Functions
LXXI. NSAPI-specific Functions
LXXII. ODBC Unificado
LXXIII. Object Aggregation/Composition Functions
LXXIV. Funções do Oracle 8
LXXV. OpenSSL Functions
LXXVI. Oracle
LXXVII. Ovrimos SQL Functions
LXXVIII. Output Control(Controle de Saída)
LXXIX. Sobrecarga de propriedades e métodos de objetos
LXXX. PDF functions
LXXXI. Verisign Payflow Pro Functions
LXXXII. PHP Opções e Informações
LXXXIII. POSIX Functions
LXXXIV. PostgreSQL
LXXXV. Process Control Functions
LXXXVI. Programas, Funções de Execução
LXXXVII. Impressão
LXXXVIII. Pspell Functions
LXXXIX. GNU Readline
XC. GNU Recode Functions
XCI. Regular Expression Functions (Perl-Compatible)
XCII. Funções qtdom
XCIII. Regex : Expressões Regulares (compatíveis com o padrão POSIX)
XCIV. Semaphore, Shared Memory and IPC Functions
XCV. SESAM Database Functions
XCVI. Sessões
XCVII. Funções de Memória Compartilhada
XCVIII. SimpleXML functions
XCIX. SOAP Functions
C. SQLite
CI. Shockwave Flash Functions
CII. SNMP Functions
CIII. Socket Functions
CIV. Standard PHP Library (SPL) Functions
CV. Stream Functions
CVI. String
CVII. Sybase
CVIII. TCP Wrappers Functions
CIX. Tidy Functions
CX. Tokenizer Functions
CXI. URL
CXII. Variáveis, Funções
CXIII. vpopmail Functions
CXIV. W32api Functions
CXV. WDDX Functions
CXVI. XML, Analisadores
CXVII. XML-RPC Functions
CXVIII. xdiff Functions
CXIX. XSL functions
CXX. XSLT Functions
CXXI. YAZ Functions
CXXII. YP/NIS Functions
CXXIII. Zip File Functions (Read Only Access)
CXXIV. Zlib - Funções de Compressão
VI. Zend API
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
VII. PHP API: Interface para criação de extensões
43. Streams API for PHP Extension Authors
VIII. FAQ: Perguntas Mais Freqüentes
44. General Information
45. Mailing lists
46. Obtaining PHP
47. Database issues
48. Installation
49. Build Problems
50. Using PHP
51. PHP and HTML
52. PHP and COM
53. PHP and other languages
54. Migrating from PHP 2 to PHP 3
55. Migrating from PHP 3 to PHP 4
56. Questões Diversas
IX. Apêndices
A. A História do PHP e projetos relacionados
B. Migrating from PHP 4 to PHP 5
C. Migrating from PHP 3 to PHP 4
D. Migrating from PHP/FI 2 to PHP 3
E. O debugador do PHP
F. Extending PHP 3
G. Lista de funções sinônimas (aliases)
H. Palavras reservadas do PHP
I. List of Resource Types
J. List of Supported Protocols/Wrappers
K. List of Available Filters
L. List of Supported Socket Transports
M. PHP type comparison tables
N. List of Parser Tokens
O. Sobre o manual
P. Open Publication License
Q. Índice de funções
R. (Identificadores não encontrados na compilação do manual)
X. HTML Help Edition
57. About This Edition
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Próxima
Prefácio


Prefácio

PHP, que significa "PHP: Hypertext Preprocessor", é uma linguagem de programação de ampla utilização, interpretada, que é especialmente interessante para desenvolvimento para a Web e pode ser mesclada dentro do código HTML. A sintaxe da linguagem lembra C, Java e Perl, e é fácil de aprender. O objetivo principal da linguagem é permitir a desenvolvedores escrever páginas que serão geradas dinamicamente rapidamente, mas você pode fazer muito mais do que isso com PHP.

Esse manual consiste primariamente de uma referência de funções, mas ele também contém uma referência da linguagem, explicações sobre as mais importantes características do PHP, e outras informações suplementares .

Você pode fazer o download desse manual em vários formatos em http://www.php.net/docs.php. Para mais informações sobre como esse manual é desenvolvido pode ser encontrado em 'Sobre o manual' do apêndice.

Veja também a história do PHP.

Anterior | Principal | Próxima
Manual do PHP |  | Começando


Começando

Manual do PHP
Anterior Próxima

I. Começando

Índice
1. Introdução
2. Um simples tutorial
3. Instalação
4. Configuração

Anterior | Principal | Próxima
Prefácio |  | Introdução


Introdução

Manual do PHP
Anterior Próxima

Capítulo 1. Introdução

Índice
O que é PHP?
O que o PHP pode fazer?

O que é PHP?

PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de script Open Source de uso geral, muito utilizada e especialmente guarnecida para o desenvolvimento de aplicações Web embútivel dentro do HTML.

Uma resposta direta, mas o que isso significa?

Exemplo 1-1. Um exemplo introdutório

<html>
    <head>
        <title>Exemplo</title>
    </head>
    <body>

        <?php
        echo "Olá, Eu sou um script PHP!";
        ?>

    </body>
</html>

Note como isso é diferente de scripts CGI escritos em outras linguagens como Perl ou C --- ao invés de escrever um programa com um monte de comandos para imprimir HTML, você escreve um arquivo HTML com algum código inserido para fazer alguma coisa (nesse caso, imprimir um pouco de texto). O código PHP é delimitado por tags iniciais e finais que lhe permitem pular pra dentro e pra fora do "modo PHP".

O que distingui o PHP de algo como Javascript no lado do cliente é que o código é executado no servidor. Se você tivesse um script similar ao acima em seu servidor, o cliente receberia os resultados da execução desse script, sem nenhum modo de determinar como é o código fonte. Você pode inclusive configurar seu servidor para processar todos os seus arquivos HTML como PHP, e então não haverá nenhum modo dos usuários descobrirem que se você usa essa linguagem ou não.

A melhor coisa em usar PHP está no fato de ele ser extremamente simples para um iniciante, mas oferece muitos recursos para o programador profissional. Não se preocupe em ler as longas listas de funções do PHP. Você pode pular essa parte (por enquanto) e começar a escrever scripts em poucas horas.

Apesar do desenvolvimento do PHP ser focado nos scripts do lado do servidor, você pode fazer muito mais com ele. Veja isso e leia mais na seção O que o PHP pode fazer?.

Anterior | Principal | Próxima
Começando | Acima | O que o PHP pode fazer?


O que o PHP pode fazer?

Qualquer coisa. O PHP é focado para ser uma linguagem de script do lado do servidor, portanto, você pode fazer qualquer coisa que outro programa CGI pode fazer, como: coletar dados de formulários, gerar páginas com conteúdo dinâmico ou enviar e receber cookies. Mas o PHP pode fazer muito mais.

Esses são os maiores campos onde os scripts PHP podem se utilizados:

  • Script no lado do servidor (server-side). Este é o mais tradicional e principal campo de atuação do PHP. Você precisa de três coisas para seu trabalho. O interpretador do PHP (como CGI ou módulo), um servidor web e um browser. Basta rodar o servidor web conectado a um PHP instalado. Você pode acessar os resultados de seu programa PHP com um browser, visualizando a página PHP através do servidor web. Veja as instruções de instalação para maiores informações.

  • Script de linha de comando. Você pode fazer um script PHP funcionar sem um servidor web ou browser. A única coisa necessária é o interpretador. Esse tipo de uso é ideal para script executados usando o cron ou o Agendador de Tarefas (no Windows). Esses scripts podem ser usados também para rotinas de processamento de texto. Veja a seção Utilizando o PHP em linha de comando para maiores informações.

  • Escrevendo aplicações GUI no lado do cliente (client-side). O PHP não é (provavelmente) a melhor linguagem para produção de aplicações com interfaces em janelas, mas o PHP faz isso muito bem, e se você deseja usar alguns recursos avançados do PHP em aplicações no lado do cliente poderá utilizar o PHP-GTK para escrever esses programas. E programas escritos desta forma ainda serão independentes de plataforma. O PHP-GTK é uma extensão do PHP, não disponível na distribuição oficial. Se você está interessado no PHP-GTK, visite seu website

O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo Linux, várias variantes Unix (incluindo HP-UX, Solaris e OpenBSD), Microsoft Windows, Mac OS X, RISC OS, e provavelmente outros. O PHP também é suportado pela maioria dos servidores web atuais, incluindo Apache, Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet Servers, Oreilly Website Pro Server, Caudium, Xitami, OmniHTTPd, e muitos outros. O PHP pode ser configurado como módulo para a maioria dos servidores, e para os outros como um CGI comum.

Com o PHP, portanto, você tem a liberdade para escolher o sistema operacional e o servidor web. Do mesmo modo, você pode escolher entre utilizar programação estrutural ou programação orientada a objeto, ou ainda uma mistura deles. Mesmo não desenvolvendo nenhum recurso padrão de OOP (Object Oriented Programming, Programação Orientada a Objetos) na versão atual do PHP, muitas bibliotecas de código e grandes aplicações (incluindo a biblioteca PEAR) foram escritos somente utilizando OOP.

Com PHP você não está limitado a gerar somente HTML. As habilidades do PHP incluem geração de imagens, arquivos PDF e animações Flash (utilizando libswf ou Ming) criados dinamicamente, on the fly. Você pode facilmente criar qualquer padrão texto, como XHTML e outros arquivos XML. O PHP pode gerar esses padrões e os salvar no sistema de arquivos, em vez de imprimi-los, formando um cache dinâmico de suas informações no lado do servidor.

Talvez a mais forte e mais significativa característica do PHP é seu suporte a uma ampla variedade de banco de dados. Escrever uma página que consulte um banco de dados é incrivelmente simples. Os seguintes bancos de dados são atualmente suportados:

Adabas D | Ingres | Oracle (OCI7 and OCI8)
dBase | InterBase | Ovrimos
Empress | FrontBase | PostgreSQL
FilePro (read-only) | mSQL | Solid
Hyperwave | Direct MS-SQL | Sybase
IBM DB2 | MySQL | Velocis
Informix | ODBC | Unix dbm

Também foi providenciado uma abstração de banco de dados DBX permitindo a você utilizar qualquer banco de dados transparentemente com sua extensão. Adicionalmente, o PHP suporta ODBC (Open Database Connection, ou Padrão Aberto de Conexão com Bancos de Dados), permitindo que você utilize qualquer outro banco de dados que suporte esse padrão mundial.

O PHP também tem suporte para comunicação com outros serviços utilizando protocolos como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (em Windows) e incontáveis outros. Você pode abrir sockets de rede e interagir diretamente com qualquer protocolo. O PHP também suporta o intercâmbio de dados complexos WDDX, utilizado em virtualmente todas as linguagens de programação para web. Falando de comunicação, o PHP implementa a instanciação de objetos Java e os utiliza transparentemente como objetos PHP. Você ainda pode usar sua extensão CORBA para acessar objetos remotos.

O PHP é extremamente útil em recursos de processamento de texto, do POSIX Estendido ou expressões regulares Perl até como interpretador para documentos XML. Para acessar e processar documentos XML, são suportados os padrões SAX e DOM. Você ainda pode usar nossa extensão XSLT para transformar documentos XML.

Utilizando o PHP no campo do e-commerce, você poderá usar as funções específicas para Cybescash, CyberMUT, Verysign Payflow Pro e CCVS, práticos sistemas de pagamento online.

Por último mas longe de terminar, temos também outras extensões interessantes: funções para o search engine mnoGoSearch, funções para Gateway IRC, vários utilitários de compressão (gzip, bz2), calendário e conversões de datas, tradução...

Como você pode ver, esta página não é suficiente para descrever todos os recursos e benefícios que o PHP pode oferecer. Leia nas seções sobre a Instalação do PHP, e veja a referência das funções para detalhes das extensões mencionadas aqui.

Anterior | Principal | Próxima
Introdução | Acima | Um simples tutorial


Um simples tutorial

Manual do PHP
Anterior Próxima

Capítulo 2. Um simples tutorial

Índice
O que eu preciso?
Sua primeira página PHP
Algo Útil
Tratando Formulários
Usando códigos antigos com a nova versão do PHP
O que mais?

Aqui nós iremos mostrar o básico do básico do PHP em um curto tutorial. Este texto fala somente sobre a criação de páginas dinâmicas com o PHP, visto que o PHP pode criar mais do que somente webpages. Veja a seção entitulada O que o PHP pode fazer para mais informações.

Fazer páginas com PHP é o mesmo que criar páginas HTML e você pode criá-las e editá-las da mesma maneira que faz com suas páginas HTML normal.

O que eu preciso?

Neste tutorial nós presumimos que seu servidor tem suporte ao PHP ativado e que todos os arquivos terminam com a extensão .php são tratados pelo PHP. Na maioria dos servidores esta é a extensão padrão para os arquivos PHP, mas pergunte ao seu administrador só para ter certeza. Se o seu servidor suporta PHP então você não precisa fazer mais nada. Apenas crie seus arquivos .php e coloque-os no seu diretório web e o servidor irá com um passe de mágica mostrar suas páginas PHP. Não há nenhuma necessidade de compilação para qualquer ferramenta extra. Pense nesses arquivos PHP como se eles fossem páginas HTML com algumas tags à mais que deixaram você fazer coisas mais interessantes do que somente páginas HTML estáticas.

Digamos que você quer salvar sua preciosa conexão e desenvolver tudo localmente. Neste caso, você precisará instalar um servidor web, como o Apache, e claro o PHP. Você também irá querer instalar uma base de dados, como por exemplo o MySQL. Você pode instalá-los separadamente ou pelo jeito mais simples que é usar os pacotes pré-configurados. que irão instalar automaticamente todas as coisas com apenas alguns cliques. É super fácil configurar um servidor web com suporte ao PHP em qualquer sistema operacional, incluindo Linux e Windows. No Linux, você deve procurar o rpmfind que é muito útil na localização de pacotes RPM.

Anterior | Principal | Próxima
O que o PHP pode fazer? | Acima | Sua primeira página PHP


Sua primeira página PHP

Crie um novo arquivo chamado ola.php e coloque-o em seu diretório root do seu servidor web (DOCUMENT_ROOT) com o seguinte conteúdo:

Exemplo 2-1. Nosso primeiro script PHP: ola.php

<html>
 <head>
  <title>PHP Teste</title>
 </head>
 <body>
 <?php echo "<p>Olá Mundo</p>"; ?>
 </body>
</html>

Use o seu navegador para acessar o arquivo pelo endereço de seu servidor web, ao final do endereço coloque o arquivo "/ola.php" como referência. Quando o desenvolvimento é local você usará uma url como esta http://localhost/ola.php ou http://127.0.0.1/ola.php mas dependendo da configuração do seu servidor web. Entretanto isto está fora do escopo deste tutorial, veja também as diretivas DocumentRoot e ServerName dos arquivos de configuração do seu servidor web. (no Apache o nome do arquivo é httpd.conf). Se tudo foi configurado corretamente, o arquivo irá ser interpretado pelo PHP e irá mostrar a seguinte mensagem de saída no seu navegador:

<html>
 <head>
  <title>PHP Teste</title>
 </head>
 <body>
 <p>Olá Mundo</p>
 </body>
</html>

Note que isto não é como em um script CGI. O arquivo não precisa ser executável ou especial em nenhum aspecto. Pense nesse arquivo como um arquivo HTML normal mas com a diferença que ele pode conter algumas tags especiais à mais que permitem à você fazer coisas mais interessantes do que somente páginas HTML estáticas.

Este exemplo é extremamente simples e você realmente não precisa usar o PHP para criar uma página como esta. Tudo o que ele faz é mostrar uma mensagem Olá Mundo usando a declaração echo() do PHP.

Se você tentar rodar este exemplo e ele não mostrar nenhuma mensagem de saída, ou aparecer uma caixa de diálogo pedindo para você salvar o arquivo, ou você ver o arquivo em formato de texto, há uma grande chance do seu servidor não ter o PHP habilitado. Peça ao seu administrar para habilitar o PHP para você usando o capítulo de Instalação do manual. Se você está desenvolvendo localmente, também leia o capítulo indicado acima para ter certeza de que configurou tudo corretamente. Se os problemas continuarem à persistir, não hesite em usar uma das várias formas de ajuda que o PHP pode lhe oferecer.

O objetivo do exemplo é mostrar o formato especial das tags do PHP. Neste exemplo nós usamos <?php para indicar que à partir daquele ponto começa um código PHP. Então nós colocamos uma declaração de fechamento para indicar que o script PHP acabou, usando a tag ?>. Você pode usar o PHP em qualquer parte do seu código HTML, e também pode usar várias tags de abertura e fechamento no mesmo arquivo. Para mais detalhes, leia a seção do manual que fala da sintaxe básica do PHP.

Uma Nota sobre os Editores de Texto: Há muitos editores de textos e Integrated Development Enviroments (IDEs) que você pode usar para criar, editar e gerenciar arquivos PHP. Uma lista parcial destas ferramentas pode ser vista na Lista de Editores para PHP. Se você gostaria de recomendar algum editor, por favor visite o endereço acima e pergunte à gerenciador do site para adicionar o seu editor à lista. Ter um editor que colore as sintaxes das tags pode ser muito útil.

Uma Nota sobre os Processadores Word: Processadores Word como o StarOffice Write, Microsoft Word e Abiword não são boas escolhas para editar arquivos PHP. Se você deseja usar um desses para testar seus scripts, você precisa verificar se você está salvando os arquivos como TEXTO PLANO ou o PHP não irá ser capaz de ler e executar o seu script.

Uma Nota sobre o Bloco de Notas do Windows: Se você está escrevendo seus scripts PHP usando o Bloco de Notas do Windows, você precisará verificar que os arquivos estão sendo salvos com a extensão .php. (O Bloco de Notas do Windows adiciona automaticamente a extensão .txt aos arquivos à não ser que você siga um dos passos a seguir para previnir isto). Quando a caixa de diálogo Salvar estiver aberta e você for digitar o nome do seu arquivo, coloque o nome do arquivo entre aspas (i.e. "ola.php"). Uma alternativa, é você clicar na lista drop-down 'Documentos de Texto' na caixa de diálogo salvar e alterar para "Todos os tipos de arquivos". Você agora pode digitar o nome do seu arquivo sem usar as aspas.

Agora que você criou com sucesso um script simples em PHP, é hora de criar o mais famoso dos scripts PHP! Uma chamada à função phpinfo() e você verá todas as informações sobre seu sistema e configurações disponíveis como a de Variáveis Pré-definidas, módulos carregados pelo PHP, e as opções de configuração. Tire algum tempo para ver e rever estas importantes informações.

Anterior | Principal | Próxima
Um simples tutorial | Acima | Algo Útil


Algo Útil

Vamos fazer alguma coisa um pouco mais útil agora. Nós iremos checar qual é o tipo de navegador que o visitante está utilizando para ver a nossa página. De fato, para fazer isto nós teremos que checar qual é o valor da string agente que o navegador envia como parte de sua requisição HTTP. Esta informação é armazenada em uma variável. Variáveis sempre começam com um símbolo de cifrão no PHP. A variável que nos interessa no momento é a $_SERVER["HTTP_USER_AGENT"].

Nota sobre as Auto-Globais do PHP: $_SERVER é uma variável especial reservada do PHP que contém todas as informações sobre o servidor web. Ela é conhecida como uma Auto-Global (ou Superglobal). Veja a página do manual relacionada as Auto-globais para mais informações. Estas variáveis especiais foram introduzidas no PHP 4.1.0. Antes desta versão, nós usávamos os velhos arrays $HTTP_*_VARS, como o $HTTP_SERVER_VARS. Entretanto, este estilo antingo foi removido, porém ainda existem. (Veja a nota sobre códigos antigos.)

Para chamar esta variável, nós podemos fazer isto:

Exemplo 2-2. Imprimindo a variável (Elemento Array)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

Um exemplo de saída deste script poderia ser:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Há muitos tipos de variáveis disponíveis no PHP. No exemplo acima nós escrevemos um elemento Array. Arrays podem ser muito úteis.

$_SERVER é somente uma variável que é automaticamente disponibilizada para você pelo PHP. Uma lista de Variáveis Reservadas pode ser vista na seção Variáveis Reservadas do manual ou você pode pegar uma lista completa delas criando um arquivo como este:

Exemplo 2-3. Exibindo todas as variáveis pré-definidas usando a função phpinfo()

<?php phpinfo(); ?>

Se você carregar este arquivo no seu navegador você irá ver uma página com todas as informações sobre o PHP junto com uma lista de todos os tipos de variáveis disponíveis para você.

Você pode colocar mútiplas declarações PHP dentro da tag PHP e criar pequenos blocos de códigos que faem muito mais do que um simples echo. Por exemplo, se você quer checar se o navegador é o Internet Explorer faça algo como isso:

Exemplo 2-4. Exemplo usando controles de declarações e funções

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "Você está usando o Internet Explorer<br />";
}
?>

Um exemplo de Saída seria:
Você está usando o Internet Explorer<br />

Aqui nós mostraremos alguns novos conceitos. Nós temos a declaração if. SE você é familiar com a sintaxe básica usada pela linguagem C isto parecerá ser lógico para você. Se você não conhece a linguagem C ou alguma outra linguagem onde a sintaxe usada acima é usada, você provavelmente precisará de um livro introdutório sobre o PHP, dê uma lida nos primeiros capítulos do livro, ou leia a parte sobre a Referência da Linguagem no manual. Você pode encontrar uma lista de livros sobre PHP em at http://www.php.net/books.php.

O segundo conceito que iremos abordar é a chamada à função strstr(). A função strstr() é trazida junto com o PHP, ela faz uma busca em uma palavra por uma outra palavra. Neste caso nós procuramos pela palavra "MSIE" dentro de $_SERVER["HTTP_USER_AGENT"]. Se a palavra for encontrada, a função returna TRUE e se ela não for encontrada a função retorna FALSE. Se o retorno for TRUE, a declaração if ocorre e o código dentro dela é executado. Caso contrário, o código não é executado. Sinta-se à vontade para criar exemplos similares com o if, else, e outras funções como a strtoupper() e strlen(). Cada uma delas está no manual com seus respectivos exemplos.

Nós podemos avançar agora e mostrar à você como alternar entre os modos PHP mesmo que você esteja executando blocos de códigos:

Exemplo 2-5. Mesclando entre os modos PHP e HTML

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr retorna verdadeiro</h3>
<center><b>Você está usando o Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr retorna falso</h3>
<center><b>Você não está usando o Internet Explorer</b></center>
<?php
}
?>

Um exemplo de saída deste script poderia ser:
<h3>strstr retorna verdadeiro</h3>
<center><b>Você está usando o Internet Explorer</b></center>

Ao invés de usar a declaração echo do PHP para imprimir a saída dos dados, nós saímos do modo do PHP e usamos o HTML normal. O importante à notar aqui é que a lógica do script continua intacta. Somente alguns blocos HTML será enviados de acordo com o que a declaração strstr() retornar, ou seja TRUE ou FALSE. Em outras palavras, se a palavra MSIE for encontrada ou não.

Anterior | Principal | Próxima
Sua primeira página PHP | Acima | Tratando Formulários


Tratando Formulários

Uma das características mais fortes do PHP é o jeito como ele trata formulários HTML. O conceito básico que é importante entender é que qualquer elemento de formulário em um formulário irá automaticamente ficar disponível para você usá-los em seus scripts PHP. Por favor leia a seção Variáveis externas do PHP para mais informaçõess exemplos de como usar formulários com PHP. Aqui vai um exemplo:

Exemplo 2-6. Um simples formulário HTML

<form action="acao.php" method="POST">
 Seu nome <input type="text" name="nome" />
 Sua idade: <input type="text" name="idade" />
 <input type="submit">
</form>

Não há nada de especial neste formulário. É um formulário HTML comum sem nenhuma tag especial de qualquer tipo. Quando o usuário preencer este formulário e clicar no botão enviar, a página action.php é chamada. Neste arquivo nós teremos algo como este:

Exemplo 2-7. Imprimindo dados de nosso formulário

Oi <?php echo $_POST["nome"]; ?>.
Você tem <?php echo $_POST["idade"]; ?> anos.

Um exemplo de saída deste script seria:
Oi Thomas.
Você tem 18 anos.

É óbvio o que este script faz. Não há nada de mais nele. As variáveis $_POST["nome"] e $_POST["idade"] são automaticamente criadas para você pelo PHP. Antigamente nós usávamos a auto-global $_SERVER, agora nós simplesmente usamos a auto-global $_POST que contém todos os dados vindos do POST. Se você usar o método GET então nossas informações residirão na auto-global $_GET. Você também pode usar a auto-global $_REQUEST se você não se importa com o tipo de dados que vêm do seu formulário. Esta auto-global contém uma mescla de GET, POST, COOKIE e FILE. Veja também a função import_request_variables().

Anterior | Principal | Próxima
Algo Útil | Acima | Usando códigos antigos com a nova versão do PHP


Usando códigos antigos com a nova versão do PHP

Agora que o PHP cresceu e é uma linguagem de script popular, há muitos recursos por ai que fazem uma listagem de códigos que você pode reusar em seus próprios scripts. Para a maioria dos desenvolvedores da linguagem PHP tentaram manter a compatibilidade, para que um script escrito em uma versão antiga do PHP, pude-se (deveria) rodar sem nenhuma alteração em uma versão mais nova do PHP, em prática algumas alterações serão geralmente necessárias.

Duas das coisas mais importantes recentemente alteradas que afetam um código antigo é:

  • O velho método que não está mais em uso que é o de usar arrays $HTTP_*_VARS (que precisam ser indicados como sendo globais quando usados dentro de uma função ou método). A seguir nós abordaremos os arrays auto-globais no PHP 4.1.0. Eles são: $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST, e $_SESSION. Os antigos arrays $HTTP_*_VARS, como os $HTTP_POST_VARS, ainda existem até a versão do PHP 3.

  • Variáveis externas não são mais registrdas no escopo global por padrão. Em outras palavras, com o PHP 4.2.0 a diretiva register_globals está desligada por padrão no arquivo php.ini. O método utilizado atualmente é o de acessar estes valores via arrays auto-globais como mencionado acima. Scripts antigos, livros, e tutoriais podem estar utilizando a diretiva ligada. Se ela estiver ligada, por exemplo, você poderá utilizar a variável $id da URL http://www.exemplo.com/pagina.php?id=42. Se a diretiva estiver desligada, você usará $_GET['id'].

Para mais detalhes destas alterações, veja a seção variáveis pré-definidas.

Anterior | Principal | Próxima
Tratando Formulários | Acima | O que mais?


O que mais?

Com o que você sabe agora você deverá estar apto à entender a maioria do manual e também os vários exemplos de scripts disponíveis no arquivo de exemplos. Você também pode encontrar outros exemplos nos sites do php.net e nos links da seção: http://www.php.net/links.php.

Anterior | Principal | Próxima
Usando códigos antigos com a nova versão do PHP | Acima | Instalação


Instalação

Manual do PHP
Anterior Próxima

Capítulo 3. Instalação

Índice
General Installation Considerations
Unix/HP-UX installs
Unix/Linux installs
Unix/Mac OS X installs
Unix/OpenBSD installs
Unix/Solaris installs
Installation on Unix systems
Installation on Windows systems
Servers-CGI/Commandline
Servidores-Apache
Servers-Apache 2.0
Servers-Caudium
Servers-fhttpd
Servers-IIS/PWS
Servers-Netscape, iPlanet and SunONE
Servers-OmniHTTPd Server
Servers-Oreilly Website Pro
Servers-Sambar
Servers-Xitami
Servers-Other web servers
Problems?
Miscellaneous configure options

General Installation Considerations

Before installing first, you need to know what do you want to use PHP for. There are three main fields you can use PHP, as described in the What can PHP do? section:

  • Server-side scripting

  • Command line scripting

  • Client-side GUI applications

For the first and most common form, you need three things: PHP itself, a web server and a web browser. You probably already have a web browser, and depending on your operating system setup, you may also have a web server (e.g. Apache on Linux or IIS on Windows). You may also rent webspace at a company. This way, you don't need to set up anything on your own, only write your PHP scripts, upload it to the server you rent, and see the results in your browser.

While setting up the server and PHP on your own, you have two choices for the method of connecting PHP to the server. For many servers PHP has a direct module interface (also called SAPI). These servers include Apache, Microsoft Internet Information Server, Netscape and iPlanet servers. Many other servers have support for ISAPI, the Microsoft module interface (OmniHTTPd for example). If PHP has no module support for your web server, you can always use it as a CGI processor. This means you set up your server to use the command line executable of PHP (php.exe on Windows) to process all PHP file requests on the server.

If you are also interested to use PHP for command line scripting (e.g. write scripts autogenerating some images for you offline, or processing text files depending on some arguments you pass to them), you always need the command line executable. For more information, read the section about writing command line PHP applications. In this case, you need no server and no browser.

With PHP you can also write client side GUI applications using the PHP-GTK extension. This is a completely different approach than writing web pages, as you do not output any HTML, but manage windows and objects within them. For more information about PHP-GTK, please visit the site dedicated to this extension. PHP-GTK is not included in the official PHP distribution.

From now on, this section deals with setting up PHP for web servers on Unix and Windows with server module interfaces and CGI executables.

Downloading PHP, the source code, and binary distributions for Windows can be found at http://www.php.net/downloads.php. We recommend you to choose a mirror nearest to you for downloading the distributions.

Anterior | Principal | Próxima
O que mais? | Acima | Unix/HP-UX installs


Unix/HP-UX installs

This section contains notes and hints specific to installing PHP on HP-UX systems. (Contributed by paul_mckay at clearwater-it dot co dot uk).

Nota: These tips were written for PHP 4.0.4 and Apache 1.3.9.

  1. You need gzip, download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z uncompress the file and install using swinstall.

  2. You need gcc, download a binary distribution from http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz. uncompress this file and install gcc using swinstall.

  3. You need the GNU binutils, you can download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz. uncompress this file and install binutils using swinstall.

  4. You now need bison, you can download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, install as above.

  5. You now need flex, you need to download the source from one of the http://www.gnu.org mirrors. It is in the non-gnu directory of the ftp site. Download the file, gunzip, then tar -xvf it. Go into the newly created flex directory and run ./configure, followed by make, and then make install.

    If you have errors here, it's probably because gcc etc. are not in your PATH so add them to your PATH.

  6. Download the PHP and apache sources.

  7. gunzip and tar -xvf them. We need to hack a couple of files so that they can compile OK.

  8. Firstly the configure file needs to be hacked because it seems to lose track of the fact that you are a hpux machine, there will be a better way of doing this but a cheap and cheerful hack is to put lt_target=hpux10.20 on line 47286 of the configure script.

  9. Next, the Apache GuessOS file needs to be hacked. Under apache_1.3.9/src/helpers change line 89 from echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 to: echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0

  10. You cannot install PHP as a shared object under HP-UX so you must compile it as a static, just follow the instructions at the Apache page.

  11. PHP and Apache should have compiled OK, but Apache won't start. you need to create a new user for Apache, e.g. www, or apache. You then change lines 252 and 253 of the conf/httpd.conf in Apache so that instead of

    User nobody
Group nogroup

    you have something like

    User www
Group sys

    This is because you can't run Apache as nobody under hp-ux. Apache and PHP should then work.

Anterior | Principal | Próxima
Instalação | Acima | Unix/Linux installs


Unix/Linux installs

This section contains notes and hints specific to installing PHP on Linux distributions.

Using Packages

Many Linux distributions have some sort of package installation system, such as RPM. This can assist in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your webserver. If you are unfamiliar with building and compiling your own software, it is worth checking to see whether somebody has already built a packaged version of PHP with the features you need.

Anterior | Principal | Próxima
Unix/HP-UX installs | Acima | Unix/Mac OS X installs


Unix/Mac OS X installs

This section contains notes and hints specific to installing PHP on Mac OS X Server.

Using Packages

There are a few pre-packaged and pre-compiled versions of PHP for Mac OS X. This can help in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your web server yourself. If you are unfamiliar with building and compiling your own software, it's worth checking whether somebody has already built a packaged version of PHP with the features you need.

Compiling for OS X server

There are two slightly different versions of Mac OS X, client and server. The following is for OS X Server.

Mac OS X server install.

  1. Get the latest distributions of Apache and PHP.

  2. Untar them, and run the configure program on Apache like so.
    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache

  3. If you want the compiler to do some optimization., you may also want to add this line:
    setenv OPTIM=-O2

  4. Next, go to the PHP 4 source directory and configure it.
    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12
    If you have any other additions (MySQL, GD, etc.), be sure to add them here. For the --with-apache string, put in the path to your apache source directory, for example /src/apache_1.3.12.

  5. Type make and make install. This will add a directory to your Apache source directory under src/modules/php4.

  6. Now, reconfigure Apache to build in PHP 4.
    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache \
--activate-module=src/modules/php4/libphp4.a
    You may get a message telling you that libmodphp4.a is out of date. If so, go to the src/modules/php4 directory inside your apache source directory and run this command: ranlib libmodphp4.a. Then go back to the root of the apache source directory and run the above configure command again. That'll bring the link table up to date. Run make and make install again.

  7. Copy and rename the php.ini-dist file to your bin directory from your PHP 4 source directory: cp php.ini-dist /usr/local/bin/php.ini or (if your don't have a local directory) cp php.ini-dist /usr/bin/php.ini.

Compiling for MacOS X client

Those tips are graciously provided by Marc Liyanage.

The PHP module for the Apache web server included in Mac OS X. This version includes support for the MySQL and PostgreSQL databases.

NOTE: Be careful when you do this, you could screw up your Apache web server!

Do this to install:

  1. Open a terminal window.

  2. Type wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz, wait for the download to finish.

  3. Type gunzip libphp4.so.gz.

  4. Type sudo apxs -i -a -n php4 libphp4.so

  5. Now type sudo open -a TextEdit /etc/httpd/httpd.conf. TextEdit will open with the web server configuration file. Locate these two lines towards the end of the file: (Use the Find command)
    #AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
    Remove the two hash marks (#), then save the file and quit TextEdit.

  6. Finally, type sudo apachectl graceful to restart the web server.

PHP should now be up and running. You can test it by dropping a file into your Sites folder which is called test.php. Into that file, write this line: <?php phpinfo() ?>.

Now open up 127.0.0.1/~your_username/test.php in your web browser. You should see a status table with information about the PHP module.

Anterior | Principal | Próxima
Unix/Linux installs | Acima | Unix/OpenBSD installs


Unix/OpenBSD installs

This section contains notes and hints specific to installing PHP on OpenBSD 3.4.

Using Binary Packages

Using binary packages to install PHP on OpenBSD is the recommended and simplest method. The core package has been separated from the various modules, and each can be installed and removed independently from the others. The files you need can be found on your OpenBSD CD or on the FTP site.

The main package you need to install is php4-core-4.3.3.tgz, which contains the basic engine (plus gettext and iconv). Next, take a look at the module packages, such as php4-mysql-4.3.3.tgz or php4-imap-4.3.3.tgz. You need to use the phpxs command to activate and deactivate these modules in your php.ini.

Exemplo 3-1. OpenBSD Package Install Example

# pkg_add php4-core-4.3.3.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (add in mysql)
# pkg_add php4-mysql-4.3.3.tgz
# /usr/local/sbin/phpxs -a mysql
  (add in imap)
# pkg_add php4-imap-4.3.3.tgz
# /usr/local/sbin/phpxs -a imap
  (remove mysql as a test)
# pkg_delete php4-mysql-4.3.3
# /usr/local/sbin/phpxs -r mysql
  (install the PEAR libraries)
# pkg_add php4-pear-4.3.3.tgz

Read the packages(7) manual page for more information about binary packages on OpenBSD.

Using Ports

You can also compile up PHP from source using the ports tree. However, this is only recommended for users familiar with OpenBSD. The PHP 4 port is split into two sub-directories: core and extensions. The extensions directory generates sub-packages for all of the supported PHP modules. If you find you do not want to create some of these modules, use the no_* FLAVOR. For example, to skip building the imap module, set the FLAVOR to no_imap.

Common Problems

  • The default install of Apache runs inside a chroot(2) jail, which will restrict PHP scripts to accessing files under /var/www. You will therefore need to create a /var/www/tmp directory for PHP session files to be stored, or use an alternative session backend. In addition, database sockets need to be placed inside the jail or listen on the localhost interface. If you use network functions, some files from /etc such as /etc/resolv.conf and /etc/services will need to be moved into /var/www/etc. The OpenBSD PEAR package automatically installs into the correct chroot directories, so no special modification is needed there. More information on the OpenBSD Apache is available in the OpenBSD FAQ.

  • The OpenBSD 3.4 package for the gd extension requires XFree86 to be installed. If you do not wish to use some of the font features that require X11, install the php4-gd-4.3.3-no_x11.tgz package instead.

Older Releases

Older releases of OpenBSD used the FLAVORS system to compile up a statically linked PHP. Since it is hard to generate binary packages using this method, it is now deprecated. You can still use the old stable ports trees if you wish, but they are unsupported by the OpenBSD team. If you have any comments about this, the current maintainer for the port is Anil Madhavapeddy (avsm at openbsd dot org).

Anterior | Principal | Próxima
Unix/Mac OS X installs | Acima | Unix/Solaris installs


Unix/Solaris installs

This section contains notes and hints specific to installing PHP on Solaris systems.

Required software

Solaris installs often lack C compilers and their related tools. Read this FAQ for information on why using GNU versions for some of these tools is necessary. The required software is as follows:

  • gcc (recommended, other C compilers may work)

  • make

  • flex

  • bison

  • m4

  • autoconf

  • automake

  • perl

  • gzip

  • tar

  • GNU sed

In addition, you will need to install (and possibly compile) any additional software specific to your configuration, such as Oracle or MySQL.

Using Packages

You can simplify the Solaris install process by using pkgadd to install most of your needed components.

Anterior | Principal | Próxima
Unix/OpenBSD installs | Acima | Installation on Unix systems


Installation on Unix systems

This section will guide you through the general configuration and installation of PHP on Unix systems. Be sure to investigate any sections specific to your platform or web server before you begin the process.

Prerequisite knowledge and software:

  • Basic Unix skills (being able to operate "make" and a C compiler, if compiling)

  • An ANSI C compiler (if compiling)

  • flex (for compiling)

  • bison (for compiling)

  • A web server

  • Any module specific components (such as gd, pdf libs, etc.)

There are several ways to install PHP for the Unix platform, either with a compile and configure process, or through various pre-packaged methods. This documentation is mainly focused around the process of compiling and configuring PHP.

The initial PHP setup and configuration process is controlled by the use of the commandline options of the configure script. This page outlines the usage of the most common options, but there are many others to play with. Check out the Complete list of configure options for an exhaustive rundown. There are several ways to install PHP:

  • As an Apache 1.x module or an Apache 2.x module.

  • As an Pike module for Caudium

  • For use with AOLServer, NSAPI, phttpd, Pi3Web, Roxen, thttpd, or Zeus.

  • As a CGI executable

Apache Module Quick Reference

PHP can be compiled in a number of different ways, but one of the most popular is as an Apache module. The following is a quick installation overview.

Exemplo 3-2. Quick Installation Instructions for PHP 4 (Apache Module Version)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-ftp
9.  make
10. make install
11. cd ../apache_1.3.x
12. ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
15. cd ../php-x.x.x
16. cp php.ini-dist /usr/local/lib/php.ini
17. Edit your httpd.conf or srm.conf file and add:
      AddType application/x-httpd-php .php

18. Use your normal procedure for restarting the Apache server. (You must
    stop and restart the server, not just cause the server to reload by
    use a HUP or USR1 signal.)

Building

When PHP is configured, you are ready to build the CGI executable. The command make should take care of this. If it fails and you can't figure out why, see the Problems section.

Anterior | Principal | Próxima
Unix/Solaris installs | Acima | Installation on Windows systems


Installation on Windows systems

This section applies to Windows 98/Me and Windows NT/2000/XP. PHP will not work on 16 bit platforms such as Windows 3.1 and sometimes we refer to the supported Windows platforms as Win32. Windows 95 is no longer supported as of PHP 4.3.0.

There are two main ways to install PHP for Windows: either manually or by using the InstallShield installer.

If you have Microsoft Visual Studio, you can also build PHP from the original source code.

Once you have PHP installed on your Windows system, you may also want to load various extensions for added functionality.

Windows InstallShield

The Windows PHP installer is available from the downloads page at http://www.php.net/downloads.php. This installs the CGI version of PHP and, for IIS, PWS, and Xitami, configures the web server as well.

Nota: While the InstallShield installer is an easy way to make PHP work, it is restricted in many aspects, as automatic setup of extensions for example is not supported. The whole set of supported extensions is only available by downloading the zip binary distribution.

Install your selected HTTP server on your system and make sure that it works.

Run the executable installer and follow the instructions provided by the installation wizard. Two types of installation are supported - standard, which provides sensible defaults for all the settings it can, and advanced, which asks questions as it goes along.

The installation wizard gathers enough information to set up the php.ini file and configure the web server to use PHP. For IIS and also PWS on NT Workstation, a list of all the nodes on the server with script map settings is displayed, and you can choose those nodes to which you wish to add the PHP script mappings.

Once the installation has completed the installer will inform you if you need to restart your system, restart the server, or just start using PHP.

Atenção

Be aware, that this setup of PHP is not secure. If you would like to have a secure PHP setup, you'd better go on the manual way, and set every option carefully. This automatically working setup gives you an instantly working PHP installation, but it is not meant to be used on online servers.

Manual Installation Steps

This install guide will help you manually install and configure PHP on your Windows webserver. The original version of this guide was compiled by Bob Silva, and can be found at http://www.umesd.k12.or.us/php/win32install.html. You need to download the zip binary distribution from the downloads page at http://www.php.net/downloads.php.

PHP 4 for Windows comes in three flavours - a CGI executable (php.exe), a CLI executable (sapi/php.exe) and some other SAPI modules:

php4apache.dll - Apache 1.3.x module
php4apache2.dll - Apache 2.0.x module
php4isapi.dll - ISAPI Module for ISAPI compliant webservers like IIS 4.0/PWS 4.0 or newer.
php4nsapi.dll - Netscape/iPlanet module

The latter form is new to PHP 4, and provides significantly improved performance and some new functionality. The CLI version is designed to use PHP for command line scripting. More information about CLI is available in the chapter about using PHP from the command line

Atenção

The SAPI modules have been significantly improved in the 4.1 release, however, you may find that you encounter possible server errors or other server modules such as ASP failing, in older systems.

DCOM and MDAC requirements: If you choose one of the SAPI modules and use Windows 95, be sure to download and install the DCOM update from the Microsoft DCOM pages. If you use Microsoft Windows 9x/NT4 download the latest version of the Microsoft Data Access Components (MDAC) for your platform. MDAC is available at http://msdn.microsoft.com/data/.

The following steps should be performed on all installations before any server specific instructions.

  • Extract the distribution file to a directory of your choice, c:\ is a good start. The zip package expands to a foldername like php-4.3.1-Win32 which is assumed to be renamed to php. For the sake of convenience and to be version independent the following steps assume your extracted version of PHP lives in c:\php. You might choose any other location but you probably do not want to use a path in which spaces are included (for example: C:\Program Files\PHP is not a good idea). Some web servers will crash if you do. The structure of your directory you extracted the zip file will look like:

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- CLI executable - ONLY for commandline scripting
   |
   |
   +--dlls                -- support dlls for extensions --> Windows system directory
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- extension dlls for PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- support files for SNMP
   |
   |
   +--openssl             -- support files for Openssl
   |
   |
   +--pdf-related         -- support files for PDF
   |
   |
   +--sapi                -- SAPI dlls
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-php4isapi.dll
   |  |
   |  |-..
   |
   |-install.txt
   |
   |-..
   |
   |-php.exe              -- CGI executable
   |
   |-..
   |
   |-php.ini-dist
   |
   |-php.ini-recommended
   |
   |-php4ts.dll           -- main dll --> Windows system directory
   |
   |-...

The CGI binary - c:\php\php.exe -, the CLI binary - c:\php\cli\php.exe -, and the SAPI modules - c:\php\sapi\*.dll - rely on the main dll c:\php\php4ts.dll. You have to make sure, that this dll can be found by your PHP installation. The search order for this dll is as follows:

The same directory from where php.exe is called. In case you use a SAPI module the same directory from where your webserver loads the dll (e.g. php4apache.dll).
Any directory in your Windows PATH environment variable.

  • The best bet is to make php4ts.dll available, regardless which interface (CGI or SAPI module) you plan to use. To do so, you have to copy this dll to a directory on your Windows path. The best place is your Windows system directory:

    C:\Windows\System for Windows 9x/ME
    C:\WINNT\System32 for Windows NT/2000 or C:\WINNT40\System32 for NT/2000 server
    C:\Windows\System32 for Windows XP

    If you plan to use a SAPI module from c:\php\sapi and do not like to copy dlls to your Windows system directory, you have the alternative choice to simply copy php4ts.dll to the sapi folder of your extracted zip package, c:\php\sapi.

  • The next step is to set up a valid configuration file for PHP, php.ini. There are two ini files distributed in the zip file, php.ini-dist and php.ini-recommended. We advise you to use php.ini-recommended, because we optimized the default settings in this file for performance, and security. Read this well documented file carefully and in addition study the ini settings and set every element manually yourself. If you would like to achieve the best security, then this is the way for you, although PHP works fine with these default ini files. Copy your chosen ini-file to a directory where PHP is able to find and rename it to php.ini. By default PHP searches php.ini in your Windows directory:

    On Windows 9x/ME/XP copy your chosen ini file to your %WINDIR%, which is typically C:\Windows.
    On Windows NT/2000 copy your chosen ini file to your %WINDIR% or %SYSTEMROOT%, which is typically C:\WINNT or C:\WINNT40 for NT/2000 servers.

  • If you're using NTFS on Windows NT, 2000 or XP, make sure that the user running the webserver has read permissions to your php.ini (e.g. make it readable by Everyone).

The following steps are optional.

  • Edit your new php.ini file. If you plan to use OmniHTTPd, do not follow the next step. Set the doc_root to point to your webservers document_root. For example:

    doc_root = c:\inetpub        // for IIS/PWS

doc_root = c:\apache\htdocs // for Apache

  • Choose which extensions you would like to load when PHP starts. See the section about Windows extensions, about how to set up one, and what is already built in. Note that on a new installation it is advisable to first get PHP working and tested without any extensions before enabling them in php.ini.

  • On PWS and IIS, you can set the browscap configuration setting to point to: c:\windows\system\inetsrv\browscap.ini on Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini on NT/2000, and c:\windows\system32\inetsrv\browscap.ini on XP.

Following this instructions you are done with the basic steps to setup PHP on Windows. The next step is to choose a webserver and enable it to run PHP. Installation instructions for the following webservers are available:

  • .. the Windows server family, Personal Web server (PWS) 3 and 4 or newer; Internet Information Server (IIS) 3 and 4 or newer.

  • .. the Apache servers Apache 1.3.x, and Apache 2.x.

  • .. the Netscape/iPlanet servers.

  • .. the OmniHTTPd server.

  • .. the Oreilly Website Pro server.

  • .. the Sambar server.

  • .. the Xitami server.

Building from source

Before getting started, it is worthwhile answering the question: "Why is building on Windows so hard?" Two reasons come to mind:

  1. Windows does not (yet) enjoy a large community of developers who are willing to freely share their source. As a direct result, the necessary investment in infrastructure required to support such development hasn't been made. By and large, what is available has been made possible by the porting of necessary utilities from Unix. Don't be surprised if some of this heritage shows through from time to time.

  2. Pretty much all of the instructions that follow are of the "set and forget" variety. So sit back and try follow the instructions below as faithfully as you can.

Requisitos

To compile and build PHP you need a Microsoft Development Environment. Microsoft Visual C++ 6.0 is recommended. To extract the downloaded files you need a extraction utility (e.g.: Winzip). If you don't already have an unzip utility, you can get a free version from InfoZip.

Before you get started, you have to download...

  • ..the win32 buildtools from the PHP site at http://www.php.net/extra/win32build.zip.

  • ..the source code for the DNS name resolver used by PHP from http://www.php.net/extra/bindlib_w32.zip. This is a replacement for the resolv.lib library included in win32build.zip.

  • If you plan to compile PHP as a Apache module you will also need the Apache sources.

Finally, you are going to need the source to PHP 4 itself. You can get the latest development version using anonymous CVS, a snapshot or the most recent released source tarball.

Putting it all together

After downloading the required packages you have to extract them in a proper place.

  • Create a working directory where all files end up after extracting, e.g: C:\work.

  • Create the directory win32build under your working directory (C:\work) and unzip win32build.zip into it.

  • Create the directory bindlib_w32 under your working directory (C:\work) and unzip bindlib_w32.zip into it.

  • Extract the downloaded PHP source code into your working directory (C:\work).

Following this steps your directory structure looks like this:

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Create the directories c:\usr\local\lib. Copy bison.simple from c:\work\win32build\bin to c:\usr\local\lib.

Nota: Cygwin users may omit the last step. A properly installed Cygwin environment provides the mandatory files bison.simple and bison.exe.

Configure MVC ++

The next step is to configure MVC ++ to prepare for compiling. Launch Microsoft Visual C++, and from the menu select Tools => Options. In the dialog, select the directories tab. Sequentially change the dropdown to Executables, Includes, and Library files. Your entries should look like this:

  • Executable files: c:\work\win32build\bin, Cygwin users: cygwin\bin

  • Include files: c:\work\win32build\include

  • Library files: c:\work\win32build\lib

Build resolv.lib

You must build the resolv.lib library. Decide whether you want to have debug symbols available (bindlib - Win32 Debug) or not (bindlib - Win32 Release). Build the appropriate configuration:

  • For GUI users, launch VC++, and then select File => Open Workspace, navigate to c:\work\bindlib_w32 and select bindlib.dsw. Then select Build=>Set Active Configuration and select the desired configuration. Finally select Build=>Rebuild All.

  • For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following commands:

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

At this point, you should have a usable resolv.lib in either your c:\work\bindlib_w32\Debug or Release subdirectories. Copy this file into your c:\work\win32build\lib directory over the file by the same name found in there.

Compiling

The best way to get started is to build the CGI version.

  • For GUI users, launch VC++, and then select File => Open Workspace and select c:\work\php-4.x.x\win32\php4ts.dsw . Then select Build=>Set Active Configuration and select the desired configuration, either php4ts - Win32 Debug_TS or php4ts - Win32 Release_TS. Finally select Build=>Rebuild All.

  • For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following commands from the c:\work\php-4.x.x\win32 directory:

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • At this point, you should have a usable php.exe in either your c:\work\php-4.x.x.\Debug_TS or Release_TS subdirectories.

It is possible to do minor customization to the build process by editing the main/config.win32.h file. For example you can change the default location of php.ini, the built-in extensions, and the default location for your extensions.

Next you may want to build the CLI version which is designed to use PHP from the command line. The steps are the same as for building the CGI version, except you have to select the php4ts_cli - Win32 Debug_TS or php4ts_cli - Win32 Release_TS project file. After a successful compiling run you will find the php.exe in either the directory Release_TS\cli\ or Debug_TS\cli\.

Nota: If you want to use PEAR and the comfortable command line installer, the CLI-SAPI is mandatory. For more information about PEAR and the installer read the documentation at the PEAR website.

In order to build the SAPI module (php4isapi.dll) for integrating PHP with Microsoft IIS, set your active configuration to php4isapi-whatever-config and build the desired dll.

Installation of Windows extensions

After installing PHP and a webserver on Windows, you will probably want to install some extensions for added functionality. You can choose which extensions you would like to load when PHP starts by modifying your php.ini. You can also load a module dynamically in your script using dl().

The DLLs for PHP extensions are prefixed with 'php_' in PHP 4 (and 'php3_' in PHP 3). This prevents confusion between PHP extensions and their supporting libraries.

Nota: In PHP 4.3.1 BCMath, Calendar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML and Zlib support is built in. You don't need to load any additional extensions in order to use these functions. See your distributions README.txt or install.txt or this table for a list of built in modules.

The default location PHP searches for extensions is c:\php4\extensions. To change this setting to reflect your setup of PHP edit your php.ini file:

  • You will need to change the extension_dir setting to point to the directory where your extensions lives, or where you have placed your php_*.dll files. Please do not forget the last backslash. For example:

    extension_dir = c:/php/extensions/

  • Enable the extension(s) in php.ini you want to use by uncommenting the extension=php_*.dll lines in php.ini. This is done by deleting the leading ; form the extension you want to load.

    Exemplo 3-3. Enable Bzip2 extension for PHP-Windows

    // change the following line from ...
;extension=php_bz2.dll

// ... to
extension=php_bz2.dll

  • Some of the extensions need extra DLLs to work. Couple of them can be found in the distribution package, in the c:\php\dlls\ folder but some, for example Oracle (php_oci8.dll) require DLLs which are not bundled with the distribution package. Copy the bundled DLLs from c:\php\dlls folder to your Windows PATH, safe places are:

    c:\windows\system for Windows 9x/Me
    c:\winnt\system32 for Windows NT/2000
    c:\windows\system32 for Windows XP

    If you have them already installed on your system, overwrite them only if something doesn't work correctly (Before overwriting them, it is a good idea to make a backup of them, or move them to another folder - just in case something goes wrong).

Nota: If you are running a server module version of PHP remember to restart your webserver to reflect your changes to php.ini.

The following table describes some of the extensions available and required additional dlls.

Tabela 3-1. PHP Extensions

Extension | Description | Notes
php_bz2.dll | bzip2 compression functions | None
php_calendar.dll | Calendar conversion functions | Built in since PHP 4.0.3
php_cpdf.dll | ClibPDF functions | None
php_crack.dll | Crack functions | None
php3_crypt.dll | Crypt functions | unknown
php_ctype.dll | ctype family functions | Built in since PHP 4.3.0
php_curl.dll | CURL, Client URL library functions | Requires: libeay32.dll, ssleay32.dll (bundled)
php_cybercash.dll | Cybercash payment functions | PHP <= 4.2.0
php_db.dll | DBM functions | Deprecated. Use DBA instead (php_dba.dll)
php_dba.dll | DBA: DataBase (dbm-style) Abstraction layer functions | None
php_dbase.dll | dBase functions | None
php3_dbm.dll | Berkeley DB2 library | unknown
php_dbx.dll | dbx functions |
php_domxml.dll | DOM XML functions | PHP <= 4.2.0 requires: libxml2.dll (bundled) PHP >= 4.3.0 requires: iconv.dll (bundled)
php_dotnet.dll | .NET functions | PHP <= 4.1.1
php_exif.dll | Read EXIF headers from JPEG | None
php_fbsql.dll | FrontBase functions | PHP <= 4.2.0
php_fdf.dll | FDF: Forms Data Format functions. | Requires: fdftk.dll (bundled)
php_filepro.dll | filePro functions | Read-only access
php_ftp.dll | FTP functions | Built-in since PHP 4.0.3
php_gd.dll | GD library image functions | Removed in PHP 4.3.2. Also note that truecolor functions are not available in GD1, instead, use php_gd2.dll.
php_gd2.dll | GD library image functions | GD2
php_gettext.dll | Gettext functions | PHP <= 4.2.0 requires gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll, iconv.dll (bundled).
php_hyperwave.dll | HyperWave functions | None
php_iconv.dll | ICONV characterset conversion | Requires: iconv-1.3.dll (bundled), PHP >=4.2.1 iconv.dll
php_ifx.dll | Informix functions | Requires: Informix libraries
php_iisfunc.dll | IIS management functions | None
php_imap.dll | IMAP POP3 and NNTP functions | PHP 3: php3_imap4r1.dll
php_ingres.dll | Ingres II functions | Requires: Ingres II libraries
php_interbase.dll | InterBase functions | Requires: gds32.dll (bundled)
php_java.dll | Java functions | PHP <= 4.0.6 requires: jvm.dll (bundled)
php_ldap.dll | LDAP functions | PHP <= 4.2.0 requires libsasl.dll (bundled), PHP >= 4.3.0 requires libeay32.dll, ssleay32.dll (bundled)
php_mbstring.dll | Multi-Byte String functions | None
php_mcrypt.dll | Mcrypt Encryption functions | Requires: libmcrypt.dll
php_mhash.dll | Mhash functions | PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_mime_magic.dll | Mimetype functions | Requires: magic.mime (bundled)
php_ming.dll | Ming functions for Flash | None
php_msql.dll | mSQL functions | Requires: msql.dll (bundled)
php3_msql1.dll | mSQL 1 client | unknown
php3_msql2.dll | mSQL 2 client | unknown
php_mssql.dll | MSSQL functions | Requires: ntwdblib.dll (bundled)
php3_mysql.dll | MySQL functions | Built-in in PHP 4
php3_nsmail.dll | Netscape mail functions | unknown
php3_oci73.dll | Oracle functions | unknown
php_oci8.dll | Oracle 8 functions | Requires: Oracle 8.1+ client libraries
php_openssl.dll | OpenSSL functions | Requires: libeay32.dll (bundled)
php_oracle.dll | Oracle functions | Requires: Oracle 7 client libraries
php_overload.dll | Object overloading functions | Built in since PHP 4.3.0
php_pdf.dll | PDF functions | None
php_pgsql.dll | PostgreSQL functions | None
php_printer.dll | Printer functions | None
php_shmop.dll | Shared Memory functions | None
php_snmp.dll | SNMP get and walk functions | NT only!
php_sockets.dll | Socket functions | None
php_sybase_ct.dll | Sybase functions | Requires: Sybase client libraries
php_tokenizer.dll | Tokenizer functions | Built in since PHP 4.3.0
php_w32api.dll | W32api functions | None
php_xmlrpc.dll | XML-RPC functions | PHP >= 4.2.1 requires: iconv.dll (bundled)
php_xslt.dll | XSLT functions | PHP <= 4.2.0 requires sablot.dll, expat.dll (bundled). PHP >= 4.2.1 requires sablot.dll, expat.dll, iconv.dll (bundled).
php_yaz.dll | YAZ functions | Requires: yaz.dll (bundled)
php_zip.dll | Zip File functions | Read only access
php_zlib.dll | ZLib compression functions | Built in since PHP 4.3.0

Anterior | Principal | Próxima
Installation on Unix systems | Acima | Servers-CGI/Commandline


Servers-CGI/Commandline

The default is to build PHP as a CGI program. This creates a commandline interpreter, which can be used for CGI processing, or for non-web-related PHP scripting. If you are running a web server PHP has module support for, you should generally go for that solution for performance reasons. However, the CGI version enables Apache users to run different PHP-enabled pages under different user-ids. Please make sure you read through the Security chapter if you are going to run PHP as a CGI.

As of PHP 4.3.0, some important additions have happened to PHP. A new SAPI named CLI also exists and it has the same name as the CGI binary. What is installed at {PREFIX}/bin/php depends on your configure line and this is described in detail in the manual section named Using PHP from the command line. For further details please read that section of the manual.

Testing

If you have built PHP as a CGI program, you may test your build by typing make test. It is always a good idea to test your build. This way you may catch a problem with PHP on your platform early instead of having to struggle with it later.

Benchmarking

If you have built PHP 3 as a CGI program, you may benchmark your build by typing make bench. Note that if safe mode is on by default, the benchmark may not be able to finish if it takes longer then the 30 seconds allowed. This is because the set_time_limit() can not be used in safe mode. Use the max_execution_time configuration setting to control this time for your own scripts. make bench ignores the configuration file.

Nota: make bench is only available for PHP 3.

Using Variables

Some server supplied environment variables are not defined in the current CGI/1.1 specification. Only the following variables are defined there; everything else should be treated as 'vendor extensions': AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL and SERVER_SOFTWARE

Anterior | Principal | Próxima
Installation on Windows systems | Acima | Servidores-Apache


Servidores-Apache

Esta seção contém notas, dicas e instruções específicas para instalações do PHP em Apache, tanto para versões Unix quanto para Windows. Nós também temos instruções, dicas e notas para Apache 2 numa página separada.

Detalhes ao instalar o PHP com Apache no Unix

Você pode selecionar argumentos para adicionar ao configure na linha 10 abaixo através da Lista completa de opções do configure . Os números de versões foram omitidos aqui, para assegurar que as instruções não estejam incorretas. Você deverá trocar o 'xxx' aqui com os valores corretos dos seus arquivos.

Exemplo 3-4. Instruções de Instalação (Apache Versão de Módulo Compartilhado) para PHP 4

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx
10. Agora, configure o seu PHP.
    Aqui é quando você entra na fase de customização do seu PHP,
    com várias opções, tais como quais extensões serão habilitadas.
    Execute o comando ./configure --help para uma lista das opções disponíveis.
    Em nosso exemplo, nós faremos uma simples configuração (./configure) com Apache 1 e suporte ao MySQL.

    Seu caminho ao binário apxs (Apache) pode variar de nosso exemplo abaixo:

    ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

  Se você decidir mudar as opções de seu configure depois da instalação
  você precisará somente repetir os últimos 3 passos. Você somente precisará
  reiniciar o apache para o novo módulo funcionar. Não será necessário recompilar
  o Apache.

13. Configurando seu arquivo php.ini:

  cp php.ini-dist /usr/local/lib/php.ini

  Você pode editar o seu arquivo .ini para configurar as opções do PHP.  Se
  você preferir que este arquivo fique em outro lugar, use a opção
  --with-config-file-path=/caminho no passo 10.

  Se por acaso em vez de optar pelo php.ini-dist, optar pelo php.ini-recommended, esteja
  certo de ler a lista de mudanças ocorridas, pois elas podem afetar o modo como o PHP se comportará.

14. Edite o seu arquivo httpd.conf para carregar o módulo do PHP. O caminho no lado direito
  do comando LoadModule deve apontar para para o caminho do módulo PHP do seu sistema.

  O comando (make install) acima já deve ter adicionado estas linhas, mas tenha certeza
  de que as linhas abaixo foram adicionadas ao arquivo.

  Para PHP 4:

  LoadModule php4_module        libexec/libphp4.so

  Para PHP 5:

  LoadModule php5_module        libexec/libphp5.so

15. Em seguida, na seção AddModule do arquivo httpd.conf, adicione isto:

  Para PHP 4:

  AddModule mod_php4.c

  Para PHP 5:

  AddModule mod_php5.c

16. Configure no Apache a interpretação de certas extensões de arquivo como PHP.

      Por exemplo, vamos configurar o Apache que ele interprete as extensões .php
    como PHP. Você pode ter qualquer extensão interpretada como PHP simplesmente adicionando
    algumas outras extensões de arquivo, cada uma separada por um espaço.
    Nós iremos adicionar a extensão .phtml apenas para demonstrar.

    AddType application/x-httpd-php .php .phtml

      Você pode escolher qualquer extensão aqui. A extensão .php é simplesmente uma sugestão
    que nós damos. Você também pode incluir .html, e .php3 pode ser adicionado para
    compatibilidade com versões antigas.

      É comum também configurar no Apache a extensão de arquivo .phps para mostrar os códigos
    fonte formatados de maneira colorida, isto pode ser feito assim:

    AddType application/x-httpd-php-source .phps

    <note>
    <simpara>
    SUGESTÃO:

    Coloque esta linha abaixo do comando AddModule descrito acima, isto facilita a sua remoção
    posterior e organiza seu arquivo de configuração do Apache.
    </simpara>
    </note>

17. Use seu procedimento normal para iniciar o servidor Apache. (Você deve
    parar e reiniciar o servidor, não somente fazer um reinício enviando
    um sinal HUP ou USR1.)

Dependendo da sua instalação do Apache e das variações Unix, existem inúmeras maneiras possíveis de parar e reiniciar o servidor. Abaixo estão algumas linhas típicas usadas para reiniciar e o servidor, para instalações de versões de apache/unix. Você deve trocar /caminho/para/ pelo caminho destas aplicações nos seus sistemas.

Exemplo 3-5. Exemplo de comandos para reinicialização do Servidor Apache

1. Inúmeras variações de sistemas Linux:
         /etc/rc.d/init.d/httpd restart

         2. Usando os scripts apachectl:
         /caminho/para/apachectl stop
         /caminho/para/apachectl start

         3. httpdctl and httpsdctl (Usando OpenSSL), igual ao apachectl:
         /caminho/para/httpsdctl stop
         /caminho/para/httpsdctl start

         4. Usando mod_ssl, ou outro servidor SSL, você pode querer iniciar
         ou reiniciar manualmente:
         /caminho/para/apachectl stop
         /caminho/para/apachectl startssl

As localizações dos binários apachectl e http(s)dctl geralmente variam. Se o seu sistema tem os comandos locate ou whereis ou which, estem podem lhe ajudar a encontrar os programas de controle do servidor.

Exemplos diferentes de compilação do PHP para apache estão a seguir:

./configure --with-apxs --with-pgsql

Isto irá criar uma biblioteca compartilhada libphp4.so que é carregada com o Apache usando uma linha LoadModule no arquivo httpd.conf do Apache. O suporte ao PostgreSQL está embutido dentro da biblioteca compartilhada libphp4.so.

./configure --with-apxs --with-pgsql=shared

Isto irá criar uma biblioteca compartilhada libphp4.so para o Apache, mas isto também criará uma biblioteca compartilhada pgsql.so que é carregada com o PHP tanto ao usar a diretiva de extensão no arquivo php.ini ou então carregando ela explícitamente no script usando a função dl().

./configure --with-apache=/caminho/para/apache_source --with-pgsql

Isto irá criar uma biblioteca libmodphp4.a, o arquivo mod_php4.c e vários arquivos dependentes e copiará eles para o diretório src/modules/php4 na árvore de diretório do código fonte do Apache. Então você compilará o Apache usando a opção --activate-module=src/modules/php4/libphp4.a e o sistema de compilação do Apache irá criar o arquivo libphp4.a e fará um link estático dentro do binário httpd. O suporte ao PostgreSQL estará incluído diretamente neste binário httpd, então o resultado final aqui será um único arquivo binário httpd que incluirá tudo do Apache e tudo do PHP.

./configure --with-apache=/caminho/para/apache_source --with-pgsql=shared

Mesmo que o anterior, exceto em vez de incluir o suporte ao PostgreSQL diretamente no binário httpd você terá uma biblioteca compartilhada pgsql.so que você poderá carregar com o PHP tanto do arquivo php.ini ou diretamente usando a função dl().

Quanto estiver decidindo compilar o PHP com maneiras diferentes, você deverá considerar as vantages e disvantagens de cada método. Complilando como uma biblioteca compartilhada significará que você poderá compilar o apache separadamente, e não terá que recompilar tudo quando quiser adicionar ou mudar o seu PHP. compilando o PHP dentro do apache (método estático) significará que o PHP irá carregar e rodar rapidamente. Para maiores informações, veja a página web do Apache que fala sobre Suporte a Objetos Dinâmicos Compartilhados.

Nota: O arquivo httpd.conf padrão do Apache atualmente já contém uma seção que se parece com isso:

User nobody
Group "#-1"

A menos que você mude isto para "Group nogroup" ou algo assim ("Group daemon" é também muito comum) o PHP não estará apto a abrir arquivos.

Nota: Tenha certeza de especificar a versão instalada do apxs quando usar a opção --with-apxs=/caminho/para/apxs. Você NÂO deverá usar a versão do apxs que está nos fontes do apache e sim a que está atualmente instalada no seu sistema.

Instalando o PHP em Windows com Apache 1.3.x

Existem duas maneiras de configurar o PHP para funcionar com o Apache 1.3.x em Windows. Uma é usando o binário CGI (php.exe), a outra é usando a bliblioteca compartilhada (DLL) como módulo para o Apache (SAPI). Nos dois casos você precisará parar o Servidor Apache, e editar seu arquivo httpd.conf para configurar o Apache para funcionar com o PHP.

Vale deixar claro aqui que agora o módulo SAPI tornou-se muito mais estável no Windows, nós recomendamos o seu uso em vez do binário CGI, por ele ser mais transparente e seguro.

Embora possa ter algumas variações de configurar o PHP com Apache, elas são fáceis suficientemente para ser feitas por um usuário sem experiência. Por favor consulte os Documentos do Apache para maiores diretivas de configuração.

Se você descompactou o pacote do PHP para c:\php\ como descrito na seção Passos de Instalação Manual, você precisará inserir estas linhas no seu arquivo de configuração do Apache para configurar o binário CGI:

  • ScriptAlias /php/ "c:/php/"

  • AddType application/x-httpd-php .php .phtml

  • Action application/x-httpd-php "/php/php.exe"

Note que a segunda linha na lista acima pode ser encontrada em versões atuais do arquivo httpd.conf, mas elas estão comentadas. Lembre-se também de trocar o caminho c:/php/ pelo caminho atual do PHP instalado em seu sistema.

Atenção

Usando a configuração do binário CGI, o seu servidor está aberto a vários tipos possívels de ataque. Por favor leia nossa seção Segurança em CGI para aprender como defender-se de ataques.

Se você preferir usar o PHP como um módulo no Apache, esteja certo de mover o arquivo php4ts.dll para o diretório windows/system (em Windows 9x/Me) ou winnt/system32 (para Windows NT/2000/XP), sobrescrevendo qualquer arquivo antigo. Então você deverá adicionar as duas linhas a seguir em seu arquivo de configuração do Apache (httpd.conf):

  • Abra o arquivo httpd.conf com seu editor de textos preferido e localize a diretriz LoadModule e adicione a seguinte linha no final da lista para o PHP 4: LoadModule php4_module "c:/php/sapi/php4apache.dll" ou a seguinte linha para o PHP 5: LoadModule php5_module "c:/php/sapi/php5apache.dll"

  • Você pode descobrir que após ter instalado o Apache com o Windows installer que é necessário definir a diretriz para mod_php4.c. Isto é especialmente importante se a diretriz ClearModuleList estiver definida, na qual você irá descobrir algumas linhas abaixo. Você verá uma lista de entradas AddModule, adicione a seguinte linha no final da lista: AddModule mod_php4.c para PHP 4 e para PHP 5 mude para AddModule mod_php5.c

  • Procure por uma frase igual a AddType, então adcione a seguinte linha no final da lista: AddType application/x-httpd-php .php .phtml Você pode escolher qualquer extensão aqui. A extensão .php é simplesmente uma sugestão que nós damos. Você também pode incluir .html, e .php3 pode ser adicionado para compatibilidade com versões antigas.

Após mudar o arquivo de configuração, lembre-se de reiniciar o servidor, por exemplo, NET STOP APACHE seguido por NET START APACHE, se você roda o Apache como um Serviço Windows, ou use os atalhos comuns no menu iniciar.

Existem duas maneiras para você poder usar a função de destaque de códigos fonte, contudo dependerá da maneira de sua instalação para esta função funcionar corretamente. Se você configurou o Apache para usar o PHP como um módulo SAPI, então adicionando a seguinte linha ao seu arquivo de configuração (httpd.conf) você poderá usar esta função: AddType application/x-httpd-php-source .phps abaixo da posição em que definiu a linha AddType application/x-httpd-php .php, veja mais acima).

Se você escolher configurar o Apache para usar o PHP como um binário CGI, você precisará usar a função show_source(). Para fazer isto simplesmente crie um arquivo de script PHP e adicione este código: <?php show_source ("php_original_script.php"); ?>. Troque php_original_script.php pelo nome do arquivo que você quer que seja mostrado o código fonte.

Nota: No Apache em Windows todas as barras invertidas em uma definição de caminho como descrito aqui "c:\diretorio\arquivo.ext", devem ser convertidas para barras normais, como descrito aqui "c:/diretorio/arquivo.ext".

Anterior | Principal | Próxima
Servers-CGI/Commandline | Acima | Servers-Apache 2.0


Servers-Apache 2.0

This section contains notes and hints specific to Apache 2.0 installs of PHP, both for Unix and Windows versions.

Atenção

Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.

You are highly encouraged to take a look at the Apache Documentation to get a basic understanding of the Apache 2.0 Server.

PHP and Apache 2.0 compatibility notes

The following versions of PHP are known to work with the most recent version of Apache 2.0:

  • PHP 4.3.0 or later available at http://www.php.net/downloads.php.
  • the latest stable development version. Get the source code http://snaps.php.net/php4-latest.tar.gz or download binaries for Windows http://snaps.php.net/win32/php4-win32-latest.zip.
  • a prerelease version downloadable from http://qa.php.net/.
  • you have always the option to obtain PHP through anonymous CVS.
These versions of PHP are compatible to Apache 2.0.40 and later.

Nota: Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works with Apache 2.0.39, don't use any other version of Apache with PHP 4.2.3. However, the recommended setup is to use PHP 4.3.0 or later with the most recent version of Apache2.

All mentioned versions of PHP will work still with Apache 1.3.x.

PHP and Apache 2 on Linux

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. This quick guide covers only the basics to get started with Apache 2.0 and PHP. For more information read the Apache Documentation. The version numbers have been omitted here, to ensure the instructions are not incorrect. You will need to replace the 'NN' here with the correct values from your files.

Exemplo 3-6. Installation Instructions (Apache 2 Shared Module Version)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Now you have Apache 2.0.NN available under /usr/local/apache2,
    configured with loadable module support and the standard MPM prefork.
    To test the installation use your normal procedure for starting
    the Apache server, e.g.:
    /usr/local/apache2/bin/apachectl start
    and stop the server to go on with the configuration for PHP:
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php-NN

10. Now, configure your PHP.  This is where you customize your PHP
    with various options, like which extensions will be enabled.  Do a
    ./configure --help for a list of available options.  In our example
    we'll do a simple configure with Apache 2 and MySQL support.  Your
    path to apxs may differ, in fact, the binary may even be named apxs2 on
    your system.

      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Note that unless told otherwise, 'make install' will also install PEAR,
    various PHP tools such as phpize, install the PHP CLI, and more.

13. Setup your php.ini

    cp php.ini-dist /usr/local/lib/php.ini

    You may edit your .ini file to set PHP options.  If you prefer having
    php.ini in another location, use --with-config-file-path=/some/path in
    step 10.

    If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
    side of the LoadModule statement must point to the path of the PHP
    module on your system.  The make install from above may have already
    added this for you, but be sure to check.

    For PHP 4:

      LoadModule php4_module libexec/libphp4.so

    For PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.

      AddType application/x-httpd-php .php .phtml

    It's also common to setup the .phps extension to show highlighted PHP
    source, this can be done with:

      AddType application/x-httpd-php-source .phps

16. Use your normal procedure for starting the Apache server, e.g.:

      /usr/local/apache2/bin/apachectl start

Following the steps above you will have a running Apache 2.0 with support for PHP as SAPI module. Of course there are many more configuration options available for both, Apache and PHP. For more information use ./configure --help in the corresponding source tree. In case you wish to build a multithreaded version of Apache 2.0 you must overwrite the standard MPM-Module prefork either with worker or perchild. To do so append to your configure line in step 6 above either the option --with-mpm=worker or --with-mpm=perchild. Take care about the consequences and understand what you are doing. For more information read the Apache documentation about the MPM-Modules.

Nota: To build a multithreaded version of Apache your system must support threads. This also implies to build PHP with experimental Zend Thread Safety (ZTS). Therefore not all extensions might be available. The recommended setup is to build Apache with the standard prefork MPM-Module.

PHP and Apache 2.0 on Windows

Consider to read the Windows specific notes for Apache 2.0.

Atenção

Apache 2.0 is designed to run on Windows NT 4.0, Windows 2000 or Windows XP. At this time, support for Windows 9x is incomplete. Apache 2.0 is not expected to work on those platforms at this time.

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. Follow the Manual Installation Steps and come back to go on with the integration of PHP and Apache.

There are two ways to set up PHP to work with Apache 2.0 on Windows. One is to use the CGI binary the other is to use the Apache module DLL. In either case you need to stop the Apache server, and edit your httpd.conf to configure Apache to work with PHP.

You need to insert these three lines to your Apache httpd.conf configuration file to set up the CGI binary:

Exemplo 3-7. PHP and Apache 2.0 as CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

If you would like to use PHP as a module in Apache 2.0, be sure to move php4ts.dll for PHP 4, or php5ts.dll for PHP 5, to winnt/system32 (for Windows NT/2000) or windows/system32 (for Windows XP), overwriting any older file. You need to insert these two lines to your Apache httpd.conf configuration file to set up the PHP-Module for Apache 2.0:

Exemplo 3-8. PHP and Apache 2.0 as Module

; For PHP 4 do something like this:
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

; For PHP 5 do something like this:
LoadModule php5_module "c:/php/sapi/php5apache2.dll"
AddType application/x-httpd-php .php

Nota: Remember to substitute the c:/php/ for your actual path to PHP in the above examples. Take care to use either php4apache2.dll or php5apache2.dll in your LoadModule directive and not php4apache.dll or php5apache.dll as the latter ones are designed to run with Apache 1.3.x.

Atenção

Don't mix up your installation with dll files from different PHP versions . You have the only choice to use the dll's and extensions that ship with your downloaded PHP version.

Anterior | Principal | Próxima
Servidores-Apache | Acima | Servers-Caudium


Servers-Caudium

PHP 4 can be built as a Pike module for the Caudium webserver. Note that this is not supported with PHP 3. Follow the simple instructions below to install PHP 4 for Caudium.

Exemplo 3-9. Caudium Installation Instructions

1.  Make sure you have Caudium installed prior to attempting to
    install PHP 4. For PHP 4 to work correctly, you will need Pike
    7.0.268 or newer. For the sake of this example we assume that
    Caudium is installed in /opt/caudium/server/.
2.  Change directory to php-x.y.z (where x.y.z is the version number).
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  Restart Caudium if it's currently running.
7.  Log into the graphical configuration interface and go to the
    virtual server where you want to add PHP 4 support.
8.  Click Add Module and locate and then add the PHP 4 Script Support module.
9.  If the documentation says that the 'PHP 4 interpreter isn't
    available', make sure that you restarted the server. If you did
    check /opt/caudium/logs/debug/default.1 for any errors related to
    <filename>PHP4.so</filename>. Also make sure that
    <filename>caudium/server/lib/[pike-version]/PHP4.so</filename>
    is present.
10. Configure the PHP Script Support module if needed.

You can of course compile your Caudium module with support for the various extensions available in PHP 4. See the complete list of configure options for an exhaustive rundown.

Nota: When compiling PHP 4 with MySQL support you must make sure that the normal MySQL client code is used. Otherwise there might be conflicts if your Pike already has MySQL support. You do this by specifying a MySQL install directory the --with-mysql option.

Anterior | Principal | Próxima
Servers-Apache 2.0 | Acima | Servers-fhttpd


Servers-fhttpd

To build PHP as an fhttpd module, answer "yes" to "Build as an fhttpd module?" (the --with-fhttpd=DIR option to configure) and specify the fhttpd source base directory. The default directory is /usr/local/src/fhttpd. If you are running fhttpd, building PHP as a module will give better performance, more control and remote execution capability.

Nota: Support for fhttpd is no longer available as of PHP 4.3.0.

Anterior | Principal | Próxima
Servers-Caudium | Acima | Servers-IIS/PWS


Servers-IIS/PWS

This section contains notes and hints specific to IIS (Microsoft Internet Information Server). Installing PHP for PWS/IIS 3, PWS 4 or newer and IIS 4 or newer versions.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

Windows and PWS/IIS 3

The recommended method for configuring these servers is to use the REG file included with the distribution (pws-php4cgi.reg). You may want to edit this file and make sure the extensions and PHP install directories match your configuration. Or you can follow the steps below to do it manually.

Atenção

These steps involve working directly with the Windows registry. One error here can leave your system in an unstable state. We highly recommend that you back up your registry first. The PHP Development team will not be held responsible if you damage your registry.

  • Run Regedit.

  • Navigate to: HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • On the edit menu select: New->String Value.

  • Type in the extension you wish to use for your php scripts. For example .php

  • Double click on the new string value and enter the path to php.exe in the value data field. ex: c:\php\php.exe.

  • Repeat these steps for each extension you wish to associate with PHP scripts.

The following steps do not affect the web server installation and only apply if you want your PHP scripts to be executed when they are run from the command line (ex. run c:\myscripts\test.php) or by double clicking on them in a directory viewer window. You may wish to skip these steps as you might prefer the PHP files to load into a text editor when you double click on them.

  • Navigate to: HKEY_CLASSES_ROOT

  • On the edit menu select: New->Key.

  • Name the key to the extension you setup in the previous section. ex: .php

  • Highlight the new key and in the right side pane, double click the "default value" and enter phpfile.

  • Repeat the last step for each extension you set up in the previous section.

  • Now create another New->Key under HKEY_CLASSES_ROOT and name it phpfile.

  • Highlight the new key phpfile and in the right side pane, double click the "default value" and enter PHP Script.

  • Right click on the phpfile key and select New->Key, name it Shell.

  • Right click on the Shell key and select New->Key, name it open.

  • Right click on the open key and select New->Key, name it command.

  • Highlight the new key command and in the right side pane, double click the "default value" and enter the path to php.exe. ex: c:\php\php.exe -q %1. (don't forget the %1).

  • Exit Regedit.

  • If using PWS on Windows, reboot to reload the registry.

PWS and IIS 3 users now have a fully operational system. IIS 3 users can use a nifty tool from Steven Genusa to configure their script maps.

Windows and PWS 4 or newer

When installing PHP on Windows with PWS 4 or newer version, you have two options. One to set up the PHP CGI binary, the other is to use the ISAPI module DLL.

If you choose the CGI binary, do the following:

  • Edit the enclosed pws-php4cgi.reg file (look into the SAPI dir) to reflect the location of your php.exe. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\php.exe" Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

If you choose the ISAPI module, do the following:

  • Edit the enclosed pws-php4isapi.reg file (look into the SAPI dir) to reflect the location of your php4isapi.dll. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\sapi\\php4isapi.dll" Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

Windows NT/2000/XP and IIS 4 or newer

To install PHP on an NT/2000/XP Server running IIS 4 or newer, follow these instructions. You have two options to set up PHP, using the CGI binary (php.exe) or with the ISAPI module.

In either case, you need to start the Microsoft Management Console (may appear as 'Internet Services Manager', either in your Windows NT 4.0 Option Pack branch or the Control Panel=>Administrative Tools under Windows 2000/XP). Then right click on your Web server node (this will most probably appear as 'Default Web Server'), and select 'Properties'.

If you want to use the CGI binary, do the following:

  • Under 'Home Directory', 'Virtual Directory', or 'Directory', click on the 'Configuration' button, and then enter the App Mappings tab.

  • Click Add, and in the Executable box, type: c:\php\php.exe (assuming that you have unziped PHP in c:\php\).

  • In the Extension box, type the file name extension you want associated with PHP scripts. Leave 'Method exclusions' blank, and check the Script engine checkbox. You may also like to check the 'check that file exists' box - for a small performance penalty, IIS (or PWS) will check that the script file exists and sort out authentication before firing up php. This means that you will get sensible 404 style error messages instead of cgi errors complaining that PHP did not output any data.

    You must start over from the previous step for each extension you want associated with PHP scripts. .php and .phtml are common, although .php3 may be required for legacy applications.

  • Set up the appropriate security. (This is done in Internet Service Manager), and if your NT Server uses NTFS file system, add execute rights for I_USR_ to the directory that contains php.exe.

To use the ISAPI module, do the following:

  • If you don't want to perform HTTP Authentication using PHP, you can (and should) skip this step. Under ISAPI Filters, add a new ISAPI filter. Use PHP as the filter name, and supply a path to the php4isapi.dll.

  • Under 'Home Directory', click on the 'Configuration' button. Add a new entry to the Application Mappings. Use the path to the php4isapi.dll as the Executable, supply .php as the extension, leave Method exclusions blank, and check the Script engine checkbox.

  • Stop IIS completely (NET STOP iisadmin)

  • Start IIS again (NET START w3svc)

Anterior | Principal | Próxima
Servers-fhttpd | Acima | Servers-Netscape, iPlanet and SunONE


Servers-Netscape, iPlanet and SunONE

This section contains notes and hints specific to Netscape, iPlanet and SunONE webserver installs of PHP, both for Sun Solaris and Windows versions.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current webservers read the note about subrequests.

You can find more information about setting up PHP for the Netscape Enterprise Server (NES) here: http://benoit.noss.free.fr/php/install-php4.html

Installing PHP with NES/iPlanet/SunONE Webserver on Sun Solaris

To build PHP with NES/iPlanet/SunONE webservers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Install the following packages from http://www.sunfreeware.com/ or another download site:

    autoconf-2.13
    automake-1.4
    bison-1_25-sol26-sparc-local
    flex-2_5_4a-sol26-sparc-local
    gcc-2_95_2-sol26-sparc-local
    gzip-1.2.4-sol26-sparc-local
    m4-1_4-sol26-sparc-local
    make-3_76_1-sol26-sparc-local
    mysql-3.23.24-beta (if you want mysql support)
    perl-5_005_03-sol26-sparc-local
    tar-1.13 (GNU tar)

  2. Make sure your path includes the proper directories PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it available to your system export PATH.

  3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to 4).

  4. tar xvf php-x.x.x.tar

  5. Change to your extracted PHP directory: cd ../php-x.x.x

  6. For the following step, make sure /opt/netscape/suitespot/ is where your netscape server is installed. Otherwise, change to the correct path and run:
    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. Run make followed by make install.

After performing the base install and reading the appropriate readme file, you may need to perform some additional configuration steps.

Configuration Instructions for NES/iPlanet/SunONE. Firstly you may need to add some paths to the LD_LIBRARY_PATH environment for SunONE to find all the shared libs. This can best done in the start script for your SunONE webserver. Windows users can probably skip this step. The start script is often located in: /path/to/server/https-servername/start. You may also need to edit the configuration files that are located in: /path/to/server/https-servername/config/.

  1. Add the following line to mime.types (you can do that by the administration server):
    type=magnus-internal/x-httpd-php exts=php

  2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following, shlib will vary depending on your OS, for Unix it will be something like /opt/netscape/suitespot/bin/libphp4.so. You should place the following lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  3. Configure the default object in obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf):
    <Object name="default">
.
.
.
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  4. This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  5. Setup of authentication: PHP authentication cannot be used with any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP Authentication for the entire server, add the following line to your default object:
    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. To use PHP Authentication on a single directory, add the following:
    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Nota: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

Installing PHP with NES/iPlanet/SunONE on Windows

To Install PHP as CGI (for Netscape Enterprise Server, iPlanet, SunONE, perhaps Fastrack), do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a dummy shellcgi directory and remove it just after (this step creates 5 important lines in obj.conf and allow the web server to handle shellcgi scripts).

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).

  • Do it for each web server instance you want PHP to run

More details about setting up PHP as a CGI executable can be found here: http://benoit.noss.free.fr/php/install-php.html

To Install PHP as NSAPI (for Netscape Enterprise Server, iPlanet, SunONE, perhaps Fastrack), do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php).

  • Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following: You should place the lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  • Configure the default object in obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf): In the <Object name="default"> section, place this line necessarily after all 'ObjectType' and before all 'AddLog' lines:
    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  • This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  • Restart your web service and apply changes

  • Do it for each web server instance you want PHP to run

Nota: More details about setting up PHP as an NSAPI filter can be found here: http://benoit.noss.free.fr/php/install-php4.html

Nota: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that iPlanet/SunONE/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the webserver itsself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP 3.x way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running webserver without any valid CGI variables!

Nota: Why are there (invalid) CGI variables in the environment?

Answer: This is because you started the webserver process from the admin server which runs the startup script of the webserver, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started webserver has some CGI environment variables in it. You can test this by starting the webserver not from the administration server. Use the Unix command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST,..., you should turn on register_globals in php.ini and change the variable order to (important: remove "E" from it, because you do not need the environment here):
variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the webserver and insert the result in the webpage. The problem is, that this function uses some undocumented features from the NSAPI library.

Under Unix this is not a problem, because the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Under Windows limitations in the DLL handling need the use of a automatic detection of the most recent ns-httpdXX.dll file. This is tested for servers till version 6.1. If a newer version of the SunONE server is used, the detection fails and nsapi_virtual() is disabled.

If this is the case, try the following: Add the following parameter to php4_init in magnus.conf/obj.conf:
Init fn=php4_init ... server_lib="ns-httpdXX.dll"
where XX is the correct DLL version number. To get it, look in the server-root for the correct DLL name. The DLL with the biggest filesize is the right one.

You can check the status by using the phpinfo() function.

Nota: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!

Anterior | Principal | Próxima
Servers-IIS/PWS | Acima | Servers-OmniHTTPd Server


Servers-OmniHTTPd Server

This section contains notes and hints specific to OmniHTTPd.

OmniHTTPd 2.0b1 and up for Windows

You need to complete the following steps to make PHP work with OmniHTTPd. This is a CGI executable setup. SAPI is supported by OmniHTTPd, but some tests have shown that it is not so stable to use PHP as an ISAPI module.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  1. Install OmniHTTPd server.

  2. Right click on the blue OmniHTTPd icon in the system tray and select Properties

  3. Click on Web Server Global Settings

  4. On the 'External' tab, enter: virtual = .php | actual = c:\path-to-php-dir\php.exe, and use the Add button.

  5. On the Mime tab, enter: virtual = wwwserver/stdcgi | actual = .php, and use the Add button.

  6. Click OK

Repeat steps 2 - 6 for each extension you want to associate with PHP.

Nota: Some OmniHTTPd packages come with built in PHP support. You can choose at setup time to do a custom setup, and uncheck the PHP component. We recommend you to use the latest PHP binaries. Some OmniHTTPd servers come with PHP 4 beta distributions, so you should choose not to set up the built in support, but install your own. If the server is already on your machine, use the Replace button in Step 4 and 5 to set the new, correct information.

Anterior | Principal | Próxima
Servers-Netscape, iPlanet and SunONE | Acima | Servers-Oreilly Website Pro


Servers-Oreilly Website Pro

This section contains notes and hints specific to Oreilly Website Pro.

Oreilly Website Pro 2.5 and up for Windows

This list describes how to set up the PHP CGI binary or the ISAPI module to work with Oreilly Website Pro on Windows.

  • Edit the Server Properties and select the tab "Mapping".

  • From the List select "Associations" and enter the desired extension (.php) and the path to the CGI exe (ex. c:\php\php.exe) or the ISAPI DLL file (ex. c:\php\sapi\php4isapi.dll).

  • Select "Content Types" add the same extension (.php) and enter the content type. If you choose the CGI executable file, enter 'wwwserver/shellcgi', if you choose the ISAPI module, enter 'wwwserver/isapi' (both without quotes).

Anterior | Principal | Próxima
Servers-OmniHTTPd Server | Acima | Servers-Sambar


Servers-Sambar

This section contains notes and hints specific to the Sambar server for Windows.

Sambar Windows

This list describes how to set up the ISAPI module to work with the Sambar server on Windows.

  • Find the file called mappings.ini (in the config directory) in the Sambar install directory.

  • Open mappings.ini and add the following line under [ISAPI]:

    *.php = c:\php\php4isapi.dll

    (This line assumes that PHP was installed in c:\php.)

  • Now restart the Sambar server for the changes to take effect.

Anterior | Principal | Próxima
Servers-Oreilly Website Pro | Acima | Servers-Xitami


Servers-Xitami

This section contains notes and hints specific to Xitami.

Xitami for Windows

This list describes how to set up the PHP CGI binary to work with Xitami on Windows.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  • Make sure the webserver is running, and point your browser to xitamis admin console (usually http://127.0.0.1/admin), and click on Configuration.

  • Navigate to the Filters, and put the extension which PHP should parse (i.e. .php) into the field File extensions (.xxx).

  • In Filter command or script put the path and name of your PHP executable i.e. c:\php\php.exe.

  • Press the 'Save' icon.

  • Restart the server to reflect changes.

Anterior | Principal | Próxima
Servers-Sambar | Acima | Servers-Other web servers


Servers-Other web servers

PHP can be built to support a large number of web servers. Please see Server-related options for a full list of server-related configure options. The PHP CGI binaries are compatible with almost all webservers supporting the CGI standard.

Anterior | Principal | Próxima
Servers-Xitami | Acima | Problems?


Problems?

Read the FAQ

Some problems are more common than others. The most common ones are listed in the PHP FAQ, part of this manual.

Other problems

If you are still stuck, someone on the PHP installation mailing list may be able to help you. You should check out the archive first, in case someone already answered someone else who had the same problem as you. The archives are available from the support page on http://www.php.net/support.php. To subscribe to the PHP installation mailing list, send an empty mail to php-install-subscribe@lists.php.net. The mailing list address is php-install@lists.php.net.

If you want to get help on the mailing list, please try to be precise and give the necessary details about your environment (which operating system, what PHP version, what web server, if you are running PHP as CGI or a server module, safe mode, etc...), and preferably enough code to make others able to reproduce and test your problem.

Bug reports

If you think you have found a bug in PHP, please report it. The PHP developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can report bugs using the bug-tracking system at http://bugs.php.net/. Please do not send bug reports in mailing list or personal letters. The bug system is also suitable to submit feature requests.

Read the How to report a bug document before submitting any bug reports!

Anterior | Principal | Próxima
Servers-Other web servers | Acima | Miscellaneous configure options


Miscellaneous configure options

Below is a partial list of configure options used by the PHP configure scripts when compiling in Unix-like environments. Most configure options are listed in their appropriate locations and not here. For a complete up-to-date list of configure options, run ./configure --help in your PHP source directory after running autoconf (see also the Installation chapter). You may also be interested in reading the GNU configure documentation for information on additional configure options such as --prefix=PREFIX.

Nota: These are only used at compile time. If you want to alter PHP's runtime configuration, please see the chapter on Runtime Configuration.

  • Graphics

  • Miscellaneous

  • PHP Behaviour

  • Server

Configure Options in PHP 4

Nota: These options are only used in PHP 4 as of PHP 4.1.0. Some are available in older versions of PHP 4, some even in PHP 3, some only in PHP 4.1.0. If you want to compile an older version, some options will probably not be available.

Graphics options

--with-imagick

The imagick extension has been moved to PECL in PEAR and can be found at http://pear.php.net/imagick. Install instructions for PHP 4 can be found on the PEAR site.

Simply doing --with-imagick is only supported in PHP 3 unless you follow the instructions found on the PEAR site.

Misc options

--enable-debug

Compile with debugging symbols.

--with-layout=TYPE

Sets how installed files will be laid out. Type is one of PHP (default) or GNU.

--with-pear=DIR

Install PEAR in DIR (default PREFIX/lib/php).

--without-pear

Do not install PEAR.

--enable-sigchild

Enable PHP's own SIGCHLD handler.

--disable-rpath

Disable passing additional runtime library search paths.

--enable-libgcc

Enable explicitly linking against libgcc.

--enable-php-streams

Include experimental PHP streams. Do not use unless you are testing the code!

--with-zlib-dir=<DIR>

Define the location of zlib install directory.

--enable-trans-sid

Enable transparent session id propagation. Only valid for PHP 4.1.2 or less. From PHP 4.2.0, trans-sid feature is always compiled.

--with-tsrm-pthreads

Use POSIX threads (default).

--enable-shared[=PKGS]

Build shared libraries [default=yes].

--enable-static[=PKGS]

Build static libraries [default=yes].

--enable-fast-install[=PKGS]

Optimize for fast installation [default=yes].

--with-gnu-ld

Assume the C compiler uses GNU ld [default=no].

--disable-libtool-lock

Avoid locking (might break parallel builds).

--with-pic

Try to use only PIC/non-PIC objects [default=use both].

--enable-memory-limit

Compile with memory limit support.

--disable-url-fopen-wrapper

Disable the URL-aware fopen wrapper that allows accessing files via HTTP or FTP.

--enable-versioning

Export only required symbols. See INSTALL for more information.

--with-imsp[=DIR]

Include IMSp support (DIR is IMSP's include dir and libimsp.a dir). PHP 3 only!

--with-mck[=DIR]

Include Cybercash MCK support. DIR is the cybercash mck build directory, defaults to /usr/src/mck-3.2.0.3-linux for help look in extra/cyberlib. PHP 3 only!

--with-mod-dav=DIR

Include DAV support through Apache's mod_dav, DIR is mod_dav's installation directory (Apache module version only!) PHP 3 only!

--enable-debugger

Compile with remote debugging functions. PHP 3 only!

--enable-versioning

Take advantage of versioning and scoping provided by Solaris 2.x and Linux. PHP 3 only!

PHP options

--enable-maintainer-mode

Enable make rules and dependencies not useful (and sometimes confusing) to the casual installer.

--with-config-file-path=PATH

Sets the path in which to look for php.ini, defaults to PREFIX/lib.

--enable-safe-mode

Enable safe mode by default.

--with-exec-dir[=DIR]

Only allow executables in DIR when in safe mode defaults to /usr/local/php/bin.

--enable-magic-quotes

Enable magic quotes by default.

--disable-short-tags

Disable the short-form <? start tag by default.

SAPI options

The following list contains the available SAPI&s (Server Application Programming Interface) for PHP.

--with-aolserver=DIR

Specify path to the installed AOLserver.

--with-apxs[=FILE]

Build shared Apache module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs. Make sure you specify the version of apxs that is actually installed on your system and NOT the one that is in the apache source tarball.

--with-apache[=DIR]

Build a static Apache module. DIR is the top-level Apache build directory, defaults to /usr/local/apache.

--with-mod_charset

Enable transfer tables for mod_charset (Russian Apache).

--with-apxs2[=FILE]

Build shared Apache 2.0 module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs.

--with-caudium=DIR

Build PHP as a Pike module for use with Caudium. DIR is the Caudium server dir, with the default value /usr/local/caudium/server.

--disable-cli

Available with PHP 4.3.0. Disable building the CLI version of PHP (this forces --without-pear). More information is available in the section about Using PHP from the command line.

--enable-embed[=TYPE]

Enable building of the embedded SAPI library. TYPE is either shared or static, which defaults to shared. Available with PHP 4.3.0.

--with-fhttpd[=DIR]

Build fhttpd module. DIR is the fhttpd sources directory, defaults to /usr/local/src/fhttpd. No longer available as of PHP 4.3.0.

--with-isapi=DIR

Build PHP as an ISAPI module for use with Zeus.

--with-nsapi=DIR

Specify path to the installed Netscape/iPlanet/SunONE Webserver.

--with-phttpd=DIR

No information yet.

--with-pi3web=DIR

Build PHP as a module for use with Pi3Web.

--with-roxen=DIR

Build PHP as a Pike module. DIR is the base Roxen directory, normally /usr/local/roxen/server.

--enable-roxen-zts

Build the Roxen module using Zend Thread Safety.

--with-servlet[=DIR]

Include servlet support. DIR is the base install directory for the JSDK. This SAPI requires the java extension must be built as a shared dl.

--with-thttpd=SRCDIR

Build PHP as thttpd module.

--with-tux=MODULEDIR

Build PHP as a TUX module (Linux only).

--with-webjames=SRCDIR

Build PHP as a WebJames module (RISC OS only)

--disable-cgi

Disable building CGI version of PHP. Available with PHP 4.3.0.

--enable-force-cgi-redirect

Enable the security check for internal server redirects. You should use this if you are running the CGI version with Apache.

--enable-discard-path

If this is enabled, the PHP CGI binary can safely be placed outside of the web tree and people will not be able to circumvent .htaccess security.

--with-fastcgi

Build PHP as FastCGI application. No longer available as of PHP 4.3.0, instead you should use --enable-fastcgi.

--enable-fastcgi

If this is enabled, the CGI module will be built with support for FastCGI also. Available since PHP 4.3.0

--disable-path-info-check

If this is disabled, paths such as /info.php/test?a=b will fail to work. Available since PHP 4.3.0. For more information see the Apache Manual.

Anterior | Principal | Próxima
Problems? | Acima | Configuração


Configuração

Manual do PHP
Anterior Próxima

Capítulo 4. Configuração

Índice
O arquivo de configuração
Como alterar as configurações definidas
Diretivas de configuração diversas

O arquivo de configuração

O arquivo de configuração (chamado php3.ini no PHP 3.0, e simplesmente php.ini no PHP 4.0) é lido quando o PHP inicia. Para as versões de módulos de servidor do PHP, isso só acontece uma vez quando o servidor é iniciado. Para as versões CGI e CLI acontece em cada execução.

A localização padrão do php.ini é uma opção de compilação (veja a FAQ correspondente), mas pode ser modificada para as versões CGI e CLI com o opcional -c (mais informações em utilizando o PHP na linha de comando). Você também pode utilizar a variável ambiente PHPRC para colocar caminhos adicionais para a procura do arquivo php.ini.

Nota: O servidor web Apache muda o diretório root na inicialização fazendo com que o PHP tente ler o php.ini a partir da raiz do sistema de arquivos, se existir.

Note que nem todas as diretivas do PHP estão documentadas a seguir. Para uma lista completa, leia o seu próprio e bem comentado arquivo php.ini. Você também pode ver a versão mais atualizada diretamente do CVS.

Nota: O valor default da diretiva register_globals mudou de on para off a partir do PHP 4.2.0.

Exemplo 4-1. php.ini example

; qualquer texto depois de um ponto e vírgula não delimitado (;) é ignorado
[php] ; marcadores de seção (texto entre colchetes) também são ignorados
; Valores booleanos podem ser:
;    true, on, yes
; ou false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; você pode delimitar strings com aspas
include_path = ".:/usr/local/lib/php"

; barras invertidas são tratadas da mesma maneira que outros caracteres
include_path = ".;c:\php\lib"

Anterior | Principal | Próxima
Miscellaneous configure options | Acima | Como alterar as configurações definidas


Como alterar as configurações definidas

Rodando o PHP como módulo do Apache

Quando usando o PHP como um módulo do Apache, você também pode mudar as definições de configuração usando diretivas na configuração do Apache (httpd.conf) e dos arquivos .htaccess (Você irá precisar de privilégios "AllowOverride Options" ou "AllowOverride All")

Com o PHP 4.0, existem várias diretivas do Apache que lhe permitem mudar a configuração PHP diretamente a partir dos arquivos de configuração do Apache. Para uma lista das diretivas que podem ser alteradas, veja aquelas marcadas com PHP_INI_ALL, PHP_INI_PERDIR, ou PHP_INI_SYSTEM, relacionadas na documentação da função ini_set().

Nota: Com o PHP 3.0, existem diretivas Apache que correspondem a cada definição de configuração do php3.ini, exceto os nomes prefixados por "php3_".

php_value nome valor

Define o valor da variável especificada. Pode ser utilizada somente com diretivas do tipo PHP_INI_ALL e PHP_INI_PERDIR. Para limpar um valor configurado anteriormente, utilize none como parâmetro.

Nota: Não utilize php_value para configurar valores booleandos. Em vez disso, use php_flag (veja abaixo).

php_flag nome on|off

Isto é usado para definir uma opção de configuração Booleana. Somente pode ser utilizada em diretivas do tipo PHP_INI_ALL e PHP_INI_PERDIR.

php_admin_value nome valor

Define o valor da variável especificada. Isto NÃO pode ser utilizado em arquivos .htaccess. Qualquer tipo de diretiva modificada com php_admin_value não pode ser sobrescrita por arquivos .htaccess ou diretivas virtualhost. Para limpar um valor configurado antetiormente, utilize none como parâmetro.

php_admin_flag nome on|off

Utilizado para definir uma opção de configuração Booleana. Isto NÃO pode ser utilizado em arquivos .htaccess. Qualquer diretiva configurada com php_admin_flag não pode ser sobrescrita por arquivos .htaccess ou diretivas virtualhost.

Exemplo 4-2. Exemplo de configuração do Apache

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Cuidado

Constantes PHP não existem fora do PHP. Por exemplo, no httpd.conf não pode utilizar constantes PHP como E_ALL ou E_NOTICE para configurar a diretiva error_reporting, pois elas não tem nenhum sentido e serão avaliados como 0. Nesses casos, utilize seus valores de bit. Essas constantes só podem ser utilizadas dentro do php.ini

Modificando a configuração do PHP via registro

Quando rodando o PHP no Windows, os valores de configuração podem ser modificados diretório a diretório utilizando o registro do Windows. Os valores de configuração são armazenados na chave do registro HKLM\SOFTWARE\PHP\Per Directory Values, onde as sub chaves correspondem aos caminhos. Por exemplo, valores de configuração para o diretório c:\inetpub\wwwroot devem ser armazenados na chave HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. As configurações para o diretório são ativadas para qualquer script rodando neste diretório ou qualquer subdiretório dele. Os valores sob a chave devem ter o nome das Diretivas de configuração do PHP e um valor string. As constantes do PHP nos campos não são interpretados.

Outras interfaces para o PHP

Independentemente da interface do PHP, você pode mudar certos valores em tempo de execução em seus scripts através ini_set(). A tabela seguinte explica em que nível as diretivas podem ser modificadas.

Tabela 4-1. Definições das constantes PHP_INI_*

Constante | Valor | Significado
PHP_INI_USER | 1 | Diretiva pode ser modificada em seus scripts
PHP_INI_PERDIR | 2 | Diretiva pode ser modificada no php.ini, .htaccess ou httpd.conf
PHP_INI_SYSTEM | 4 | Diretiva pode ser modificada no php.ini ou .htaccess
PHP_INI_ALL | 7 | Diretiva pode ser modificada em qualquer lugar

Você pode visualizar as configurações das diretivas na saída de phpinfo(). Você também pode acessar os valores individuais das configurações utilizando ini_get() ou get_cfg_var().

Anterior | Principal | Próxima
Configuração | Acima | Diretivas de configuração diversas


Diretivas de configuração diversas

Esta não é uma lista completa das diretivas do PHP. Muitas diretivas são listadas em seus lugares apropriados como, por exemplo, informações sobre diretivas de sessões estão no capítulo sobre sessões.

Opções Httpd

Tabela 4-2. Opções Httpd

Nome | Padrão | Alterável
async_send | "0" | PHP_INI_ALL

Opções da Linguagem

Tabela 4-3. Opções gerais da linguagem

Nome | Padrão | Alterável
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

Breve descrição das diretivas de configuração.

short_open_tag boolean

Informa quando a tag reduzida (<? ?>) do PHP pode ser permitida. Se você quiser usar o PHP em combinação com XML, você pode desligar essa opção para poder utilizar <?xml ?> inline. De outra forma, você pode imprimir com o PHP, por exemplo: <?php echo '<?xml version="1.0"'; ?>. Se desligado, você precisará utilizar a forma longa da tag de abertura do PHP (<?php ?>).

Nota: Esta diretiva também afeta o atalho <?=, que é idêntico a <? echo. A utilização desse atalho requer short_open_tag ligado.

asp_tags boolean

Ativa a utilização das tags estilo ASP <% %> em adição as tags <?php ?>. Isto inclui o atalho de impressão de valores <%= $var %>. Para mais informações, veja Alternando do HTML.

Nota: O suporte a tags estilo APS foi acrescentado no 3.0.4.

precision integer

O número de dígitos significantes exibidos em números de ponto flutuante.

y2k_compliance boolean

Força a especificação Ano 2002 (poderá causar problemas com browsers não compatíveis)

allow_call_time_pass_reference boolean

Especifica a habilidade em forçar que argumentos possam ser passados por referência na chamada de uma função. Este método é obsoleto e logo não será mais suportado nas futuras versões do PHP/Zend. O método recomendado para especificar que argumentos devem ser passados por referência é pela declaração da função. Você é encorajado em tentar desligar essa opção e verificar se seus scripts trabalham adequadamente de forma a garantir que elas irão funcionar nas futuras versões da linguagem (você receberá um alerta cada vez que utilizar esse recurso, e o argumento será passado por valor em vez de por referência).

Veja também Referências Explicadas.

expose_php boolean

Decide se o PHP poderá expor o fato de que ele está instalado no servidor (acrescentando sua assinatura no header do servidor web). Isto não causa problemas de segurança de qualquer forma, mas torna possível determinar se você usa o PHP em seu servidor ou não.

Limitação de recursos

Tabela 4-4. Limitação de recursos

Nome | Padrão | Alterável
memory_limit | "8M" | PHP_INI_ALL

Breve descrição das diretivas de configuração.

memory_limit integer

Isto configura a quantidade máxima de memória, em bytes, que um script poderá alocar. Isto ajuda a prevenir que scripts mal escritos acabem com toda a memória disponível do servidor. Para poder utilizar esta diretiva, você precisa ativá-la na compilação. Assim, sua linha de configuração deve incluir: --enable-memory-limit. Note que você pode configura-la para -1 se não quiser impor nenhum limite para a utilização da memória.

A partir do PHP 4.3.2 e quando memory_limit estiver ativo, a função PHP memory_get_usage() fica disponível.

Veja também max_execution_time.

Manipulação de dados

Tabela 4-5. Opções configuráveis para manipulação de dados

Nome | Padrão | Alterável
track-vars | "On" | PHP_INI_??
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order | "EGPCS" | PHP_INI_ALL
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order | "GPC" | PHP_INI_ALL
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype | "text/html" | PHP_INI_ALL
default_charset | "iso-8859-1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Breve descrição das diretivas de configuração.

track_vars boolean

Se ativado, quaisquer variáveis Environment, GET, POST, Cookie e Server encontradas poderão ser acessadas nos arrays globais associativos $_ENV, $_GET, $_POST, $_COOKIE e $_SERVER.

Note que a partir do PHP 4.0.3, track_vars está sempre ativado.

arg_separator.output string

O separador de parâmetros em URLs geradas pelo PHP.

arg_separator.input string

Lista dos separador(es) utilizados pelo PHP para interpretar URLs em variáveis.

Nota: Cada caracter nesta diretiva é considerado como um separador!

variables_order string

Configura a ordem de interpretação das variáveis EGPCS (Environment, GET, POST, Cookie e Server). O default dessa diretiva é "EGPCS". Configurando para "GP", por exemplo, fará com que o PHP ignore completamente variáveis de ambiente (E), cookies (C) e do servidor (S), sendo que qualquer variável GET será sobrescrita por qualquer variável do método POST com o mesmo nome.

Veja também register_globals.

register_globals boolean

Ativa ou não o registro de variáveis EGPCS (Environment, GET, POST, Cookie e Server) como variáveis globais. Por exemplo: se register_globals = on, a URL http://www.example.com/test.php?id=3 irá criar a variável $id. Ou, $DOCUMENT_ROOT de $_SERVER['DOCUMENT_ROOT']. Você pode desligar essa diretiva se você não deseja sujar o escopo global de seus scripts com dados do usuário. Desde o PHP 4.2.0, o padrão dessa diretiva é off. É preferível utilizar as variáveis predefinidas do PHP, como as superglobals: $_ENV, $_GET, $_POST, $_COOKIE e $_SERVER. Leia cuidadosamente o capitulo de segurança em Utilizando register_globals para mais informações.

Veja que register_globals não pode ser alterado em tempo de execução (ini_set()). Entretanto, você pode utilizar o .htaccess se seu host permitir como descrito anteriormente. Um exemplo de entrada do .htaccess: php_flag register_globals on.

Nota: register_globals é afetada pela diretiva variables_order .

register_argc_argv boolean

Configura quando o PHP deve declarar ou não as variáveis argv e argc (que podem conter dados do método GET).

Veja também Utilizando o PHP em linha de comando. Além, essa diretiva foi criada no PHP 4.0.0 e sempre foi "ativa" antes disso.

register_long_arrays boolean

Configura quando o PHP vai ou não registrar os grandes e obsoletos arrays $HTTP_*_VARS pré definidos. Se ativo (default), grandes variáveis arrays PHP como a $HTTP_GET_VARS serão defininas. Se você não estiver usando-as, é recomendado desligar essa opção, por questão de performance. Em vez desses arrays, utilize os arrays superglobais como $_GET.

Esta diretiva se tornou disponível no PHP 5.0.0.

post_max_size integer

Configura o tamanho máximo dos dados postados. Esta configuração também afeta o upload de arquivos. Para receber arquivos grandes, esse valor precisa ser maior que upload_max_filesize.

Se o limite de memória estiver ativado em seu script de configuração, memory_limit também afeta o upload de arquivos. Falando diretamente, memory_limit precisa ser maior que post_max_size.

gpc_order string

Informa a ordem de interpretação das variáveis GET/POST/COOKIE. O padrão dessa diretiva é "GPC". Configurando para "GP", por exemplo, fará com que o PHP ignore completamente cookies e que sobrescreva qualquer dado postado via GET por variáveis postados via POST que tenham o mesmo nome.

Nota: Esta opção não está disponível no PHP 4. Utilize variables_order no seu lugar.

auto_prepend_file string

Especifica o nome do arquivo que será automaticamente interpretado antes do arquivo principal. O arquivo é incluído como se ele fosse chamado com a função include(), então include_path é utilizado.

O valor especial none desabilita a auto inclusão.

auto_append_file string

Especifica se o nome do arquivo que será automaticamente interpretado depois do arquivo principal. O arquivo é incluído como se ele fosse chamada a função include(), então include_path é utilizado.

O valor especial none desabilita a auto inclusão.

Nota: Se o script é terminado com exit(), a auto inclusão não irá ocorrer.

default_mimetype string

default_charset string

A partir da versão 4.0b4, o PHP sempre emite a codificação de caracter por padrão no header Content-type:. Para desabilitar o envio do código de página, simplesmente deixe a diretiva em branco.

always_populate_raw_post_data boolean

Sempre preenche a variável $HTTP_RAW_POST_DATA.

allow_webdav_methods boolean

Permite a manipulação de headers HTTP com scripts PHP (com PROPFIND, PROPPATCH, MOVE, COPY, etc). Se você quiser obter os dados postados dessas requisições, ative always_populate_raw_post_data para isso.

Veja também magic_quotes_gpc, magic-quotes-runtime, e magic_quotes_sybase.

Paths and Directories

Tabela 4-6. Opções de configuração de caminhos e diretórios

Nome | Padrão | Alterável
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM

Breve descrição das diretivas de configuração.

include_path string

Especifica a lista de diretórios onde as funções require(), include() and fopen_with_path() procurarão por arquivos. O formato é o mesmo que o da variável ambiente PATH: uma lista de diretórios, separador por vírgula no Unix ou ponto e vírgula no Windows.

Exemplo 4-3. include_path Unix

include_path=".:/php/includes"

Exemplo 4-4. include_path Windows

include_path=".;c:\php\includes"

Colocar um . no include_path permite includes relativos a partir do diretório atual.

doc_root string

O "diretório root" do PHP no servidor. Utilizado somente se for preenchido. Se o PHP estiver configurado com safe mode, nenhum arquivo acima desse diretório será acessível. Se o PHP não estiver compilado com FORCE_REDIRECT, você DEVE configurar doc_root se estiver rodando o PHP como CGI sob qualquer servidor web (que não o IIS) Outra alternativa é configurar a diretiva cgi.force_redirect, abaixo.

user_dir string

O caminho base do usado como diretório home do usuário para arquivos PHP, por exemplo public_html.

extension_dir string

Diretório de onde o PHP poderá carregar dinamicamente as extensões. Veja também enable_dl e dl().

extension string

Que extensões dinamicamente carregáveis devem ser carregadas quando o PHP inicia.

cgi.fix_pathinfo boolean

Provém o correto PATH_INFO/PATH_TRANSLATED suporte para CGI. O comportamento anterior do PHP era informar PATH_TRANSLATED em SCRIPT_FILENAME, e não truncá-lo com PATH_INFO. Para maiores informações sobre PATH_INFO, veja as especificações CGI. Configurando isto para 1 fará com PHP CGI corrija os caminhos conforme a especificação. Configurando para 0 fará o PHP se comportar como antes. O default é zero. Você deve corrigir seus scripts para usar SCRIPT_FILENAME em vez de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect é necessário para prover segurança quando rodando o PHP como módulo sob a maioria dos servidores web. Se deixado indefinido, o PHP assume como ativo. Você pode desligá-lo SOB SEU RISCO.

Nota: Usuários Windows: Você PODE desligar isso no ISS, e de fato, você DEVE fazê-lo. Para que o OmniHTTPD ou Xitami funcionem, você PRECISA desligá-lo.

cgi.redirect_status_env string

Se cgi.force_redirect estiver ativado, e se não estiver rodando o PHP sob os servidores web Apache ou Netscape (iPlanet), você PRECISARÁ configurar uma variável de ambiente que o PHP procurará para saber se ele pode continuar a execução.

Nota: Configurar essa variável PODERÁ causar problemas de segurança, POR ISSO SAIBA QUE ESTEJA FAZENDO PRIMEIRO.

fastcgi.impersonate string

FastCGI sob o IIS (em sistemas baseados em WinNT) suporta a habilidade de despersonalizar tokens de segurança da chamado do cliente. Isto permite ao ISS definir o contexto de segurança da requisição que está rodando. mod_fastcgi sob o Apache ainda não suporta esse recurso (17/03/2002). Configure 1 se estiver rodando sob o ISS. O padrão é zero.

cgi.rfc2616_headers int

Diz ao PHP que tipo de header utilizar quando enviando a resposta HTTP. Se configurado para 0, o PHP envia um header Status:, suportado pelo Apache e outros servidores web. Quando configurado para 1, o PHP irá enviar headers compatíveis com o RFC 2616. Deixe configurado para 0 a não ser que saiba o que está fazendo.

Upload de arquivos

Tabela 4-7. Opções de configuração para upload de arquivos

Nome | Padrão | Alterável
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Breve descrição das diretivas de configuração.

file_uploads boolean

Permite ou não upload de arquivos HTTP. Veja também upload_max_filesize, upload_tmp_dir e post_max_size directives.

upload_tmp_dir string

O diretório temporário utilizado para armazenar arquivos quando realizando o upload de arquivos. Ele precisa ter permissão de escrita para qualquer usuário que for rodar o PHP. Se não especificado, o PHP utilizará o default do sistema.

upload_max_filesize integer

O tamanho máximo de um arquivo para upload.

SQL Geral

Tabela 4-8. Opções de configuração SQL gerais

Nome | Padrão | Alterável
sql.safe_mode | "0" | PHP_INI_SYSTEM

Breve descrição das diretivas de configuração.

sql.safe_mode boolean

Diretivas de configuração do debugador

Cuidado

Somente o PHP 3 implemente um debugador padrão. Para mais informações, veja Apêndice E.

debugger.host string

Nome DNS ou endereço IP do host utilizado pelo debugador.

debugger.port string

Porta utilizado pelo debugador.

debugger.enabled boolean

Controle de ativação do debugador.

Anterior | Principal | Próxima
Como alterar as configurações definidas | Acima | Referência da Linguagem


Referência da Linguagem

Manual do PHP
Anterior Próxima

II. Referência da Linguagem

Índice
5. Sintaxe básica
6. Tipos
7. Variáveis
8. Constantes
9. Expressões
10. Operadores
11. Estruturas de Controle
12. Funções
13. Classes e Objetos
14. Referências

Anterior | Principal | Próxima
Diretivas de configuração diversas |  | Sintaxe básica


Sintaxe básica

Manual do PHP
Anterior Próxima

Capítulo 5. Sintaxe básica

Índice
Alternado/Escaping do HTML
Separador de instruções
Comentários

Alternado/Escaping do HTML

Quando o PHP interpreta um arquivo, ele simplesmente repassa o texto do arquivo até encontrar uma das tags especiais que lhe diz para começar a interpretar o texto como código PHP. O interpretador então executa todo o código que encontra, até chegar em uma tag de fechamento PHP, que novamente o coloca simplesmente repassando texto novamente. Este é o mecanismo que permite a inclusão de código PHP dentro do HTML: qualquer coisa fora das tags PHP é deixado como encontrado, enquanto tudo dentro é interpretado e executado.

Há quatro conjuntos de tags que podem ser usadas para marcar blocos de código PHP. Delas, somente duas (<?php. . .?> e <script language="php">. . .</script>) são sempre disponíveis. As outras podem ser ativadas ou desativadas a partir do arquivo de configuração php.ini. Enquanto as formas reduzidas das tags ou no seu estilo ASP serem convenientes, elas não são portáveis em todas as versões. Além disso, se você pretende incluir código PHP em XML ou XHTML, você precisará usar a forma <?php ... ?> para compatibilidade com o padrão XML.

As tags suportadas pelo PHP são:

Exemplo 5-1. Maneiras de alternar do HTML

1.  <?php echo("se você precisa dispor documentos XHTML ou XML, use assim\n"); ?>

2.  <? echo ("este é o mais simples, como uma instrução de processamento SGML\n"); ?>
    <?= espressao ?> Uma redução de "<? echo expressao ?>"

3.  <script language="php">
        echo ("alguns editores (como o FrontPage) não
              gostam de processas instruções");
    </script>

4.  <% echo ("Você também pode usar tags ASP opcionalmente"); %>
    <%= $variavel; # Uma redução para "<% echo ..." %>

O primeiro método, <?php. . .?>, é o preferencial, já que ele permite o uso do PHP em códigos padrão XML como o XHTML.

O segundo método pode não estar sempre disponível. Tags curtas estão disponíveis apenas quando ativadas. Isto pode ser realizando através da função short_tags() (PHP 3 somente), ativando a diretiva de configuração short_open_tag no arquivo de configuração do PHP ou compilando o PHP com a opção --enable-short-tags no configure. Mesmo que ele esteja configurado por default no php.ini-dist, o uso de tags curtas é desencorajado.

A quarta maneira só está disponível se a tag estilo ASP for ativada utilizando a diretiva asp_tags no arquivo de configuração.

Nota: O suporte as tags estilo ASP foi incorporada na versão 3.0.4.

Nota: A utilização das tags curtas deve ser evitada quando do desenvolvimento de aplicações ou bibliotecas com intenção de redistribuição ou no desenvolvimento de serviços em PHP que não ficarão sob seu controle, uma vez que as tags curtas podem não estar disponíveis no servidor de instalação. Para portabilidade de código para distribuição, tenha certeza de não usar tags curtas.

A tag de fechamento incluirá uma linha nova linha em branco automaticamente se uma não estiver presente. Além, a tag de fechamento automaticamente implica num ponto e vírgula: você não precisa ter um ponto e vírgula no fim da última linha de código PHP. Fechar o bloco de PHP no final do arquivo é opcional.

O PHP também suporta a utilização de estruturas como essa:

Exemplo 5-2. Alternagem avançada

<?php
if ($expression) {
    ?>
    <strong>Isso é verdadeiro.</strong>
    <?php
} else {
    ?>
    <strong>Isto é falso.</strong>
    <?php
}
?>
Isso funciona como esperado porque quando o PHP encontra a tag de fechamento ?>, ele simplesmente começa a imprimir tudo até encontrar outra tag de abertura. Obviamente, o exemplo acima se aplica a exibição de grandes blocos de texto, uma vez que sair do modo de interpretação do PHP é geralmente mais eficiente que imprimir todo o texto através de funções como echo(), print() e outras.

Anterior | Principal | Próxima
Referência da Linguagem | Acima | Separador de instruções


Separador de instruções

Instruções são separadas da mesma forma que o C ou o Perl - cada instrução termina com um ponto e vírgula.

A tag de fechamento (?>) também implica no fim de uma instrução, então os exemplos seguintes são equivalentes:

<?php
    echo "Isto é um teste";
?>

<?php echo "Isto é um outro teste" ?>

Anterior | Principal | Próxima
Sintaxe básica | Acima | Comentários


Comentários

O PHP suporta comentários do 'C', 'C++' e Unix shell. Por exemplo

<?php
    echo "Isto é um teste"; //Comentário de uma linha no C++
    /* Isto é um comentário de mais de uma linha
       e aqui temos outra linha */
    echo "Isto é um outro teste";
    echo "O último teste"; #Comentário no estilo Unix shell
?>

Os comentários de uma linha só tem efeito até o fim da linha ou fim do bloco de código PHP atual, o que ocorrer primeiro.

<h1>Isto é um <?php # echo " simples";?> exemplo.</h1>
<p>No título acima você lerá 'Isto é um exemplo'.

Você precisa ser cuidadoso com comentários estilo 'C' encadeados, pois eles podem causar problemas em grandes blocos.

<?php
 /*
    echo "Isto é um teste"; /* Este comentário causará um erro */
 */
?>

Os comentários de uma linha somente agem até o fim da linha atual ou o fim do bloco de código PHP, o que ocorrer primeiro. Isto significa que código HTML após // ?> SERÁ impresso: ?> continuará desligando o modo PHP, retornando para o modo HTML, e o // não pode influenciar isso. If asp_tags configuration directive is enabled, it behaves the same with // %>.

Anterior | Principal | Próxima
Separador de instruções | Acima | Tipos


Tipos

Manual do PHP
Anterior Próxima

Capítulo 6. Tipos

Índice
Introdução
Booleanos
Inteiros
Números de ponto flutuante
Strings
Arrays
Objetos
Resource
NULL
Pseudo-tipos utilizados nesta documentação
Manipulação de tipos

Introdução

O PHP suporta os oitos tipos primitivos.

São quatros tipos básicos:

  • boolean

  • integer

  • float (número de ponto flutuante, ou também 'double')

  • string

Dois tipos compostos:

  • array

  • object

E finalmente dois tipos especiais:

  • resource

  • NULL

Este manual também introduz alguns pseudo-tipos por razões de legibilidade:

  • mixed

  • number

  • callback

Você também pode encontrar algumas referências ao tipo "double". Considere o tipo double como sendo o float, e os dois nomes existem por razões históricas.

O tipo da variável geralmente não é configurado pelo programador: isto é decidido em tempo de execução pelo PHP, dependendo do contexto no qual a variável é usada.

Nota: Se você quiser checar o tipo e valor de uma certa expressão, utilize var_dump().

Nota: Se você simplesmente quiser uma representação legível de seu tipo para debugagem, use gettype(). Para verificar por certos tipos, não use gettype(), mas sim as funções is_type. Vejamos alguns exemplos:

<?php
$bool = TRUE;   // um booleano
$str  = "foo";  // uma string
$int  = 12;     // um inteiro

echo gettype($bool); // imprime "boolean"
echo gettype($str);  // imprime "string"

// Se é um inteiro, incrementa em quatro
if (is_int($int)) {
    $int += 4;
}

// Se $bool é string, imprime
// (e não faz nada se não for)
if (is_string($bool)) {
    echo "String: $bool";
}
?>

Se você quiser forçar a conversão de uma variável para um certo tipo, você pode moldar (casting) a variável ou usar a função settype() nela.

Note que uma variável pode ser avaliada com valores diferentes em certas situações, dependendo de qual tipo ela é no momento. Para mais informações, veja a seção Manipulação de tipos. Também possa ser interressante se interar da tabela de conversão de tipos, e seus exemplo de vários comparações relacionadas.

Anterior | Principal | Próxima
Comentários | Acima | Booleanos


Booleanos

Este é o tipo mais fácil. Um booleano expressa um valor de verdade. Ele pode ser TRUE ou FALSE.

Nota: O tipo booleano foi introduzido no PHP 4.

Sintaxe

Para especificar um literal booleano, use as palavras chave TRUE ou FALSE. Ambas são insensitivas ao caso.

<?php
$foo = True; // assimila o valor TRUE para $foo
?>

Usualmente você pode utilizar algum tipo de operador que retorne um valor booleano, e passá-lo para uma estrutura de controle.

<?php
// == é um operador que testa
// igualdade e retorna um booleano
if ($action == "mostrar_versao") {
    echo "A versão é 1.23";
}

// isto não é necessário ...
if ($exibir_separadores == TRUE) {
    echo "<hr>\n";
}

// ... porque você pode simplesmente escrever isso:
if ($exibir_separadores) {
    echo "<hr>\n";
}
?>

Convertendo para booleano

Para converter explicitamente um valor para booleano, utilize-se dos modificadores (bool) ou (boolean). Entretanto, na maioria dos casos, você não precisa utilizar o modificador, desde que qualquer valor será convertido automaticamente se um operador, função ou estrutura de controle requerer um argumento booleano.

Veja também Manipulação de tipos.

Quando convertendo para booleano, os seguintes valores são considerados FALSE:

  • o próprio booleano FALSE

  • o inteiro 0 (zero)

  • o ponto flutuante 0.0 (zero)

  • uma string vazia e a string "0"

  • um array sem elementos

  • um objeto sem elementos membros

  • o tipo especial NULL (incluindo variáveis não definidas)

Qualquer outro valor é considerado TRUE (incluindo qualquer recurso).

Atenção

-1 é considerado TRUE, como qualquer valor não zero (negativos ou positivos)!

<?php
echo gettype((bool) "");        // bool(false)
echo gettype((bool) 1);         // bool(true)
echo gettype((bool) -2);        // bool(true)
echo gettype((bool) "foo");     // bool(true)
echo gettype((bool) 2.3e5);     // bool(true)
echo gettype((bool) array(12)); // bool(true)
echo gettype((bool) array());   // bool(false)
?>

Anterior | Principal | Próxima
Tipos | Acima | Inteiros


Inteiros

Um inteiro é um número do conjunto Z = {..., -2, -1, 0, 1, 2, ...}.

Veja também: Inteiros de tamanho arbitrário / GMP, Números de ponto flutuante e Precisão arbitrária / BCMath.

Sintaxe

Inteiros podem ser especificados em notação decimal (base 10), hexadecimal (base 16) ou octal (base 8), opcionalmente precedido de sinal (- ou +).

Para usar a notação octal, você precisa preceder o número com um 0 (zero). Para utilizar a notação hexadecimal, preceda número com 0x.

Exemplo 6-1. Literais inteiras

<?php
$a = 1234; # número decimal
$a = -123; # um número negativo
$a = 0123; # número octal (equivalente a 83 em decimal)
$a = 0x1A; # número hexadecimal (equivalente a 26 em decimal)
?>
Formalmente, as possíveis representação de inteiros são:

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal

O tamanho de um inteiro é dependente de plataforma, sendo um numero aproximado a 2 bilhões o valor mais comum (número de 32 bits com sinal). O PHP não suporta inteiros sem sinal.

Overflow de inteiros

Se você especifica um número além dos limites do tipo inteiro, ele será interpretado como um ponto flutuante. Assim, se você realizar uma operação que resulte em um número além dos limites do tipo inteiro, um ponto flutuante será retornado também.

<?php
$ numero_grande =  2147483647;
var_dump($numero_grande);
// saida: int(2147483647)

$numero_grande =  2147483648;
var_dump($numero_grande);
// saida: float(2147483648)

// isto também é permitido para especificação de números hexadecimais:
var_dump( 0x80000000 );
// saida: float(2147483648)

$milhao = 1000000;
$numero_grande =  50000 * $milhao;
var_dump($numero_grande);
// saida: float(50000000000)
?>

Atenção

Infelizmente, há um bug no PHP que faz que ele nem sempre trabalhe corretamente quando há números negativos envolvidos. Por exemplo, quando você faz -50000 * $milhao, o resultado será -429496728. Entretanto, quando ambos os operadores são positivos, isso não ocorre.

Isto foi resolvido no PHP 4.1.0.

Não há operador de divisão inteira no PHP. 1/2 retorna o ponto flutuante 0.5. Você pode moldar (cast) o valor para inteiro para sempre truncar o número, ou você pode usar a função round().

<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

Convertendo para inteiro

Para converter explicitamente um valor para inteiro, utilize-se dos modificadores (int) ou (integer). Entretanto, na maioria dos casos, você não precisa utilizar o modificador, desde que qualquer valor será automaticamente convertido se um operador, função ou estrutura de controle requerer um argumento inteiro. Você também pode converter o valor de um inteiro com a função intval().

Veja também Manipulação de tipos.

de booleanos

FALSE será retornado como 0 (zero), e TRUE como 1 (um).

De números de ponto flutuante

Quando convertendo de números de ponto flutuante para inteiros, o número será truncado.

Se o número convertido estiver além dos limites de um inteiro (usualmente +/- 2.15e+9 = 2^31), o resultado é indefinido, mesmo porque o ponto flutuante não tem a mesma precisão para fornecer um resultado inteiro exato. Não se preocupe, pois nenhum aviso será emitido neste caso!

Atenção

Nunca modifique uma fração desconhecida para inteiro, porque isto pode fornecer resultados inesperados as vezes.

<?php
echo (int) ( (0.1+0.7) * 10 ); // imprime 7!
?>

Para maiores informações, veja o alerta sobre a precisão de número flutuante..

De strings

Veja Conversão de strings para números

De outros tipos

Cuidado

O comportamento da conversão de um inteiro é indefinido de outros tipos. Atualmente, o comportamento é o mesmo como se primeiro o valor fosse convertido para booleano. Entretanto, não confie neste comportamento, pois ele pode mudar sem aviso.

Anterior | Principal | Próxima
Booleanos | Acima | Números de ponto flutuante


Números de ponto flutuante

Números de ponto flutuante (AKA "floats", "doubles" ou "números reais") podem ser especificados utilizando qualquer uma das sintaxes seguintes:

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Formalmente:

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})

O tamanho de um número de ponto flutuante é dependente de plataforma, sendo o máximo de ~1.8e308 com uma precisão de 14 decimais digitais um valor comum (número de 64 bits no formato IEEE).

Precisão de números de ponto flutuante

É sabido que frações simples como 0.1 ou 0.7 não podem ser convertidos em sua representação binária interna sem uma pequena perda de precisão. Isto pode causar erros confusos: por exemplo, floor((0.1+0.7)*10) irá retornar 7 em vez do esperado 8, como resultado da representação interna realmente ser algo como 7.9999999999....

Isto está relacionado ao fato de que é impossível expressar, exatamente, algumas frações em notação decimal com um número finito de dígitos. Por exemplo, 1/3 na forma decimal se torna 0.3333333. . ..

Então, nunca confie em resultados com números de ponto flutuante até a última casa e nunca compare números de ponto flutuante em igualdades. Se você realmente precisar de alta precisão, você pode utilizar as funções matemáticas de precisão arbitrária ou as funções relacionadas ao gmp.

Convertendo para float

Para informações em como e quando strings são convertidas para floats, veja a seção entitulada Conversão de Strings para números. Para valores de outros tipos, a conversão é a mesma se o valor puder ser convertido para inteiro e então para float. Veja a seção Convertendo para inteiro para mais informações.

Anterior | Principal | Próxima
Inteiros | Acima | Strings


Strings

Uma string é uma série de caracteres. No PHP, um caracter é o mesmo que um byte, ou seja, há exatamente 256 caracteres diferentes possíveis. Isto implica que o PHP não tem suporte nativo ao Unicode. Veja utf8_encode() e utf8_decode() para suporte ao Unicode.

Nota: Não há nenhum problema nas strings se tornarem muito grandes. Não há nenhum limite para o tamanho de strings imposta pelo PHP, então não há razão para se preocupar com strings longas.

Sintaxe

Uma string literal pode ser especificada de três formas diferentes.

  • apóstrofo

  • aspas

  • sintaxe heredoc

Apóstrofos

A maneira mais simples para especificar uma string é delimitá-la entre apóstrofos (o caracter ').

Para especificar um apóstrofo. você precisará "escapá-la" com uma contra barra (\), como em muitas outras linguagens. Se uma contra barra precisa ocorrer antes de um apóstrofo ou no final da string, você precisa duplicá-la. Note que se você tentar escapar qualquer outro caracter, a contra barra também será impressa! Então geralmente não é necessário escapar a própria contra barra.

Nota: No PHP 3, um aviso com nível E_NOTICE será emitido quando isto acontecer.

Nota: Diferentemente das duas outras sintaxes, variables e seqüências de escape para caracteres especiais não serão substituídas quando elas ocorrerem dentro de strings delimitadas por apóstrofes.

<?php
echo 'isto é uma string comum';

echo 'Você pode incluir novas linhas em strings,
dessa maneira que estará
tudo bem';

// Imprime: Arnold disse uma vez: "I\'ll be back"
echo 'Arnold once said: "I\'ll be back"';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\\*.*?';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\*.*?';

// Imprime: Isto não será substituido: \n uma nova linha
echo 'Isto não será substituido: \n uma nova linha';

// Imprime: Variaveis $também não $expandem
echo 'Variaveis $também não $expandem';
?>

Aspas

Se a string é delimitada entre aspas ("), o PHP entende mais seqüências de escape para caracteres especiais:

Tabela 6-1. Seqüências de escape

Seqüência | Significado
\n | fim de linha (linefeed ou LF ou 0x0A (10) em ASCII)
\r | retorno de carro (carriage return ou CR ou 0x0D (13) em ASCII)
\t | TAB horizontal (HT ou 0x09 (9) em ASCII)
\\ | contra barra ou barra invertida
\$ | sinal de cifrão
\" | aspas
\[0-7]{1,3} | a seqüência de caracteres batendo a expressão regular dos caracteres em notação octal
\x[0-9A-Fa-f]{1,2} | a seqüência de caracteres batendo a expressão regular de um caracter em notação hexadecimal

Novamente se você tentar escapar qualquer outro caracter, a contra barra será impressa também!

Mas o mais importante recurso de strings delimitadas por aspas está no fato de que nome de variáveis serão substituídos. Veja interpretação de strings para detalhes.

Heredoc

Outra maneira para delimitar strings é utilizando a sintaxe heredoc ("<<<"). É informado um identificador depois de <<<, então a string, e então o mesmo identificador para fechar a delimitação.

O identificador de fechamento precisa começar na primeira coluna da linha. Além, o identificador utilizado precisa seguir as mesmas regras de nomeação que qualquer outro rótulo no PHP: só pode conter caracteres alfanuméricos e sublinhados, e precisa começar com um caracter não numérico ou sublinhado.

Atenção

É muito importante verificar que a linha do identificador de fechamento não contenha nenhum outro caracter, exceto, possivelmente um ponto e vírgula (;). O que significa que o identificador não pode ser indentado, e que não pode haver nenhum espaço ou tabulações antes ou depois do ponto e vírgula. É também importante perceber que o primeiro caracter antes do identificador de fechamento precisa ser um caracter de nova linha como esperada por seu sistema operacional. Por exemplo, \r em sistemas Macintosh.

Se essa regra for quebrada e o identificador de fechamento não estiver perfeito, então ele não será considerado como identificador de fechamento e o PHP irá continuar procurando por um. Se, neste caso, um identificador de fechamento apropriado não for encontrado, então um erro de interpretação (parse) será lançado na linha final do script.

Textos heredoc se comportam como strings delimitadas por aspas, com apenas uma diferença. Você não precisa escapar apóstrofos e aspas em seus heredocs, mas você ainda pode continuar utilizando os códigos de escape listados acima. Variáveis são substituídas, mas o mesmo cuidado precisa ser tomado quando expressando variáveis complexas dentro de heredocs assim como nas strings.

Exemplo 6-2. Exemplo de delimitação de strings heredoc

<?php
$str = <<<EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;

/* Exemplo mais complexo, com variáveis */
class foo
{
    var $foo;
    var $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'Meu nome';

echo <<<EOT
Meu nome é "$name". Eu estou imprimindo $foo->foo.
Agora, eu estou imprimindo {$foo->bar[1]}.
Isto deve imprimir um 'A' maiúsculo: \x41
EOT;
?>

Nota: O suporte a heredoc foi acrescentado no PHP 4.

Interpretação de variáveis

Quando uma string é especificada dentro de aspas ou heredoc, variáveis são interpretadas dentro delas.

Há dois tipos de sintaxe: um simples e um complexo . A sintaxe simples é a mais comum e conveniente, provendo uma maneira de interpretar uma variável, um valor de array ou uma propriedade de object.

A sintaxe completa foi introduzida no PHP 4, e pode ser reconhecida por chaves ({}) envolvendo a expressão.

Sintaxe simples

Se um sinal de cifrão ($) é encontrado, o interpretador tentará obter tantos identificadores quanto possíveis para formar um nome de variável válido. Envolva o nome da variável com chaves se você deseja explicitamente especificar o fim do nome.

<?php
$cerveja = 'Heineken';
echo "O sabor das '$cerveja's é otimo"; // funciona, "'" é um caracter inválido para nome de variáveis
echo "Ele bebeu algumas $cervejas";     // não funciona, 's' é um caracter válido para nome de variáveis
echo "Ele bebeu algumas ${cerveja}s";   // funciona
echo "Ele bebeu algumas {$cerveja}s";   // funciona
?>

Similarmente, você também pode interpretar um índice de array ou uma propriedade de objeto. Com índices de arrays, o colchete de fechamento (]) marca o final do índice. Para propriedades de objetos se aplicam as mesmas regras das variáveis comuns, embora não exista um truque para as propriedades de objetos como para as variáveis.

<?php
// Esses exemplos são específicos para utilização de arrays dentro de strings
// Quando fora de strings, sempre delimite suas chaves de array strings
// e nao use {colchetes} fora das strings tambem.

// Vamos ver todos os erros
error_reporting(E_ALL);

$fruits = array('morango' => 'vermelho', 'banana' => 'amarelo');

// Funciona, mas note que funciona de maneira diferente fora dos delimitadores de strings
echo "A banana é $fruits[banana].";

// Funciona
echo "A banana é {$fruits['banana']}.";

// Funciona, mas o PHP procura por uma constante chamada 'banana' antes,
// como descrito a seguir
echo "A banana é {$fruits[banana]}.";

// Nao funciona, use colchetes. Isto lanca um parse error.
echo "A banana é $fruits['banana'].";

// Funciona
echo "A banana é " . $fruits['banana'] . ".";

// Funciona
echo "Este quadrado tem $square->width metros de lado.";

// Nao funciona. Para uma solução, veja a sintaxe complexa.
echo "Este quadrado tem $square->width00 centímetros de lado.";
?>

Para qualquer coisa mais complexa, você precisa utilizar a sintaxe complexa.

Sintaxe complexa (chaves)

Isto não é chamado sintaxe complexa porque a sintaxe em si é complexa, mas porque você pode incluir expressões complexas desta maneira.

De fato, você pode incluir qualquer valor no que esteja no espaço de nomes dentro de strings com esta sintaxe. Você simplesmente escreve a expressão da mesma maneira que faria fora da string, e então incluí-la entre chaves. Desde que você não pode escapar '{', esta sintaxe somente será reconhecida quando o $ é imediatamente seguido de um {. (Utilize "{\$" ou "\{$" para obter um literal "{$"). Alguns exemplos para tornar isso mais claro:

<?php
// Vamos ver todos os erros
error_reporting(E_ALL);

$bom = 'fantastico';

// Não funciona, imprimindo: Isto é { fantastico}
echo "Isto é { $bom}";

// Funciona, imprimindo: Isto é fantástico
echo "Isto é {$bom}";
echo "Isto é ${bom}";

// Funciona
echo "Este quadrado tem {$square->width}00 centímetros de lado.";

// Funciona
echo "Isto funciona: {$arr[4][3]}";

// Isto está errado pela mesma razao que $foo[bar] eh errado
// fora de uma string. Em outras palavras, isto ainda funciona MAS
// porque o PHP primeiro procura pro uma constante nomeada foo, e ele
// lancara um erro do tipo E_NOTICE (undefined constant).
echo "Isto é errado: {$arr[foo][3]}";

// Funciona. Quanto mexendo com arrays multi dimensionais, sempre use
// colchetes em volta dos arrays quando detro de strings
echo "Isto funciona: {$arr['foo'][3]}";

// Funciona
echo "Isto funciona: " . $arr['foo'][3];

echo "Você pode escrever também {$obj->values[3]->name}";

echo "Este é o valor da variável chamada $name: {${$name}}";
?>

Acesso e modificação de caracteres da string

Caracteres nas strings podem ser acessados e modificados apenas especificando o deslocamento baseado em zero do caracter desejado depois da string dentro de chaves.

Nota: Para manter a compatibilidade, você ainda pode usar colchetes de array para o mesmo propósito. Entretanto, esse sintaxe é obsoleta desde o PHP 4.

Exemplo 6-3. Alguns exemplos com strings

<?php
// Pega o primeiro caracter da string
$str = 'Isto é um teste.';
$first = $str{0};

// Pega o terceiro caracter da string
$third = $str{2};

// Pega o último caracter da string
$str = 'Isto ainda é um teste.';
$last = $str{strlen($str)-1};

// Modifica o ultimo caracter da string
$str = 'Olhe o mal';
$str{strlen($str)-1} = 'r';

?>

Funções e operadores úteis

Strings podem ser concatenados utilizando o operador '.' (ponto). Note que o operador '+' (adição) não funciona para isso. Veja operadores de string para mais informações.

Há uma grande quantidade de funções úteis para modificação de strings.

Veja a seção de funções de string para funções gerais e funções de expressões regulares para busca e substituição avançada.(em dois sabores: Perl e POSIX estendido).

Há também funções para strings URL e funções para criptografia e descriptografia de strings (mcrypt e mhash).

Finalmente, se você ainda não encontrar o que está procurando, veja também as funções de tipos de caracteres.

Convertendo para strings

Você pode converter um valor para string utilizando o molde (string), ou a função strval(). Conversão para string é automaticamente realizada no escopo de uma expressão para você onde uma string é necessária. Isto acontece quando você usa as funções echo() ou print(), ou quando você compara o valor de uma variável com uma string. Lendo as seções do manual sobre Tipos e Conversão de Tipos tornará o que se segue um pouco mais claro. Veja também settype().

O valor boolean TRUE é convertido para a string "1", o valor FALSE é representado como "" (string vazia). Desta forma, você pode converter livremente entre os tipos booleano e string.

Um integer ou número de ponto flutuante (float) é convertido para a representação string do número em dígitos arábicos (incluindo a parte expoente para números de ponto flutuante).

Arrays são sempre convertidos para a string "Array", então você não pode exportar o conteúdo de um array com echo() ou print() para ver o que há dentro dela. Para ver um elemento, você precisa fazer algo como echo $arr['foo']. Veja abaixo dicas de como exportar/ver todo seu conteúdo.

Objetos são sempre convertidos para a string "Object". Se você quiser imprimir os valores das variáveis membro de um object por razão de debug, leia os parágrafos abaixo. Se você quiser encontrar o nome da classe do qual o objeto é uma instância, use get_class().

Recursos são sempre convertidos para strings na estrutura "Resource id #1" onde 1 é o número único do resource assimilado pelo PHP na execução. Se você quiser obter o tipo do recurso, utilize get_resource_type().

NULL é sempre convertido para uma string vazia.

Como você viu acima, imprimir arrays, objetos ou recursos não fornece qualquer informação útil sobre os seus próprios valores. Veja as funções print_r() e var_dump() para melhores maneiras de imprimir valores para debug.

Você também pode converter valores PHP para strings para armazená-los permanentemente. Este método é chamado serialização, e pode ser feito com a função serialize(). Você também pode serializar valores PHP para estruturas XML , se você ativou o suporte a WDDX na configuração do seu PHP.

Conversão de strings para números

Quando uma string é avaliada como um valor numérico, o valor resultante e o tipo é determinado como segue.

A string será avaliada como um ponto flutuante se conter qualquer um dos caracteres '.', 'e', ou 'E'. Em outros casos, ela será avaliada como um inteiro.

O valor é obtido da porção inicial da string. Se a string começa com dados numéricos válidos, esse será o valor utilizado. Em outro caso, o valor será 0 (zero). Dados numéricos válidos são: um sinal opcional, seguido por um ou mais dígitos (opcionalmente contendo um ponto decimal), seguido de um expoente, também opcional. O expoente é um 'e' ou 'E' seguido de um ou mais dígitos.

<?php
$foo = 1 + "10.5";                // $foo é float (11.5)
$foo = 1 + "-1.3e3";              // $foo é float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo é integer (1)
$foo = 1 + "bob3";                // $foo é integer (1)
$foo = 1 + "10 Small Pigs";       // $foo é integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo é float (14.2)
$foo = "10.0 pigs " + 1;          // $foo é float (11)
$foo = "10.0 pigs " + 1.0;        // $foo é float (11)
?>

Para mais informações sobre esta conversão, veja página do manual UNIX de strtod(3).

Se você deseja testar qualquer um dos exemplo dessa seção, você pode copiar e colar os exemplos e inserir as linhas seguintes para ver por si mesmo como isso funciona.

<?php
echo "\$foo==$foo; tipo " . gettype ($foo) . "<br />\n";
?>

Não espere obter o código de um caracter por convertê-lo para inteiro (como você teria em C, por exemplo). Use as funções ord() e chr() para converter entre código de caracteres e os próprios caracteres.

Anterior | Principal | Próxima
Números de ponto flutuante | Acima | Arrays


Arrays

Um array no PHP é atualmente um mapa ordenado. Um mapa é um tipo que relaciona valores para chaves. Este tipo é otimizado de várias maneiras, então você pode usá-lo como um array real, ou uma lista (vetor), hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e provavelmente mais. Como você pode ter outro array PHP como um valor, você pode facilmente simular árvores.

A explicação dessas estruturas estão além do escopo desse manual, mas você pode encontrar exemplos para cada uma dessas estruturas a seguir. Para mais informações sobre estruturas, refira-se a literatura externa sobre esses tópicos.

Sintaxe

Especificando com array()

Um array pode ser criado com o construtor de linguagem array(). Ele pega um certo número de pares separados por vírgula chave => valor .

array( [chave =>] valor
     , ...
     )
// chave pode ser tanto string ou um integer
// valor pode ser qualquer coisa

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

A chave pode ser tanto um integer ou uma string. Se a chave é uma representação padrão de um integer, ele será interpretado assim (por exemplo, "8" será interpretado como 8, enquanto "08" será interpretado como "08"). Não há diferença entre arrais indexados e associativos em PHP, apenas um tipo de array, que pode ter índices inteiros ou string.

O valor pode ser qualquer tipo PHP:

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

Se omitir a chave quando fornece um novo item, o maior índice inteiro é obtido, e a nova chave será esse máximo + 1. Se você especificar uma chave que já possui um valor assimilada a ela, então o valor é sobrescrito.

<?php
// Esse array eh como ...
array(5 => 43, 32, 56, "b" => 12);

// ... este array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>

Atenção

A partir do PHP 4.3.0, o comportamento da geração de índice descrito acima foi modificado. Agora, se você aumentar um array em que o maior índice atual for negativo, então a próxima chave criada será zero (0). Antes, o novo índice seria o maior índice existente mais 1, do mesmo jeito que os índices positivos.

Utilizar TRUE como chave será interpretado como o integer 1 na chave. Utilizando FALSE como chave será avaliado como o integer 0. Usar NULL como chave é interpretado como uma string vazia. Usar uma string vazia como chave irá criar (ou sobrescerver) uma chave com uma string vazia e seu valor, e isto não é o mesmo que usar colchetes vazios.

Você não pode usar arrays ou objetos como chaves. Fazendo isso resultará em um alerta: Illegal offset type.

Criando/modificando com a sintaxe de colchetes

Você pode também modificar um array existente explicitamente assimilando valores nele.

Isto é feito apenas assimilando valores para o array enquanto especificando a chave em colchetes. Você pode omitir a chave, colocando um par vazio de colchetes ("[]").
$arr[chave] = valor;
$arr[] = valor;
// chave tanto um integer ou string
// valor pode ser qualquer coisa
Se $arr não existir ainda, ele será criado. Então isto é um meio alternativo para especificar um array. Para mudar um certo valor, apenas assimile um novo valor para um elemento especificado por sua chave. Se você quiser remover um par chave/valor, você precisa aplicar unset() nele.

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // Isto eh o mesmo que $arr[13] = 56;
                // nesse ponto do script

$arr["x"] = 42; // Isto acrescenta um novo elemento
                // para o array com a chave "x"

unset($arr[5]); // Isto remove um elemento do array

unset($arr);    // E isto apaga todo o array
?>

Nota: Como mencionado acima, não informar a chave dentro dos colchetes, então o maior índice inteiro é obtido, e a nova chave será esse máximo + 1. Se nenhum índice inteiro existir ainda, a chave será 0 (zero). Se você especificar uma chave que já possui um valor assimilada a ela, então o valor é sobrescrito.

Atenção

A partir do PHP 4.3.0, o comportamento da geração de índice descrito acima foi modificado. Agora, se você aumentar um array em que o maior índice atual for negativo, então a próxima chave criada será zero (0). Antes, o novo índice seria o maior índice existente mais 1, do mesmo jeito que os índices positivos.

Note que a chave inteira maior utilizada para isso não precisa necessariamente existir no array. Ele pode ter existido no array desde a última vez que o array foi indexado. Veja o seguinte exemplo:

<?php
// Criando um array normal
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Agora apagando todos os itens, mas deixando o array intacto:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// Acrescentando um item (note que a chabe eh 5, em vez de zero
// como voce pode ter esperado).
$array[] = 6;
print_r($array);

// Reindexando:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

O exemplo acima deve produzir a seguinte saída:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Funções úteis

Há uma série de funções muito úteis para trabalhar com arrays. Veja a seção sobre arrays.

Nota: A função unset() permite apagar chaves de um array. Esteja avisado que o array NÃO vai ser reindexado. Se você somente usa "índices inteiros comuns" (começando do zero, aumentando um a um), você pode conseguir reindexar o aaray utilizando array_values().

<?php
$a = array( 1 => 'um', 2 => 'dois', 3 => 'três' );
unset( $a[2] );
/* irá produzir um array que pode ser definido como
   $a = array( 1=>'um', 3=>'três');
   e NÃO
   $a = array( 1 => 'um', 2 => 'três');
*/

$b = array_values($a);
// Agora $b eh o  array(1 => 'um', 2 =>'três')
?>

foreach existe especificamente para lidar com arrays. Ele provém uma maneira fácil de percorrer qualquer array.

Array: faça e não faça

Porque $foo[bar] está errado?

Você sempre deve usar delimitadores em volta um índice de um array associativo. Por exemplo, utilizar $foo['bar'] e não $foo[bar]. Mas porque $foo[bar] está errado? Afinal de contas, você vê essa sintaxe nos scripts antigos:

<?php
$foo[bar] = 'inimigo';
echo $foo[bar];
// etc
?>

Isto está errado, mas funciona. Então, porque está errado? A razão está neste código, que tem uma constante indefinida (bar) em vez de uma string ('bar' - repare nos delimitadores), e o PHP pode no futuro definir constantes que, infelizmente em seu código, podem ter o mesmo nome. Isto funciona, porque o PHP automaricamente converte uma string base (uma string não delimitada que não corresponde a nenhum símbolo conhecido) em uma string que contém a string base. Por exemplo, se não existir uma constante definida com o nome bar, então o PHP irá substituí-la pela string 'bar' e usá-la.

Nota: Isto não significa que você sempre deve delimitar as chaves nos arrays. Você não deve delimitar chaves que sejam constantes ou variáveis, porque isso vai impedir o PHP de interpretá-las.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Arrays simples:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nVerificando $i: \n";
    echo "Ruim: " . $array['$i'] . "\n";
    echo "Bom: " . $array[$i] . "\n";
    echo "Ruim: {$array['$i']}\n";
    echo "Bom: {$array[$i]}\n";
}
?>

Nota: A saída do código acima deve ser:
Verificando 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Ruim:
Bom: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Ruim:
Bom: 1

Verificando 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Ruim:
Bom: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Ruim:
Bom: 2

Mais exemplos para demonstrar esse fato:

<?php
// Vamos ver todos os erros
error_reporting(E_ALL);

$arr = array('fruta' => 'maçã', 'legume' => 'cenoura');

// Correto
print $arr['fruta'];  // maçã
print $arr['legume']; // cenoura

// Errado. Isto funciona mas lança um erro PHP do
// nível E_NOTICE porque é utilizada uma constante indefinida (fruta)
//
// Repare: Quando utiliza-se a constrante indefinida fruta, o PHP assume 'fruta'
print $arr[fruta];    // maçã

// Agora vamos definir uma constante para demonstrar o que pode acontecer. Nós
// vamos assimilar o valor 'legume' para a constante de nome fruta
define('fruta', 'legume');

// Observe a diferenca agora
print $arr['fruit'];  // maçã
print $arr[fruit];    // cenoura

// O exemplo seguinte é normal dentro de uma string. Constantes não são
// observadas dentro de strings e por isso nenhum E-NOTICE não é lançado aqui
print "Olá $arr[fruta]";      // Olá maçã

// Com uma exceção: chaves envolvendo arrays dentro de strings
// ativam a checagem de constantes, como em
print "Olá {$arr[fruta]}";    // Hello cenoura
print "Olá {$arr['fruta']}";  // Hello maçã

// E isso não funciona, resultando em um erro de interpretação do tipo:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Isso se aplica ao uso de autoglobais em strings
print "Olá $arr['fruta']";
print "Olá $_GET['foo']";

// Nesse caso, use concatenacao
print "Olá " . $arr['fruta']; // Olá maçã
?>

Quando você ativa error_reporting() para mostrar erros de nível E_NOTICE (como configurando-a para E_ALL) você vê esses erros. Por padrão, error_reporting esté configurada para não mostrar esse nível de erro.

Como explicado na seção sintaxe, a chave precisa estar entre colchetes ('[' e ']'). Isto significa que você pode escrever coisas como isso:

<?php
echo $arr[algumafuncao($bar)];
?>

Isto é um exemplo de utilização de um valor de retorno de função como um índice de array. O PHP conhece constantes, como você deve ter visto algumas E_* antes.

<?php
$error_descriptions[E_ERROR] = "Um erro fatal ocorreu";
$error_descriptions[E_WARNING] = "O PHP emitiu um alarme";
$error_descriptions[E_NOTICE] = "Apenas um aviso informal";
?>

Note que E_ERROR é um identificador válido, assim como bar no primeiro exemplo. Mas no último exemplo seria a mesma coisa que escrevendo:

<?php
$error_descriptions[1] = "Um erro fatal ocorreu";
$error_descriptions[2] = "O PHP emitiu um alarme";
$error_descriptions[8] = "Apenas um aviso informal";
?>

porque E_ERROR é igual a 1, e assim por diante.

Como nós mostramos nos exemplos anteriores, $foo[bar] funciona mas está errado. Funciona porque bar, na sintaxe onde é utilizada é esperada como uma expressão constante. Entretanto, nesse caso não existe constante com o nome bar. O PHP, hoje, assume que você quer bar literalmente, como a string "bar", mas que você esqueceu de escrever os delimitadores.

Então, porque isso é tão mal?

Se em algum ponto do futuro, o time do PHP quiser acrescentar outra constante ou palavra chave, ou você mesmo introduzir outra constante na sua aplicação, você terá problemas. Por exemplo, se você já não pode utilizar as palavras empty e default dessa maneira, desde que elas são palavras reservadas especiais.

Nota: Só para fixar, dentro de uma string delimitada por aspas, é válido não englobar índices de arrays com apóstrofos, de forma que "$foo[bar]" é válido. Veja os exemplos anteriores para detalhes bem como na seção sobre interpretação de variáveis em strings.

Convertendo para array

Para qualquer dos tipos: integer, float, string, boolean e resource, se você converte um valor para um array, você obtêm um array com um elemento (de índice 0) contendo o valor escalar informado.

Se você converte um tipo object para um array, você obtêm as propriedades (variáveis membro) do objeto com elementos do array. As chaves serão o nome das variáveis membro.

Se você converter um valor NULL para um array, você terá um array vazio.

Comparando

É possível comparar arrays através de array_diff() e operadorores de array.

Exemplos

O tipo array do PHP é muito versátil, por isso temos aqui alguns exemplos para mostrar todo o poder dos arrays.

<?php
// isto
$a = array( 'cor'   => 'vermelha',
            'sabor' => 'doce',
            'forma' => 'redonda',
            'nome'  => 'maçã',
                       4        // a chave será 0
          );

// isto é equivalente a acima
$a['cor']   = 'vermelha';
$a['sabor'] = 'doce';
$a['forma'] = 'redonda';
$a['nome']  = 'maçã';
$a[]        = 4;        // a chave será 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// o mesmo de array( 0 => 'a' , 1 => 'b' , 2 => 'c' ),
// ou simplesmente array('a', 'b', 'c')
?>

Exemplo 6-4. Utilizando array()

<?php
// Array como (propriedade-)mapa
$map = array( 'versao'     => 4,
              'OS'         => 'Linux',
              'lang'       => 'inglês',
              'short_tags' => true
            );

// apenas chaves numéricas
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// que é o mesmo que array( 0 => 7, 1 => 8, ...)

$switching = array(         10, // chave = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // chave = 6 (o índice máximo era 5)
                    '8'  =>  2, // chave = 8 (inteiro!)
                    '02' => 77, // chave = '02'
                    0    => 12  // o valor 10 será sobrescrito por 12
                  );

// array vazio
$empty = array();
?>

Exemplo 6-5. Coleção

<?php
$cores = array('vermelho', 'azul', 'verde', 'amarelo');

foreach ($cores as $cor) {
    echo "Você gosta de $cor?\n";
}

/* saida:
Você gosta de vermelho?
Você gosta de azul?
Você gosta de verde?
Você gosta de amarelo?
*/
?>

Note que atualmente não se pode mudar os valores de um array diretamente dentro de um loop. Superar essa limitação é possível da seguinte forma:

Exemplo 6-6. Coleção

<?php
foreach ($cores as $key => $cor) {
    // não funciona:
    //$cor = strtoupper($cor);

    //funciona:
    $cores[$key] = strtoupper($cor);
}
print_r($cores);

/* saida:
Array
(
    [0] => VERMELHO
    [1] => AZUL
    [2] => VERDE
    [3] => AMARELO
)
*/
?>

Este exemplo cria um array na base 1.

Exemplo 6-7. Array baseado em 1

<?php
$primeiroquarto  = array(1 => 'Janeiro', 'Fevereiro', 'Março');
print_r($primeiroquarto);

/* saida:
Array
(
    [1] => 'Janeiro'
    [2] => 'Fevereiro'
    [3] => 'Março'
)
*/
?>

Exemplo 6-8. Preenchendo um array real

<?php
// preenchendo um array com todos os itens de um diretório
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

Arrays são ordenados. Você pode mudar sua ordem utilizando vários funções de ordenação. Veja as funções de arrays para mais informações. Você pode contar o número de itens de um array com a função count().

Exemplo 6-9. Ordenando arrays

<?php
sort($files);
print_r($files);
?>

Porque o valor de um array pode ser qualquer coisa, isto pode ser outro array. Isto pode criar arrays recursivos e multidimensionais.

Exemplo 6-10. Arrays recursivos e multidimensionais

<?php
$fruits = array ( "frutas"  => array ( "a" => "laranja",
                                       "b" => "banana",
                                       "c" => "maçã",
                                     ),
                  "numeros" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "buracos" => array (      "primeiro",
                                       5 => "segundo",
                                            "terceiro",
                                     ),
                );

// Alguns exemplo de enderecos dos valores do array acima
echo $fruits["buracos"][5];   // prints "segundo"
echo $fruits["frutas"]["a"];  // prints "laranja"
unset($fruits["buracos"][0]); // remove "primeiro"

// Criando um novo array multidimensional
$sucos["maca"]["verde"] = "bom";
?>

Você precisa estar ciente que a atribuição sempre envolve cópia de valor. Você precisa utilizar o operadore de referência para copiar um array por referência.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 eh modificado,
             // $arr1 continua sendo apenas array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // agora $arr1 e $arr3 sao os mesmos
?>

Anterior | Principal | Próxima
Strings | Acima | Objetos


Objetos

Inicialização de objetos

Para inicializar um objeto, você usa a instrução new, criando uma instância do objeto em uma variável.

<?php
class foo
{
    function do_foo()
    {
        echo "Fazendo foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

Para uma explicação completa, consulte a seção Classes e Objetos.

Convertendo para objeto

Se um objeto é convertido para objeto, ele não é modificado. Se um valor de um outro tipo é convertido para objeto, uma nova instância da stdClass é criada. Se o valor é NULL, a nova instância estará vazia. Para qualquer outro valor, uma variável menbro chamada scalar irá conter valor.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // exibe 'ciao'
?>

Anterior | Principal | Próxima
Arrays | Acima | Resource


Resource

Recurso é uma variável especial, mantendo uma referência de recurso externo. Recursos são criados e utilizados por funções especiais. Veja o apêndice para uma lista de todas essas funções e seus tipos correspondentes.

Nota: O tipo resource foi incluído no PHP 4

Convertendo para recurso

Como os tipos resource sustentam manipuladores especiais para arquivos abertos, conexões de bancos de dados, pinceis de desenho e coisas assim, você não pode converter nenhum valor para o tipo resource.

Liberando recursos

Através do sistema de contagem de referências introduzido com o engine da Zend no PHP 4, é automaticamente detectado quando um recurso não mais é referenciado (assim como o Java). Quando isto acontece, todos os recursos em uso por esse resource são liberados pelo coletor de lixo. Por essa razão, é raramente necessário liberar memória manualmente utilizando alguma função free_result.

Nota: Conexões persistentes de bancos são especiais. Eles não são destruídos pelo coletor de lixo. Veja também conexões permanentes.

Anterior | Principal | Próxima
Objetos | Acima | NULL


NULL

O valor especial NULL representa que a variável não tem valor. NULL é o único valor possível do tipo NULL.

Nota: O tipo NULL foi incluído no PHP 4

A variável é considerada NULL se

  • ela foi assimilada com a constante NULL.

  • ela ainda não recebeu nenhum valor ainda.

  • ela foi apagada com unset().

Sintaxe

Há apenas um único valor do tipo NULL, e é a palavra (insensitiva ao caso) NULL.

<?php
$var = NULL;
?>

Veja também is_null() e unset().

Anterior | Principal | Próxima
Resource | Acima | Pseudo-tipos utilizados nesta documentação


Pseudo-tipos utilizados nesta documentação

mixed

mixed indica que um parâmetro pode aceitar vários (mas não necessariamente todos) os tipos

gettype(), por exemplo, aceita todos os tipos do PHP, enquanto str_replace() somente aceita strings e arrays.

number

number indica que um parâmetro pode ser tanto um integer ou float.

callback

Some functions like call_user_func() or usort() accept user defined callback functions as a parameter. Callback functions can not only be simple functions but also object methods including static class methods.

A PHP function is simply passed by its name as a string. You can
pass any builtin or user defined function with the exception of
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print() and
unset().

A method of an instantiated object is passed as an array containing an object as the element with index 0 and a method name as the element with index 1.

Static class methods can also be passed without instantiating an object of that class by passing the class name instead of an object as the element with index 0.

Exemplo 6-11. Exemplo de funções callback

<?php

// Exemplo simples de callback
function my_callback_function() {
    echo 'Olá Mundo!';
}
call_user_func('my_callback_function');

// Exemplo de metodo callback
class MyClass {
    function myCallbackMethod() {
        echo 'Olá Mundo!';
    }
}

// Metodo estatico de classe chamado sem qualquer instância do método
call_user_func(array('MyClass', 'myCallbackMethod'));

// Chamada de metodo de objeto
$obj = new MyClass();
call_user_func(array(&$obj, 'myCallbackMethod'));
?>

Anterior | Principal | Próxima
NULL | Acima | Manipulação de tipos


Manipulação de tipos

O PHP não requer (ou suporta) a definição de tipo explicita na declaração de variáveis: o tipo de uma variável é determinado pelo contexto em que a variável é utilizada. Isto significa que, se você assimila um valor string para a variável $var, $var se torna uma string. Se você então assimila um valor inteiro para $var, ela se torna um inteiro.

Um exemplo da conversão automática do PHP é o operador de adição '+'. Se qualquer um dos operadores for float, então todos os operadores são avaliados como floats, e o resultado será um float. De outra forma, se os operadores forem interpretados como inteiros então o resultado será um inteiro. Note que isso NÃO muda os tipos dos operadores: apenas muda em como esses operadores são avaliados.

<?php
$foo = "0";  // $foo eh string (ASCII 48)
$foo += 2;   // $foo eh agora um interio (2)
$foo = $foo + 1.3;  // $foo eh agora um float (3.3)
$foo = 5 + "10 pequenos porcos";   // $foo eh inteiro (15)
$foo = 5 + "10 minúsculos porcos"; // $foo eh inteiro (15)
?>

Se os últimos dois exemplos lhe parecerem estranhos, veja Conversão de strings para números.

Se você deseja forçar uma variável para ser avaliada como um certo tipo, veja a seção Moldando o tipo (casting). Se você deseja mudar o tipo de uma variável, veja settype().

Se quiser testar qualquer um dos exemplo desta seção, você pode usar a função var_dump().

Nota: O comportamento de uma conversão automática para array é atualmente indefinida.

<?php
$a = "1";     // $a é uma string
$a[0] = "f";  // E com relação aos índices da string? O que acontece?
?>

Desde que o PHP (por razões históricas) suporta indexação de strings através de offsets utilizando a mesma sintaxe da indexação de arrays, o exemplo acima nos deixa um problema: $a se tornou um array sendo o primeiro elemento "f", ou será que "f" se tornou o primeiro caracter da string $a ?

As versões atuais do PHP interpretam a segunda assimilacao como identificação de deslocamento na string, então $a se torna "f", o resultado desta conversão automática entretanto pode ser considerada indefinida. O PHP 4 introduziu a nova sintaxe de chaves para acessar caracteres na string. Utilize esta sintaxe em vez do exemplo apresentado acima:

<?php
$a    = "abc"; // $a eh uma string
$a{1} = "f";   // $a eh agora "afc"
?>

Veja a seção entitulada Acessando caracteres da string para mais informações.

Moldando Tipos - Type Casting

A moldagem de tipos no PHP funciona como no C: o nome de um tipo desejado é escrito entre parênteses antes da variável em que se deseja a moldagem.

<?php
$foo = 10;             // $foo eh um inteiro
$bar = (boolean) $foo; // $bar eh um booleano
?>

As moldagens permitidas são:

  • (int), (integer) - molde para inteiro

  • (bool), (boolean) - molde para booleano

  • (float), (double), (real) - molde para número de ponto flutuante

  • (string) - molde para string

  • (array) - molde para array

  • (object) - molde para objeto

Note que tabulações e espaços são permitidos dentro dos parênteses, então o seguinte são funcionalmente equivalentes:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Nota: Em vez de moldar uma variável para string, você também pode englobar a variável entre aspas duplas.

<?php
$foo = 10;            // $foo eh um interio
$str = "$foo";        // $str eh uma string
$fst = (string) $foo; // $fst tambem eh uma string

// Isto imprimirah "eles são o mesmo"
if ($fst === $str) {
    echo "eles são o mesmo";
}
?>

Pode não ser tão óbvio o que exatamente ocorre quando se molda entre certos tipos. Para mais informações, veja essas seções:

  • Convertendo para booleano

  • Convertendo para inteiro

  • Convertendo para float

  • Convertendo para string

  • Convertendo para array

  • Convertendo para object

  • Convertendo para resource

  • Tabela de comparação entre tipos

Anterior | Principal | Próxima
Pseudo-tipos utilizados nesta documentação | Acima | Variáveis


Variáveis

Manual do PHP
Anterior Próxima

Capítulo 7. Variáveis

Índice
Introdução
Variáveis Predefinidas
Escopo de variáveis
Variáveis variáveis
Variáveis externas ao PHP

Introdução

As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome da variável. Os nomes de variável no PHP fazem distinção entre maiúsculas e minúsculas.

Os nomes de variável seguem as mesmas regras como outros rótulos no PHP. Um nome de variável válido se inicia com uma letra ou sublinhado, seguido de qualquer número de letras, algarismos ou sublinhados. Em uma expressão regular isto poderia ser representado desta forma: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Nota: Para nossos propósitos, as letras a-z, A-Z e os caracteres ASCII de 127 a 255 (0x7f-0xff).

<?php
$var = "Bob";
$Var = "Joe";
echo "$var, $Var";      // exibe "Bob, Joe"

$4site = 'not yet';     // inválido; começa com um número
$_4site = 'not yet';    // válido; começa com um sublinhado
$täyte = 'mansikka';    // válido; 'ä' é um caracter ASCII (extendido) 228
?>

No PHP 3, as variáveis são sempre atribuídas por valor. Isto significa que quando você atribui uma expressão a uma variável, o valor da expressão original é copiado integralmente para a variável de destino. Isto significa também que, após atribuir o valor de uma variável a outra, a alteração de uma destas variáveis não afetará a outra. Para maiores informações sobre este tipo de atribuição, veja o capítulo em Expressões.

O PHP 4 oferece um outro meio de atribuir valores a variáveis: a atribuição por referência. Isto significa que a nova variável simplesmente referencia (em outras palavras, "torna-se um apelido para" ou "aponta para") a variável original. Alterações na nova variável afetam a original e vice versa. Isto significa também que nenhuma cópia é realizada, de modo que a atribuição ocorre mais rapidamente. Entretanto, qualquer aumento de velocidade só será realmente notado em *loops* complexos ou em atribuições de grandes arrays ou objetos.

Para atribuir por referência, simplesmente adicione um e-comercial (&) na frente do nome da variável que estiver sendo atribuída (variável de origem) Por exemplo, o trecho de código abaixo imprime 'My name is Bob' duas vezes:

<?php
$foo = 'Bob';              // Atribui o valor 'Bob' a variável $foo
$bar = &$foo;              // Referecia $foo através de $bar.
$bar = "My name is $bar";  // Altera $bar...
echo $bar;
echo $foo;                 // $foo é alterada também.
?>

Uma observação importante a se fazer: somente variáveis nomeadas podem ser atribuídas por referência.

<?php
$foo = 25;
$bar = &$foo;      // Esta atribuição é válida.
$bar = &(24 * 7);  // Inválido; referencia uma expressão sem nome.

function test()
{
   return 25;
}

$bar = &test();    // Inválido.
?>

Anterior | Principal | Próxima
Manipulação de tipos | Acima | Variáveis Predefinidas


Variáveis Predefinidas

O PHP oferece um grande número de variáveis predefinidas para qualquer script que ele execute. Muitas destas variáveis, entretanto, não podem ser completamente documentadas uma vez dependem de diversos fatores, como o servidor no qual scripts são executados, a versão e configuração deste servidor e outros. Algumas destas variáveis não estarão disponíveis quando o PHP for executado na linha de comando. Para uma lista destas variáveis, veja a seção Variáveis reservadas.

Atenção

No PHP 4.2.0 e posteriores, o valor default da diretiva register_globals é off. Esta é a maior modificação no PHP. Tendo register_globals off afeta o conjunto de variáveis predefinidas disponíveis no escopo global. POr exemplo, para ler DOCUMENT_ROOT você usará $_SERVER['DOCUMENT_ROOT'] em vez de $DOCUMENT_ROOT, ou $_GET['id'] da URL http://www.example.com/test.php?id=3 em vez de $id, or $_ENV['HOME'] em vez de $HOME.

Para informações relacionadas desta modificação, veja detalhes da diretiva register_globals, no capítulo de segurança em Usando register_globals , assim como o detalhamento de lançamento das versões do PHP 4.1.0 e 4.2.0.

Utilizar as Variáveis Predefinidas do PHP, como os arrays superglobais, é muito mais preferível.

Desde a versão 4.1.0, o PHP fornece um conjunto adicional de arrays predefinidos contendo as variáveis do servidor web (se aplicável), as variáveis ambiente e as entradas do usuário. Esses novos arrays são especiais pelo motivo que são automaticamente globais (significa que são automaticamente disponíveis em qualquer escopo. Por causa disso, são também conhecidas como 'autoglobais' ou 'superglobais' (Não há um mecanismo no PHP para superglobais definidas pelo usuário) As superglobais são listadas abaixo. Entretanto, para uma explicação de seu conteúdo e detalhes sobre as variáveis predefinidas do PHP e sua natureza, veja a seção Variáveis Predefinidas. Veja também que todas as outras variáveis predefinidas antigas ($HTTP_*_VARS) ainda existem. A partir do PHP 5.0.0, os grandes arrays pré-definidos podem ser desabilitados com register_long_arrays directive.

Variáveis variáveis: Superglobais não podem ser utilizadas como variáveis variáveis.

Se todos os indicadores não estiverem configurados no variables_order, seus arrays superglobais predefinidos respectivos estarão vazios.

Superglobais do PHP

$GLOBALS

Contém um referência para todas as variáveis que são atualmente disponíveis dentro do escopo global do script. As chaves desse array são os nomes das variáveis globais. $GLOBALS existe desde o PHP 3.

$_SERVER

Variáveis criadas pelo servidor web ou diretamente relacionadas ao ambiente de execução do script atual. Análogo ao antigo array $HTTP_SERVER_VARS (que ainda continua disponível, mas em decadência).

$_GET

Variáveis postadas para o script via método HTTP GET. Análogo ao antigo array $HTTP_GET_VARS (que ainda continua disponível, mas em decadência).

$_POST

Variáveis postadas para o script via método HTTP POST. Análogo ao antigo array $HTTP_POST_VARS (que ainda continua disponível, mas em decadência).

$_COOKIE

Variáveis postadas para o script via cookies HTTP. Análogo ao antigo array $HTTP_COOKIE_VARS (que ainda continua disponível, mas em decadência).

$_FILES

Variáveis postadas para o script via transferência de arquivos HTTP. Análogo ao antigo array $HTTP_POST_FILES (que ainda continua disponível, mas em decadência). Veja uploads via método POST para maiores informações.

$_ENV

Variáveis disponíveis no script do ambiente de execução. Análogo ao antigo array $HTTP_ENV_VARS (que ainda continua disponível, mas em decadência).

$_REQUEST

Variáveis postadas para o script por todas os mecanismos de input GET, POST, e COOKIE não podem ter seu conteúdo garantido de qualquer forma. A presença e a ordem de inclusão das variáveis nesse array é definida de acordo com a diretiva de configuração variables_order. Este array não tem um equivalente nas versões anteriores do PHP 4.1.0. Veja também import_request_variables().

Cuidado

Desde o PHP 4.3.0, informações do array $_FILES não existem mais no array $_REQUEST.

Nota: Quando executando na linha de comando , isto não inclui as entradas argv e argc; elas estão presentes no array $_SERVER.

$_SESSION

Variáveis que estão atualmente registradas na sessão do script. Análogo ao antigo array $HTTP_SESSION_VARS (que ainda continua disponível, mas em decadência). Veja a sessão funções de manipulação de Sessões para maiores informações.

Anterior | Principal | Próxima
Variáveis | Acima | Escopo de variáveis


Escopo de variáveis

O escopo de uma variável é o contexto onde ela foi definida. A maior parte das variáveis do PHP tem somente escopo local. Este escopo local inclui os arquivos incluídos. Por exemplo:

<?php
$a = 1;
include "b.inc";
?>

Aqui a variável $a estará disponível no script incluído b.inc. Entretanto, com as funções definidas pelo usuário, um escopo local é introduzido. Quaisquer variáveis utilizadas dento da função é por default limitada dentro do escopo local da função. Por exemplo:

<?php
$a = 1; /* escopo global */

function Teste()
{
    echo $a; /* referencia uma variável do escopo local (não definida) */
}

Test();
?>

Este script não produz nenhuma saída porque a instrução echo() refere-se a uma versão local da variável $a, e ela não tem nenhum valor assimilado nesse escopo. Essa é uma pequena diferença da linguagem C quando variáveis globais são automaticamente disponíveis para funções sem sobreescrever uma eventual definição local. Isto causa problemas quando as pessoas mudam inadivertidamente uma variável global. No PHP, as variáveis globais precisam ser declaradas globais dentro de uma função se ela vai ser utilizada naquela função.

A palavra chave global

Primeiro, um exemplo de global:

Exemplo 7-1. Usando global

<?php
$a = 1;
$b = 2;

function Soma()
{
    global $a, $b;

    $b = $a + $b;
}

Soma();
echo $b;
?>

O script acima imprimirá "3". Declarando $a e $b globais na função, todas as referências a essas variáveis referem-se a versão global. Não há um limite para o número de variáveis globais que podem ser manipuladas por uma função.

Uma segunda maneira de acessar variáveis do escopo global é utilizando o array especial $GLOBALS definido pelo PHP. O exemplo anterior poderia ser rescrito como:

Exemplo 7-2. Usando $GLOBALS no lugar de global

<?php
$a = 1;
$b = 2;

function Soma()
{
    $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Soma();
echo $b;
?>

O array $GLOBALS é um array associativo onde o nome da variável global é a chave do array e o seu conteúdo da variável como o valor do elemento do array. Veja que $GLOBALS existe em qualquer escopo, isto porque $GLOBALS é uma superglobal. Segue um exemplo demonstrando o poder das superglobais:

Exemplo 7-3. Exemplo demonstrando superglobals e escopos

<?php
function test_global()
{
    // A maioria das variaveis predefinidas nao sao 'super' e requerem
    // 'global' para serem disponiveis para funcoes em qualquer escopo.
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Superglobais são disponiveis em qualquer escopo e
    // nao precisam de 'global'. Superglobais existem
    // desde o PHP 4.1.0
    echo $_POST['name'];
}
?>

Utilizando variáveis estáticas

Outro recurso importante do escopo de variáveis é a variável estática. Uma variável estática existe somente no escopo local da função, mas ela não perde seu valor quando o nível de execução do programa deixa o escopo. Considere o seguinte exemplo:

Exemplo 7-4. Exemplo demonstrando a necessidade de variáveis estáticas

<?php
function Teste ()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Essa função é inútil partindo de que cada vez que ela é chamada, ela coloca em $a o valor 0 e imprime "0". A instrução $a++ , que aumenta o valor da variável não tem sentido desde que a função sai e a variável $a desaparece. Para faze-la mais útil como contadora sem deixar de perder o sua conta atual, a variável $a é declarada como estática:

Exemplo 7-5. Exemplo de uso de variáveis estáticas

<?php
function Teste()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Agora, cada vez que a função Teste() for chamada ele imprimirá o valor de $a e o incrementará.

Variáveis estáticas fornecem uma solução ideal para funções recursivas. Uma função recursiva é aquela se chama a si mesma. Cuidados especiais precisam ser tomados quando escrevendo funções recursivas porque é possível que ela continue na recursão indefinidamente. Você tem de ter certeza que há uma maneira segura de terminar a recursão. A seguinte função recursiva conta até 10, utilizando a variável estática $count para saber quando parar:

Exemplo 7-6. Variáveis estáticas em funções recursivas

<?php
function Teste()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        Test ();
    }
    $count--;
}
?>

Nota: Variáveis estáticas podem ser declaradas como nos exemplos acima. A tentativa de assimilar valores para essas variáveis com resultados de expressões causarão um erro de interpretação (parse).

Exemplo 7-7. Declarando variáveis static

<?php
function foo(){
    static $int = 0;          // correro
    static $int = 1+2;        // errado (é uma expressão)
    static $int = sqrt(121);  // wrong  (é uma expressão também)

    $int++;
    echo $int;
}
?>

Referencias em variáveis globais e estáticas

A Zend Engine 1, base do PHP 4, implementa os modificadores static e global para variáveis na questão de referências. Por exemplo, uma veriável global importada dentro do escopo de uma função com a instrução global atualmente cria uma referência para a variável global. Isto pode causar comportamentos impresíveis para os seguintes casos:

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

Executando esse exemplo você terá as seguites saídas:

NULL
object(stdClass)(0) {
}

Uma situação similar se aplica ao modificador static. Referências não são armazenadas estaticamente:

<?php
function &get_instance_ref() {
    static $obj;

    echo "Objeto estatico: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Assimila uma referencia a variavel estatica
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo "Objeto estatico: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Assimila o objeto para a veriavel estatica
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

Executando esse exemplo você terá as seguites saídas:

Objeto estatico: NULL
Objeto estatico: NULL

Objeto estatico: NULL
Objeto estatico: object(stdClass)(1) {
  ["property"]=>
  int(1)
}

Este exemplo demonstra que quando assimilando uma referência para uma variável estática, ela não se lembra quando você chama a função &get_instance_ref() uma segunda vez.

Anterior | Principal | Próxima
Variáveis Predefinidas | Acima | Variáveis variáveis


Variáveis variáveis

As vezes é conveniente poder trabalhar com variáveis variáveis. Isto é, nomes de variáveis que pode ser criadas e utilizadas dinamicamente. Uma variável normal é criada numa instrução como:

<?php
$a = "hello";
?>

Uma variável variável pega o valor de uma variável e a trata como o nome de uma variável. No exemplo acima, hello pode ser utilizada como o nome de uma variável utilizando dois sinais de cifrão:

<?php
$$a = "world";
?>

Neste ponto, duas variáveis foram definidas e preservadas na árvore de símbolos do PHP: $a contendo "hello" e $hello contendo "world". Da mesma forma, esta instrução:

<?php
echo "$a ${$a}";
?>

produz a mesma saida que:

<?php
echo "$a $hello";
?>

no caso: hello world.

Para poder utilizar variáveis variáveis com arrays, você precisa resolver um problema de ambigüidade. Assim, se você escrever $$a[1] então o interpretador pode entender que você quer usar $a[1] como uma variável ou que você quer usar $$a como uma variável e [1] como o índice dessa variável. A sintaxe para resolver essa ambigüidade é ${$a[1]} para o primeiro caso e ${$a}[1] para o segundo.

Atenção

Verifique que variáveis variáveis não podem ser utilizadas com os novos arrays superglobais. Isto significa que você não pode fazer coisas como ${$_GET}. Se você está procurando uma maneira de manipular as superglobais como as antigas HTTP_*_VARS, você deve tentar referenciá-las.

Anterior | Principal | Próxima
Escopo de variáveis | Acima | Variáveis externas ao PHP


Variáveis externas ao PHP

Formulários HTML (GET and POST)

Quando um formulário é submetido para um script PHP, qualquer variável do formulário será automaticamente disponível para o script. Há várias maneiras de acessar estas informações, por exemplo:

Exemplo 7-8. Um formulário HTML simples

<form action="foo.php" method="post">
    Nome:  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Me aperte!" />
</form>

Dependendo da configuração local e suas preferencias pessoais, essas são as vias pela qual você pode acessar os dados de seus formulários:

Exemplo 7-9. Acessando dados de um formulário HTML via POST

<?php
// Disponível desde o PHP 4.1.0

   echo $_POST['username'];
   echo $_REQUEST['username'];

   import_request_variables('p', 'p_');
   echo $p_username;

// Disponivel desde o PHP 3. A partir do PHP 5.0.0, essas grandes
// variaveis pre-definidas podem ser desabilitadas pela diretiva register_long_arrays.

   echo $HTTP_POST_VARS['username'];

// Disponível se a diretiva register_globals = on.
// Desde o PHP 4.2.0 o valor default de register_globals é off
// Usar/manter esse método é preferível.

   echo $username;
?>

Utilizar um formulário GET é similar, exceto que você use a variável GET predefinida. O metodo GET obtem os dados da QUERY_STRING (a informação depois do '?' numa URL). Então, por exemplo, http://www.example.com/test.php?id=3 contém os dados GET que serão acessíveis com $_GET['id']. Veja também $_REQUEST e import_request_variables().

Nota: Arrays superglobais, como $_POST e $_GET, estão disponíveis desde o PHP 4.1.0.

Como explicado, antes do PHP 4.2.0 o valor default de register_globals era on. E no PHP ele era sempre on. A comunidade PHP está encorajando todos a não alterarem essa diretiva, assumindo-a sempre como off e codificando em conformidade com isso.

Nota: A diretiva de configuração magic_quotes_gpc afeta os valores de GET, POST e Cookies. Se estiver ativada, o valor (It's "PHP!") se tornará automaticamente (It\'s \"PHP!\"). Escaping é necessário para inserção em bancos de dados. Veja também addslashes(), stripslashes() e magic_quotes_sybase.

O PHP entende arrays no contexto de variáveis de formulários (veja o FAQ relacionado). Você pode, por exemplo, agrupar variáveis relacionadas juntas, ou usar esse recurso para receber valores de um campo de seleção múltipla. Por exemplo, podemos ter um formulario que manda informações para si mesmo até um comando submetido para mostrar todos os dados.

Exemplo 7-10. Variáveis de formulários mais complexos

<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
    echo '<pre>';
    print_r($_POST);
    echo '<a href="'. $_SERVER['PHP_SELF'] .'">Tente de novo</a>';

    echo '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Nome:  <input type="text" name="personal[name]" /><br />
    Email: <input type="text" name="personal[email]" /><br />
    Cerveja: <br />
    <select multiple name="beer[]">
        <option value="antartica">Antartica</option>
        <option value="brahma">Brahma</option>
        <option value="skol">Skol</option>
    </select><br />
    <input type="hidden" name="action" value="submitted" />
    <input type="submit" name="submit" value="Enviar dados!" />
</form>
<?php
}
?>

No PHP 3, os arrays variáveis de formulários eram limitados a uma dimensão. No PHP 4, essa restrição não existe mais.

Nomes de variáveis SUBMIT IMAGE

Quando submetendo um formulário, é possível de se utilizar imagens ao invés do botão de submit padrão com uma tag do tipo:

<input type="image" src="image.gif" name="sub" />

Quando o usuário clica em algum lugar da imagem, o formulário que o acompanha é transmitido para o servidor com duas variáveis adicionais, sub_x e sub_y. Eles contém a coordenadas do clique do usuário na imagem. Os mais experientes percebem que os atuais nomes dessas variáveis enviados pelo browser contém um ponto ao invés de um sublinhado, mas o PHP converte o ponto para um sublinhado automaticamente.

Cookies HTTP

O PHP suporta transparentemente cookies HTTP como os definidos pela especificação da Netscape. Cookies são um mecanismo de armazenamento de dados no browser cliente e permite o rastreamento ou identificação do retorno de usuários. Você pode criar cookies com a função setcookie(). Cookies são parte do header HTTP, então, a função setcookie() precisa ser chamada antes de qualquer saída ser enviada ao browser. Esta é a mesma restrição da função header(). Dados de cookies são disponíveis nos arrays de dados de cookies apropriados, como $_COOKIE, $HTTP_COOKIE_VARS como também em $_REQUEST. Veja o manual de setcookie() para mais detalhes e exemplos.

Se você deseja assimilar vários valores para uma única variável cookie, você pode fazer dele um array:

<?php
  setcookie("MeuCookie[foo]", "Testando 1", time()+3600);
  setcookie("MeuCookie[bar]", "Testando 2", time()+3600);
?>

Isso irá criar dois cookies separados enquanto MeuCookie será um único array em seu script. Se você quiser colocar em apenas um cookie vários valores, considere utilizar serialize() ou explode() nos valores primeiro.

Note que um cookie substituirá um anterior com o mesmo nome em seu browser mesmo se o nome ou o caminho for diferente. Então, para uma aplicação de carrinho de compras em que você quer ter um contador e repassá-lo:

Exemplo 7-11. Exemplo setcookie()

<?php
if (isset($_COOKIE['count'])) {
    $count = $_COOKIE['count'] + 1;
} else {
    $count = 1;
}
setcookie("count", $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

Pontos em nomes de variáveis postadas

Normalmente o PHP não altera o nome de variáveis quando elas são passadas para o script. Entretanto, é necessário notar que o ponto (ponto final) não é um caracter válido no nomes de variáveis do PHP. Para ilustrar, veja o seguinte exemplo:
<?php
$varname.ext;  /* nome de variável inválido */
?>
Dessa forma, o interpretador entende isso como uma variável nomeada $varname, seguida do operador de concatenação de strings, seguida de um identificador (uma string não delimitada que não bate com nenhuma palavra chave ou reservada) 'ext'. Obviamente, isso não tem os resultados pretendidos.

Nessa situação, é importante saber que o PHP automaticamente substituirá qualquer ponto nos nomes de variáveis recebidas com sublinhados.

Determinando o tipo das variáveis

Porque o PHP determina os tipos de variáveis e faz conversões (geralmente) quando necessárias, nem sempre é óbvio o tipo de uma variável tem em todos os momentos. O PHP incluí várias funções que permitem determinar qual o tipo de uma variável, por exemplo: gettype(), is_array(), is_float(), is_int(), is_object(), e is_string(). Veja também o capítulo Tipos.

Anterior | Principal | Próxima
Variáveis variáveis | Acima | Constantes


Constantes

Manual do PHP
Anterior Próxima

Capítulo 8. Constantes

Índice
Sintaxe
Constantes Predefinidas

Uma constante é um identificador (nome) para um único valor. Como o nome sugere, esse valor não pode mudar durante a execução do script (exceção às constantes mágicas, que não são constantes de verdade). As constantes são sensíveis ao caso por padrão. Por convenção, o nomes de constantes são sempre em maiúsculas.

O nome de uma constante tem as mesmas regras de qualquer identificador no PHP. Um nome de constante válida começa com uma letra ou sublinhado, seguido por qualquer número de letras, números ou sublinhados. Em expressões regulares, ela pode ser representada por: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Nota: Para nossos exemplos, as letras a-z, A-Z e os caracteres ASCII do 127 ao 255 (0x7f-0xff).

Como as superglobals, o escopo de uma constante é global. Você pode acessar constantes de qualquer lugar em seu script sem se preocupar com o escopo. Para mais informações sobre o escopo no PHP, leia a seção do manual escopo de variáveis.

Sintaxe

Você pode definir uma constante utilizando-se da função define(). Quando uma constante é definida, ela não pode ser mais modificada ou anulada.

Somente dados escalares (boolean, integer, float e string) pode ser colocados em constantes.

Você pode obter o valor de uma constante simplesmente especificando seu nome. Diferentemente de variáveis, você não pode prefixar uma constante com um sinal de $. Você também pode utilizar a função constant() para ler o valor de uma constante, se você precisar obter seu valor dinamicamente. Utilize get_defined_constants() para obter a lista de todas as constantes definidas.

Nota: As constantes e variáveis (globais) estão em espaços de nomes diferentes. Isto implica, por exemplo, que TRUE e $TRUE são geralmente diferentes.

Se você usar uma constante indefinida, o PHP assume o nome da constante como seu próprio valor, como se você tivesse uma string (CONSTANT vs "CONSTANT"). Um erro de nível E_NOTICE será lançado quando isso acontecer. Veja também a referência do manual sobre como $foo[bar] é errado (a não ser que você primeiro define() bar como uma constante). Se você simplesmente quer checar se uma constante foi definida, utilize a função defined().

Estas são as diferenças entre constantes e variáveis:

  • Constantes não podem ter um sinal de cifrão ($) antes delas;

  • Constantes só podem ser definidas utilizando a função define(), e não por simples assimilação;

  • Constantes podem ser definidas e acessadas de qualquer lugar sem que a regras de escopo de variáveis seja aplicadas;

  • Constantes não podem ser redefinidas ou eliminadas depois que elas são criadas; e

  • Constantes só podem conter valores escalares.

Exemplo 8-1. Definindo Constantes

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // imprime "Hello world."
echo Constant; // imprime "Constant" e gera um alerta notice.
?>

Anterior | Principal | Próxima
Variáveis externas ao PHP | Acima | Constantes Predefinidas


Constantes Predefinidas

O PHP fornece um grande número de constantes predefinidas para qualquer script que ele execute. A maioria dessas constantes, entretanto, são criadas por várias extensões, e somente estarão presentes quando essas extensões estiverem disponíveis, por carregamento dinâmico ou por compilação direta.

Essas são as cinco constantes "mágicas", que mudam dependendo de onde elas são utilizadas. Por exemplo, o valor de __LINE__ depende do número da linha em que é utilizada em seu script. Essas constantes especiais são insensíveis ao caso:

Tabela 8-1. Algumas constantes "mágicas" do PHP

Nome | Descrição
__LINE__ | A linha atual do script.
__FILE__ | O caminho completo e nome do arquivo.
__FUNCTION__ | O nome da função (Acrescentado no PHP 4.3.0)
__CLASS__ | O nome da classe (Acrescentado no PHP 4.3.0)
__METHOD__ | O nome do método de classe. (Acrescentado no PHP 5.0.0)

A lista de constantes predefinidas está disponível na seção Constantes Predefinidas.

Anterior | Principal | Próxima
Constantes | Acima | Expressões


Expressões

Manual do PHP
Anterior Próxima

Capítulo 9. Expressões

Expressões são as peças de construção mais importantes do PHP. No PHP, quase tudo o que você escreve são expressões. A maneira mais simples e ainda mais precisa de definir uma expressão é "tudo o que tem um valor".

As formas mais básicas de expressões são constantes e variáveis. Quando você digita "$a = 5", você está atribuindo '5' para $a. '5', obviamente, tem o valor 5, ou, em outras palavras, '5' é uma expressão com o valor 5 (neste caso, '5' é uma constante inteira).

Depois desta atribuição, você pode esperar que o valor de $a seja 5 também, assim se você escrever $b = $a, você pode esperar que $b se comporte da mesma forma que se você escrevesse $b = 5. Em outras palavras, $a é uma expressão com valor 5 também. Se tudo funcionou bem, isto é exatamente o que acontecerá.

Exemplos ligeiramente mais complexos para expressões são as funções. Por exemplo, considere a seguinte função:

<?php
function foo ()
{
    return 5;
}
?>

Assumindo que você está familiarizado com o conceito de funções (se não estiver, dê uma olhada no capítulo sobre functions), você pode assumir que digitar $c = foo() é essencialmente a mesma coisa que escrever $c = 5, e você está certo. Funções são expressões com o valor igual ao seu valor de retorno. Como foo() retorna 5, o valor da expressão 'foo()' é 5. Geralmente, as funções não retornam apenas um valor estático, mas computam algo.

Obviamente, os valores em PHP não têm que ser inteiros, e muito freqüentemente eles não são. O PHP suporta três tipos de valores escalares: valores inteiros, valores de ponto flutuante e valores de string (valores escalares são valores que você não pode quebrar em pedaços menores, diferente de matrizes, por exemplo). O PHP também suporta dois tipos compostos (não-escalares): matrizes e objetos. Cada um destes tipos de valor podem ser atribuídos a variáveis ou retornadas de funções.

Até agora, os usuários de PHP/FI 2 não sentiriam qualquer mudança. Porém, o PHP traz expressões bem mais novas, da mesma forma que muitas outras linguagens. O PHP é uma linguagem orientada a expressões, no sentido de que quase tudo são expressões. Considere o exemplo com o qual já lidamos, '$a = 5'. É fácil ver que há dois valores envolvidos aqui, o valor da constante inteira '5', e o valor de $a que está sendo atualizado para 5 também. Mas a verdade é que há um valor adicional envolvido aqui, e que é o próprio valor da atribuição. A própria atribuição é avaliada com o valor atribuído, neste caso 5. Na prática, significa que '$a = 5', independente do que faça, é uma expressão com o valor 5. Portanto, escrever algo como '$b = ($a = 5)' é como escrever '$a = 5; $b = 5;' (um ponto-e-vírgula marca o fim do comando). Como atribuições são analisadas da direita para a esquerda, você também pode escrever '$b = $a = 5'.

Outro bom exemplo de orientação de expressão é o pré e o pós-incremento e decremento. Usuários de PHP/FI 2 e muitas outras linguagens podem estar familiarizados com a notação de variável++ e variável--. Estes são os operadores de incremento e decremento. No PHP/FI 2, o comando '$a++' não tem valor (não é uma expressão), e portanto você não pode atribuir desta forma ou usá-la de jeito nenhum. O PHP evoluiu a capacidade de incremento/decremento criando estas expressões também, como em C. Em PHP, como em C, há dois tipos de incremento - pré-incremento e pós-incremento. Tanto o pré-incremento quanto o pós-incremento, essencialmente, incrementam as variáveis, e o efeito sobre a variável é idêntico. A diferença é com o valor da expressão de incremento. O pré-incremento, que é escrito '++$variavel', é avaliado como o valor de incremento (o PHP incrementa a variável antes de ler seu valor, por isso o nome pré-incremento). O pós-incremento, que é escrito '$variavel++' é avaliado como o valor original da variável, antes de ser incrementada (o PHP incrementa a variável depois de ler seu valor, por isso o nome 'pós-incremento').

Um tipo muito comum de expressão são expressões de comparação. Estas expressões são avaliadas como 0 ou 1, significando FALSE ou TRUE, respectivamente. O PHP suporta > (maior que), >= (maior ou igual), == (igual), != (diferente), < (menor que) e <= (menor ou igual). A linguagem também suporta um conjunto estrito de operadores de equivalência: === (igual e do mesmo tipo) e !== (diferente ou não do mesmo tipo).Estas expressões são usadas mais freqüentemente dentro de instruções condicionais, como em comandos if.

O último exemplo de expressões com que nós vamos lidar aqui são as expressões combinadas operador-atribuição. Você já sabe que se você quer incrementar $a de 1, você só precisa escrever '$a++' ou '++$a'. Mas e se você quiser somar mais que um a ele, por exemplo 3? Você poderia escrever '$a++' várias vezes, mas esta obviamente não é uma forma muito eficiente ou confortável. Uma prática muito mais comum é escrever '$a = $a + 3'. '$a + 3' é avaliada como o valor de $a mais 3, e é atribuído de volta a $a, que resulta em incrementar $a de 3. Em PHP, como em várias outras linguagens como o C, você pode escrever isto de uma forma mais curta, que com o tempo se torna mais limpa e rápida de se entender também. Somar 3 ao valor corrente de $a pode ser escrito '$a +=3'. Isto significa exatamente "pegue o valor de $a, some 3 a ele, e atribua-o de volta a $a." Além de ser mais curto e mais limpo, isto também resulta em execução mais rápida. O valor de '$a += 3', como o valor de uma atribuição regular, é o valor atribuído. Note que NÃO é 3, mas o valor combinado de $a mais 3 (este é o valor que é atribuído a $a). Qualquer operador de dois parâmetros pode ser usado neste modo operador-atribuição, por exemplo '$a -= 5' (subtrai 5 do valor de $a), '$ b *= 7' (multiplica o valor de $b por 7), etc.

Há mais uma expressão que podem parecer estranha se você não a viu em outras linguagens, o operador condicional ternário:

<?php
$primeira ? $segunda : $terceira
?>

Se o valor da primeira sub-expressão é verdadeiro (TRUE, não-zero), então a segunda sub-expressão é avaliada, e este é o resultado da expressão condicional. Caso contrário, a terceira sub-expressão é avaliada e este é o valor.

O seguinte exemplo deve ajudá-lo a entender um pouco melhor pré e pós-incremento e expressões em geral:

<?php
function double($i)
{
    return $i*2;
}
$b = $a = 5;        /* atribui o valor cinco às variáveis $a e $b */
$c = $a++;          /* pós-incremento, atribui o valor original de $a
                       (5) para $c */
$e = $d = ++$b;     /* pré-incremento, atribui o valor incrementado de
                       $b (6) a $d e $e */

/* neste ponto, tanto $d quanto $e são iguais a 6 */

$f = double($d++);  /* atribui o dobro do valor de $d antes
                       do incremento, 2*6 = 12 a $f */
$g = double(++$e);  /* atribui o dobro do valor de $e depois
                       do incremento, 2*7 = 14 a $g */
$h = $g += 10;      /* primeiro, $g é incrementado de 10 e termina com o
                       valor 24. o valor da atribuição (24) é
                       então atribuído a $h, e $h termina com o valor
                       24 também. */
?>

Algumas expressões podem ser consideradas instruções. Neste caso, uma instrução na forma 'expr' ';' ou seja, uma expressão seguida de um ponto e vírgula. Em '$b=$a=5;', $a=5 é uma expressão válida, mas não é um comando por si só. '$b=$a=5;' porém é um comando válido.

Uma última coisa que vale mencionar é o valor-verdade de expressões. Em muitos eventos, principalmente em instruções condicionais e loops, você não está interessado no valor específico da expressão, mas somente se ela significa TRUE ou FALSE (o PHP não tem um tipo booleano dedicado). As constantes TRUE e FALSE (insensitivas ao caso) são seus dois valores booleanos possíveis. As vezes uma expressão é automaticamente convertida para um booleano. Veja a seção sobre type-casting para detalhes de como isso é feito.

O PHP fornece uma implementação completa e poderosa de expressões, e a completa documentação dela vai além do escopo deste manual. Os exemplos acima devem dar a você uma boa idéia sobre o que são as expressões e como você pode construir expressões úteis. Através do restante do manual nós escreveremos expr ou expressao para indicar qualquer expressão PHP válida.

Anterior | Principal | Próxima
Constantes Predefinidas | Acima | Operadores


Operadores

Manual do PHP
Anterior Próxima

Capítulo 10. Operadores

Índice
Precedência de Operadores
Operadores Aritméticos
Operadores de Atribuição
Operador Bit-a-bit
Operadores de Comparação
Operadores de controle de erro
Operadores de Execução
Operadores de Incremento/Decremento
Operadores Lógicos
Operadores de String
Operadores de Arrays

Um operador é algo que você alimenta com um ou mais valores (ou expressões, no jargão de programação) e que devolve outro valor (e por isso os próprios construtores se tormam expressões). Assim, você pode pensar que as funções e os construtores que retornam valores (como o print) são operadores e os outros que não retornam nada (como echo) como uma outra coisa.

Há três tipos de operadores. Primeiramente, os operadores unários, que operam em apenas um valor. Por exemplo, ! (operador de negação) ou o ++ (operador de incremento). No segundo grupo estão os operadores binários, o o grupo que contém a maioria dos operadores que o PHP suporta, com uma lista completa logo abaixo na seção Precedência de operadores.

O terceiro grupo é do operador ternário: ?:. Ele pode ser usado para selecionar entre dois valores dependendo de uma terceira, em vez de selecionar duas sentenças ou encadeamentos de execução. Englobar expressões ternárias com parênteses é uma boa idéia.

Precedência de Operadores

A precedência de um operador especifica quem tem mais prioridade quando há duas delas juntas. Por exemplo, na expressão, 1 + 5 * 3, a resposta é 16 e não 18 porque o operador de multiplicação ("*") tem prioridade de precedência que o operador de adição ("+"). Parênteses podem ser utilizados para forçar a precedência, se necessário. Assim, (1 + 5) * 3 é avaliado como 18.

A tabela seguinte mostra a precedência dos operadores, da maior precedência para a menor.

Tabela 10-1. Precedência dos operadores

Associação | Operador
não associativo | new
direita | [
direita | ! ~ ++ -- (int) (float) (string) (array) (object) @
esquerda | * / %
esquerda | + - .
esquerda | << >>
não associativo | < <= > >=
não associativo | == != === !==
esquerda | &
esquerda | ^
esquerda | |
esquerda | &&
esquerda | ||
esquerda | ? :
direita | = += -= *= /= .= %= &= |= ^= <<= >>=
direita | print
esquerda | and
esquerda | xor
esquerda | or
esquerda | ,

Nota: Mesmo tendo ! maior precedência que =, o PHP ainda permitirá expressões similares à seguinte: if (!$a = foo()), que no caso terá como resultado que foo() é recebido em $a.

Anterior | Principal | Próxima
Expressões | Acima | Operadores Aritméticos


Operadores Aritméticos

Lembra-se da aritmética básica da escola? Estes operadores funcionam exatamente como aqueles.

Tabela 10-2. Operadores Aritméticos

Exemplo | Nome | Resultado
$a + $b | Adição | Soma de $a e $b.
$a - $b | Subtração | Diferença entre $a e $b.
$a * $b | Multiplicação | Produto de $a e $b.
$a / $b | Divisão | Quociente de $a por $b.
$a % $b | Módulo | Resto de $a dividido por $b.

O operador de divisão ("/") sempre retorna um valor com ponto flutuante, mesmo que os dois operandos sejam inteiros (ou strings convetidos para inteiros).

Veja também a página do manual funções matemáticas.

Anterior | Principal | Próxima
Operadores | Acima | Operadores de Atribuição


Operadores de Atribuição

O operador básico de atribuição é "=". A sua primeira inclinação deve ser a de pensar nisto como "é igual". Não. Isto quer dizer, na verdade, que o operando da esquerda recebe o valor da expressão da direita (ou seja, "é configurado para").

O valor de uma expressão de atribuição é o valor atribuído. Ou seja, o valor de "$a = 3" é 3. Isto permite que você faça alguns truques:

<?php

$a = ($b = 4) + 5; // $a é igual a 9 agora e $b foi configurado como 4.

?>

Além do operador básico de atribuição, há "operadores combinados" para todos os operadores aritméticos e de string, que permitem a você pegar um valor de uma expressão e então usar seu próprio valor para o resultado daquela expressão. Por exemplo:

<?php

$a = 3;
$a += 5; // configura $a para 8, como se disséssemos: $a = $a + 5;
$b = "Bom ";
$b .= "Dia!"; // configura $b para "Bom Dia!", como em $b = $b . "Dia!";

?>

Note que a atribuição copia a variável original para a nova (atribuição por valor), assim a mudança de uma não afeta a outra. Isto pode ter relevância se você precisa copiar algo como uma grande matriz dentro de um loop longo. O PHP 4 suporta atribuições por referência, usando a sintaxe $var = &$outra_var;, mas isto não é possível no PHP3. 'Atribuição por referência' significa que ambas as variáveis acabam apontando para os mesmos dados, e nada é copiado para lugar nenhum. Para aprender mais sobre referências, leia Referências explicadas.

Anterior | Principal | Próxima
Operadores Aritméticos | Acima | Operador Bit-a-bit


Operador Bit-a-bit

Operadores bit-a-bit permitem que você acione ou desligue bits específicos dentro de um inteiro. Se ambos os parâmetros da esquerda e da direita forem strings, esses operadores irão trabalhar nos caracteres dessa string.

<?php
echo 12 ^ 9; // Imprime '5'

echo "12" ^ "9"; // Imprime o caracter de volta (backspace - ASCII 8)
                 // ('1' (ASCII 49)) ^ ('9' (ASCII 57)) = #8

echo "hallo" ^ "hello"; // Imprime os valores ASCII #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4
?>

Tabela 10-3. Operadores Bit-a-bit

Exemplo | Nome | Resultado
$a & $b | E | Os bits que estão ativos tanto em $a quanto em $b são ativados.
$a | $b | OU | Os bits que estão ativos em $a ou em $b são ativados.
$a ^ $b | XOR | Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados.
~ $a | NÃO | Os bits que estão ativos em $a não são ativados, e vice-versa.
$a << $b | Deslocamento à esquerda | Desloca os bits de $a $b passos para a esquerda (cada passo significa "multiplica por dois")
$a >> $b | Deslocamento à direita | Desloca os bits de $a $b passos para a direita (cada passo significa "divide por dois")

Anterior | Principal | Próxima
Operadores de Atribuição | Acima | Operadores de Comparação


Operadores de Comparação

Operadores de comparação, como os seus nomes implicam, permitem que você compare dois valores. Você pode se interessar em ver as tabelas de comparação de tipos, que tem exemplo das várias comparações entre tipos relacionadas.

Tabela 10-4. Operadores de comparação

Exemplo | Nome | Resultado
$a == $b | Igual | Verdadeiro (TRUE) se $a é igual a $b.
$a === $b | Idêntico | Verdadeiro (TRUE) se $a é igual a $b, e eles são do mesmo tipo (somente para PHP4).
$a != $b | Diferente | Verdadeiro se $a não é igual a $b.
$a <> $b | Diferente | Verdadeiro se $a não é igual a $b.
$a !== $b | Não idêntico | Verdadeiro de $a não é igual a $b, ou eles não são do mesmo tipo (somente para o PHP4).
$a < $b | Menor que | Verdadeiro se $a é estritamente menor que $b.
$a > $b | Maior que | Verdadeiro se $a é estritamente maior que $b.
$a <= $b | Menor ou igual | Verdadeiro se $a é menor ou igual a $b.
$a >= $b | Maior ou igual | Verdadeiro se $a é maior ou igual a $b.

Outro operador condicional é o operador "?:" (ou trinário), que opera como no C e em muitas outras linguagens.

<?php
// Exemplo de uso do operador trinário
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// A instrucao assima eh identica a seguinte instrucao if/else
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}
?>

A expressão (expr1) ? (expr2) : (expr3) é avaliada para expr2 se expr1 é avaliada como TRUE, ou expr3 se expr1 é avaliada como FALSE.

Veja também strcasecmp(), strcmp(), operadores de array, e a seção do manual sobre Tipos.

Anterior | Principal | Próxima
Operador Bit-a-bit | Acima | Operadores de controle de erro


Operadores de controle de erro

O PHP suporta um operador de controle de erro: o sinal 'arroba' (@). Quando ele precede uma expressão em PHP, qualquer mensagem de erro que possa ser gerada por aquela expressão será ignorada.

Se o recurso track_errors estiver habilitado, qualquer mensagem de erro gerada pela expressão será gravada na variável global $php_errormsg. Esta variável será sobrescrita em cada erro, assim verifique-a constantemente se você quiser usá-la.

<?php
/* Erro de arquivo intencional */
$my_file = @file ('arquivo_nao_existente') ou
    die ("Falha abrindo arquivo: '$php_errormsg'");

// Isto funciona para qualquer expressão, não apenas para funções:
$value = @$cache[$key];
// você não receberá nenhum aviso se a chave $key não existir.

?>

Nota: O operador @ funciona somente em expressões. Uma regra simples para lembrar disso: se você pode pegar o valor de alguma coisa, você pode prefixar isso com o @. Assim, você pode prefixar chamadas de variáveis, funções e include()s, constantes e afins. Você não pode prefixar definições de funções ou classe, estruturas condicionais como o if, foreach e assim por diante.

Veja também error_reporting() e a seção do manual sobre funções de Manipulação de Erros e Logging.

Nota: O prefixo de controle de erro "@" não desabilita mensagens que são resultado de erros de interpretação (parse errors).

Atenção

Atualmente, o operador de controle de erro "@" sempre desativa mensagens de erro, mesmo para erros críticos, que terminam a execução de scripts. Além de outras coisas, isto significa que se você usar "@" para suprimir erros de certas funções e elas não estiverem disponíveis ou com tipos incorretos, o script vai parar exatamente aí sem nenhuma indicação da razão.

Anterior | Principal | Próxima
Operadores de Comparação | Acima | Operadores de Execução


Operadores de Execução

O PHP suporta um operador de execução: acentos graves (``). Note que não são apóstrofes! O PHP tentará executar o conteúdo dos acentos graves como um comando do shell; a saída será retornada (isto é, ela não será simplesmente descarregada para a saída; ela pode ser atribuída a uma variável). A utilização do operador contra-apóstrofo é idêntica a função shell_exec().

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Nota: O operador de execução fica desabilitado quando safe mode está ativo ou shell_exec() está desabilitado.

Veja também a seção do manual sobre funções de execução de programas, popen() proc_open() e Utilizando o PHP em linha de comando.

Anterior | Principal | Próxima
Operadores de controle de erro | Acima | Operadores de Incremento/Decremento


Operadores de Incremento/Decremento

O PHP suporta operadores de pré e pós-incremento e decremento no estilo C.

Tabela 10-5. Operadores de Incremento/Decremento

Exemplo | Nome | Efeito
++$a | Pré-incremento | Incrementa $a em um, e então retorna $a.
$a++ | Pós-incremento | Retorna $a, e então incrementa $a em um.
--$a | Pré-decremento | Decrementa $a em um, e então retorna $a.
$a-- | Pós-decremento | Retorna $a, e então decrementa $a em um.

Aqui está um script de exemplo simples:

<?php
echo "<h3>Pós-incremento</h3>";
$a = 5;
echo "Deve ser 5: " . $a++ . "<br />\n";
echo "Deve ser 6: " . $a . "<br />\n";

echo "<h3>Pré-incremento</h3>";
$a = 5;
echo "Deve ser 6: " . ++$a . "<br />\n";
echo "Deve ser 6: " . $a . "<br />\n";

echo "<h3>Pós-decremento</h3>";
$a = 5;
echo "Deve ser 5: " . $a-- . "<br />\n";
echo "Deve ser 4: " . $a . "<br />\n";

echo "<h3>Pré-decremento</h3>";
$a = 5;
echo "Deve ser 4: " . --$a . "<br />\n";
echo "Deve ser 4: " . $a . "<br />\n";
?>

O PHP segue a convenção Perl quando tratando operações aritmétricas em variavéis caracter em vez da convenção C. Por exemplo, em Perl 'Z'+1 se torna 'AA', enquanto que no C 'Z'+1 se torna '[' ( ord('Z') == 90, ord('[') == 91 ). Note que variáveis caracter podem ser incrementadas mas não decrementadas.

Exemplo 10-1. Operações aritmétricas em variáveis caracter

<?php
$i = 'W';
for($n=0; $n<6; $n++)
  echo ++$i . "\n";

/*
  Produz uma saida similar a seguinte:

X
Y
Z
AA
AB
AC

*/
?>

Anterior | Principal | Próxima
Operadores de Execução | Acima | Operadores Lógicos


Operadores Lógicos

Tabela 10-6. Operadores Lógicos

Exemplo | Nome | Resultado
$a and $b | E | Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros.
$a or $b | OU | Verdadeiro se $a ou $b são verdadeiros.
$a xor $b | XOR | Verdadeiro se $a ou $b são verdadeiros, mas não ambos.
! $a | NÃO | Verdadeiro se $a não é verdadeiro.
$a && $b | E | Verdadeiro se tanto $a quanto $b são verdadeiros.
$a || $b | OU | Verdadeiro se $a ou $b são verdadeiros.

A razão para as duas variantes dos operandos "and" e "or" é que eles operam com precedências diferentes. (Veja Precedência de Operadores.)

Anterior | Principal | Próxima
Operadores de Incremento/Decremento | Acima | Operadores de String


Operadores de String

Há dois operadores de string. O primeiro é o operador de concatenação ('.'), que retorna a concatenação dos seus argumentos direito e esquerdo. O segundo é o operador de atribuição de concatenação ('.='), que acrescenta o argumento do lado direito no argumento do lado esquerdo. Veja em Operadores de Atribuição para mais informações.

<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"

$a = "Olá ";
$a .= "mundo!";     // agora $a contém "Olá mundo!"
?>

Veja também as seções do manual sobre o tipo String e as funções de manipulação de Strings.

Anterior | Principal | Próxima
Operadores Lógicos | Acima | Operadores de Arrays


Operadores de Arrays

Tabela 10-7. Operadores de array

Exemplo | Nome | Resultado
$a + $b | União | União de $a e $b.
$a == $b | Igualdade | TRUE se $a e $b tem os mesmos elementos.
$a === $b | Identidade | TRUE se $a e $b tem os mesmos elementos na mesma ordem.
$a != $b | Desigualdade | TRUE se $a não é igual a $b.
$a <> $b | Desigualdade | TRUE se $a não é igual a $b.
$a !== $b | Não identidade | TRUE se $a não é identico a $b.

O operador + acrescenta o array da direita no array da esquerda, contudo, chaves duplicadas NÃO são sobrescritas.

<?php
$a = array("a" => "maçã", "b" => "banana");
$b = array("a" =>"pêra", "b" => "framboesa", "c" => "morango");

$c = $a + $b; // Uniao de $a e $b
echo "União de \$a e \$b: \n";
var_dump($c);

$c = $b + $a; // União de $b e $a
echo "União de \$b e \$a: \n";
var_dump($c);
?>

Quando executado, o script produz uma saída assim:
União de $a e $b:
array(3) {
  ["a"]=>
  string(5) "maçã"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "morango"
}
União de $b e $a:
array(3) {
  ["a"]=>
  string(4) "pêra"
  ["b"]=>
  string(10) "framboesa"
  ["c"]=>
  string(6) "morango"
}

Elementos do array são iguais para efeitos de comparação se eles possuem o mesmo valor e chave.

Exemplo 10-2. Comparando arrays

<?php
$a = array("maçã", "banana");
$b = array(1 => "banana", "0" => "maçã");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Veja também as seções do manual sobre o tipo Array e funções de manipulação de Arrays.

Anterior | Principal | Próxima
Operadores de String | Acima | Estruturas de Controle


Estruturas de Controle

Manual do PHP
Anterior Próxima

Capítulo 11. Estruturas de Controle

Índice
if
else
elseif
Sintaxe alternativa para estruturas de controle
while
do..while
for
foreach
break
continue
switch
declare
return
require()
include()
require_once()
include_once()

Qualquer script PHP é construído por uma série de instruções. Uma instrução pode ser uma atribuição, uma chamada de função, um 'loop', uma instrução condicional, ou mesmo uma instrução que não faz nada(um comando vazio). Instruções geralmente terminam com um ponto e vírgula. Além disso, as instruções podem ser agrupados em um grupo de comandos através do encapsulamento de um grupo de comandos com chaves. Um grupo de comandos é uma instrução também. Os vários tipos de instruções são descritos neste capítulo.

if

A construção if é uma das mais importantes implementações de muitas linguagens, incluindo o PHP. Ela permite a execução condicional de fragmentos de código. O PHP implementa uma estrutura if que é similar àquela do C:

if (expressao)
    instrucoes

Como descrita na seção sobre expressões , expressao é avaliado por seu contexto Booleano. Se expressao for avaliado como TRUE, o PHP executará instrucoes, e se for avaliado como FALSE, ele será ignorado. Maiores informações sobre a avaliação para FALSE podem ser encontradas na seção Convertendo para Booleanos .

Os exemplos a seguir mostrariam que a é maior que b se $a for maior que $b:

<?php
if ($a > $b)
    echo "a é maior que b";
?>

Freqüentemente você vai querer ter mais que uma instrução seja executado condicionalmente. E é claro, não há necessidade de englobar cada instrução com uma cláusula if. Em vez disso, você pode colocar várias instruções em um agrupamento de comandos. Por exemplo, este código mostraria a é maior que b se $a for maior que $b, e então atribuiria o valor de $a para $b:

<?php
if ($a > $b) {
    echo "a é maior que b";
    $b = $a;
}
?>

Comandos if podem ser aninhados indefinidamente dentro de outros comandos if, o que faz com que você complete a flexibilidade para a execução condicional de várias partes do seu programa.

Anterior | Principal | Próxima
Operadores de Arrays | Acima | else


Sintaxe alternativa para estruturas de controle

O PHP oferece uma sintaxe alternativa para algumas das suas estruturas de controle: if, while, for, foreach e switch. Em cada caso, a forma básica da sintaxe alternativa é mudar o sinal de abertura para dois-pontos (:) e o sinal de fechamento para endif;, endwhile;, endfor;, endforeach; ou endswitch;, respectivamente.

<?php if ($a == 5): ?>
A é igual a 5
<?php endif; ?>

No exemplo acima, o bloco HTML "A é igual a 5" está aninhado dentro de uma instrução if escrito na sintaxe alternativa. O bloco HTML será mostrado somente se $a é igual a 5.

A sintaxe alternativa se aplica a else e elseif também. A seguir temos uma estrutura if com elseif e else no formato alternativo:

<?php
if ($a == 5):
    echo "a igual a 5";
    echo "...";
elseif ($a == 6):
    echo "a igual a 6";
    echo "!!!";
else:
    echo "a não é nem 5 nem 6";
endif;
?>

Veja também: while, for e if para mais exemplos.

Anterior | Principal | Próxima
elseif | Acima | while


return

Se chamada em uma função, a instrução return() termina imediatamente a execução da função atual e retorna seu argumento como o valor da função. return() também termina a execução de uma instrução eval() ou de um script.

Se chamada no escopo global, a execução do script atual será terminada. Se o arquivo do script atual foi incluído com include() ou require(), então a execução é devolvida para o arquivo chamador. Especificamente para arquivos de script incluídos com include(), o valor fornecido para return() será devolvido como o valor da chamada include(). Se return() for chamado do arquivo de script principal, então o programa pára. Se o arquivo de script atual é o configurado em auto_prepend_file ou auto_append_file do php.ini, então a execução desses scripts é finalizada.

Para maiores informações, veja Retornando Valores.

Nota: Note que return() é um construtor de linguagem e não uma função, e parênteses em volta do seus argumentos somente são necessários se o argumento contém uma expressão. É comum não usá-los para retornar variáveis.

Anterior | Principal | Próxima
declare | Acima | require()


Funções

Manual do PHP
Anterior Próxima

Capítulo 12. Funções

Índice
Funções definidas pelo usuário
Argumentos de funções
Retornando valores
Funções variáveis
Funções internas (built-in)

Funções definidas pelo usuário

Uma função pode ser definida usando-se a sintaxe como a seguinte:

Exemplo 12-1. Psuedo-código que de demonstração de uma função

<?php
function foo ($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Exemplo de função.\n";
    return $valor_retornado;
}
?>

Qualquer código PHP válido pode aparecer dentro de uma função, mesmo outras funções e definições de classes.

No PHP 3, as funções precisam ser definidas antes de serem referenciadas. Esse requisito não existe no PHP 4. Exceto quando uma função é definida condicionalmente como mostrada nos dois exemplos abaixo:

Quando uma função é definida condicionalmente como nos dois exemplos abaixo, sua definição precusa ser processada antes de ser chamada.

Exemplo 12-2. Funções definidas condicionalmente

<?php

$makefoo = true;

/* Nos nao podemos chamar foo() daqui
   porque ela ainda não existe,
   mas nos podemos chamar bar() */

bar();

if ($makefoo) {
  function foo ()
  {
    echo "Eu não existo até que o programa passe por aqui.\n";
  }
}

/* Agora nos podemos chamar foo()
   porque $makefoo foi avaliado como true */

if ($makefoo) foo();

function bar()
{
  echo "Eu existo imediatamente desde o programa começar.\n";
}

?>

Exemplo 12-3. Funções dentro de funções

<?php
function foo()
{
  function bar()
  {
    echo "Eu não existo até foo() ser chamada.\n";
  }
}

/* Nós não podemos chamar bar() ainda
   porque ela ainda não foi definida. */

foo();

/* Agora nós podemos chamar bar(),
   porque o processamento de foo()
   tornou a primeira acessivel */

bar();

?>

O PHP não suporta sobrecarga de funções, e também não é possível cancelar ou alterar a definição de funções previamente declaradas.

Nota: Nomes de funções são insensíveis ao caso, mas é melhor chamar as funções da mesma forma que ela aparecem nas declarações.

O PHP3 não suporta número variável de argumentos para funções, apesar de os argumentos padrões serem suportados (veja Valores padrão de argumentos para mais informações). O PHP4 suporta ambos: veja Número de argumentos variável e as referências das funções func_num_args(), func_get_arg() e func_get_args() para mais informações.

Anterior | Principal | Próxima
include_once() | Acima | Argumentos de funções


Argumentos de funções

Informações podem ser passadas para funções através da lista de argumentos, que é uma lista de variáveis e/ou constantes delimitados por vírgulas.

O PHP suporta a passagem de argumentos por valor (o padrão), passagem por referência e valores padrão de argumento. Listas de argumentos de comprimento variável são suportadas apenas no PHP4 e posterior; veja Número de argumentos variável e as referências das funções func_num_args(), func_get_arg() e func_get_args() para mais informações. Um efeito similar pode ser atingido no PHP 3 pela passagem de um array de argumentos para uma função:

Exemplo 12-4. Passando arrays para funções

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Fazendo argumentos serem passados por referência

Por padrão, argumentos de função são passados por valor (de forma que se você mudar o valor do parâmetro dentro da função, ele não é alterado fora da função). Se você deseja permitir que uma função modifique seus argumentos, você precisa passá-los por referência.

Se você quer que um argumento para uma função sempre seja passado por referência, você pode preceder o nome do argumento com um "e comercial" (&) na definição da função:

Exemplo 12-5. Passando parâmetros de função por referência

<?php
function add_some_extra(&$string)
{
    $string .= ' e alguma coisa mais.';
}
$str = 'Isto é uma string,';
add_some_extra($str);
echo $str;    // imprime 'Isto é uma string, e alguma coisa mais.'
?>

Valores padrão de argumentos

Uma função pode definir valores padrão no estilo C++ para argumentos escalares, como a seguir:

Exemplo 12-6. Utilizando parâmtros default em funções

<?php
function cafeteira ($tipo = "cappuccino")
{
    return "Fazendo uma xícara de café $type.\n";
}
echo cafeteira ();
echo cafeteira ("expresso");
?>

A saída do código acima será:

Fazendo uma xícara de café cappucino.
Fazendo uma xícara de café expresso.

O valor padrão precisa ser uma expressão constante, não (por exemplo) uma variável, um membro de classe ou uma chamada de função.

Note que usando argumentos padrão, qualquer padrão deve vir após os argumentos sem padrão: caso contrário, as coisas não funcionarão como esperado. Considere o seguinte trecho de código:

Exemplo 12-7. Uso incorreto de parâmetros de função default

<?php
function iogurtera ($tipo = "azeda", $sabor)
{
    return "Fazendo uma taça de $tipo $sabor.\n";
}

echo iogurtera ("framboesa");   // não funciona como esperado
?>

A saída do exemplo acima é:

Warning: Missing argument 2 in call to iogurtera() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Fazendo uma taça de framboesa.

Agora, compare o que está acima com este:

Exemplo 12-8. Uso correto de parâmetros de função default

<?php
function iogurtera ($sabor, $tipo = "azeda")
{
    return "Fazendo uma taça de $tipo $sabor.\n";
}

echo iogurtera ("framboesa");   // funciona
?>

A saída deste exemplo é:

Fazendo uma taça de framboesa azeda.

Número variável de argumentos

O PHP4 tem suporte para um número variável de argumentos
nas funções definidas pelo usuário. Isto é realmente bem fácil, usando
as funções func_num_args(),
func_get_arg() e
func_get_args().

Nenhuma sintaxe especial é requerida, e a lista de argumentos ainda pode ser fornecida explicitamente com as definições de funções e se comportarão normalmente.

Anterior | Principal | Próxima
Funções | Acima | Retornando valores


Retornando valores

Valores podem ser retornados utilizando a instrução opcional return. Qualquer tipo pode ser retornado, incluindo arrays e objetos. Isto faz com que as função termine sua execução imediatamente e passa o controle de volta para a linha de onde ela foi chamada. Veja a documentação da função return() para maiores informações.

Exemplo 12-9. O uso de return()

<?php
function quadrado ($num)
{
    return $num * $num;
}
echo quadrado (4);   // imprime '16'.
?>

Você não pode retornar múltiplos valores a partir de uma função, mas resultados similares podem ser devolvidos retornando por uma lista.

Exemplo 12-10. Retornando um array para devolver vários valores

<?php
function numeros_pequenos()
{
    return array (0, 1, 2);
}
list ($zero, $um, $dois) = numeros_pequenos();
?>

Para retornar uma referência de uma função, você precisa utilizar o operador de referência & tanto na declaração da função como quando assimilando o valor retornado para a variável.

Exemplo 12-11. Retornando uma referência de uma função

<?php
function &retorna_referencia()
{
    return $alguma_referencia;
}

$nova_referencia =& retorna_referencia();
?>

Para mais detalhes sobre referências, leia a seção Referências.

Anterior | Principal | Próxima
Argumentos de funções | Acima | Funções variáveis


Funções variáveis

O PHP suporta o conceito de funções variáveis. Isto significa que se um nome de variável tem parênteses no final dela, o PHP procurará uma função com o mesmo nome, qualquer que seja a avaliação da variável, e tentará executá-la. Entre outras coisas, isto pode ser usado para implementar callbacks, tabelas de função e assim por diante.

Funções variáveis não funcionam com construtores de linguagem como echo(), print(), unset(), isset(), empty(), include(), require() e outras assim. Você precisa antes construir uma função interceptadora (wrapper) para utilizar qualquer um desses construtores como funções convencionais.

Exemplo 12-12. Exemplo de funções variáveis

<?php
function foo() {
    echo "Chamou foo()<br>\n";
}

function bar($arg = '')
{
    echo "Chamou bar(); com argumento '$arg'.<br />\n";
}

// Essa eh uma funcao wrapper para echo()
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Chama foo()

$func = 'bar';
$func('test');  // Chama bar()

$func = 'echoit';
$func('test');  // Chama echoit()
?>

Você também pode chamar métodos de objetos utilizando o recurso de funções variáveis.

Exemplo 12-13. Exemplo de chama de método variável

<?php
class Foo
{
    function MetodoVariavel()
    {
        $name = 'Bar';
        $this->$name(); // Isto chama o método Bar()
    }

    function Bar()
    {
        echo "Bar foi chamada!";
    }
}

$foo = new Foo();
$funcname = "MetodoVariavel";
$foo->$funcname();  // Isto chama $foo->MetodoVariavel()

?>

Veja também call_user_func(), variáveis variáveis e function_exists().

Anterior | Principal | Próxima
Retornando valores | Acima | Funções internas (built-in)


Funções internas (built-in)

O PHP padrão vem com várias funções e construtores. Eles podem ser funções que dependem de extensões específicas do PHP compiladas, ou de outra forma você obterá erros fatais "undefined function". Por exemplo, para usar funções imagem como a imagecreatetruecolor(), você precisa que seu PHP seja compilado com suporte ao GD. Ou, para utilizar mysql_connect() você precisará ter seu PHP compilado com suporte ao MySQL. Há várias funções centrais que são incluídas em cada versão do PHP como funções de strings e variáveis. Uma chamada a phpinfo() ou get_loaded_extensions() mostrará que extensões estão carregadas em seu PHP. Note também que várias extensões são ativadas por padrão e que o manual do PHP está separado por extensões. Veja os capítulos configuração, instalação e os capítulos das extensões para maiores informações de como compilar seu PHP.

A leitura e entendimento de um protótipo de função é explicado na seção do manual entitulada como ler uma definição de função. É importante perceber o que a função retorna ou se a função trabalha diretamente no valor passado como argumento. Por exemplo, str_replace() irá retornar a string modificada enquanto usort() trabalha na própria variável passada no argumento. Cada página do manual também contém informações específicas de cada função, como: parâmetros da função, mudanças de comportamento, valores de retorno tanto para sucesso e erros, como outras informações disponíveis. O conhecimento destas diferenças importantes é crucial para escrever corretamente seu código PHP.

Veja também function_exists(), a referência de funções, get_extension_funcs() e dl().

Anterior | Principal | Próxima
Funções variáveis | Acima | Classes e Objetos


Classes e Objetos

Manual do PHP
Anterior Próxima

Capítulo 13. Classes e Objetos

Índice
class
extends
Construtores
::
parent
Serializando objetos - objetos em sessões
As funções mágicas __sleep e __wakeup
Referências dentro do construtor
Comparação de objetos no PHP 4
Comparação de objetos no PHP 5

class

Uma classe é uma coleção de variáveis e funções trabalhando com essas variáveis. Uma classe é definida usando-se a seguinte sintaxe:

<?php
class CarrinhoDeCompras {
    var $items;  // Itens do carrinho de compras

    // Acrescenta a quantidade $num do artigo $artnr no carrinho

    function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // Retira a quantidade $num de artigos $artnr do carrinho

    function remove_item($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } else {
            return false;
        }
    }
}
?>

Isto define uma classe chamada CarrinhoDeCompras que consiste de uma matriz associativa de artigos no carrinho e duas funções para acrescentar e remover itens deste carrinho.

Atenção

Você NÃO pode quebrar uma definição de classe em vários arquivos, ou vários blocos PHP. O exemplo seguinte não funciona:

<?php
class test {
?>
<?php
    function test() {
        print 'OK';
    }
}
?>

Os cuidados a seguir devem ser tomados a partir do PHP 4:

Cuidado

O nome stdClass é utilizado internamente pela Zend e é uma palavra reservada. Você não pode ter uma classe chamada stdClass no PHP.

Cuidado

O nome de função __sleep e __wakeup são especialmente mágicos para as classes PHP. Você não pode ter esses nomes em nenhuma de suas classes a não ser que você deseje aplicar essa funcionalidade mágica com elas. Veja abaixo para mais detalhes.

Cuidado

O PHP reserva todos os nomes de funções começando com __ como mágicas. É recomendável que você não utilize nome de funções começando com __ no PHP a não ser que você precise dessas funcionalidades mágicas.

No PHP 4, somente inicializações com constantes são permitidas para variáveis com var. Para inicializar variáveis com valores não constantes, você precisará de uma função de inicialização chamada automaticamente quando o objeto for construído a partir da classe. Por isso, essa função é conhecida como construtor (veja baixo).

<?php
class CarrinhoDeCompras {
    /* Nenhuma delas funcionarão com o PHP 4 */
    var $data_de_hoje = date("Y-m-d");
    var $nome = $primeiro_nome;
    var $proprietario = 'Fred ' . 'Jones';
    /* Mas array contendo valores constantes irao */
    var $items = array("VCR", "TV");
}

/* Esta é a forma como deve ser feito */
class CarrinhoDeCompras {
    var $data_de_hoje;
    var $nome;
    var $proprietario;
    var $items = array("VCR", "TV");

    function CarrinhoDeCompras() {
        $this->data_de_hoje = date("Y-m-d");
        $this->nome = $GLOBALS['primeiro_nome'];
        /* etc. . . */
    }
}
?>

Classes são tipos, ou seja, são apenas um modelo das variáveis normais. Você pode criar uma variável (ou instância) do tipo desejado com o operador new.

<?php
$carrinho = new CarrinhoDeCompras;
$carrinho->add_item("10", 1);

$outro_carrinho = new CarrinhoDeCompras;
$outro_carrinho->add_item("0815", 3);
?>

Isto cria os objetos $carrinho e $outro_carrinho, ambos a partir da classe CarrinhoDeCompras. A função add_item() do objeto $carrinho foi chamada e acrescentou 1 item do artigo número 10 a $carrinho. 3 itens do artigo número 0815 foi acrescentado no $outro_carrinho.

Ambos, $carrinho e $outro_carrinho, tem as funções add_item(), remove_item() e a variável itens. Elas são funções e variáveis distintas entre si. Você pode pensar no objetos como os diretórios de um sistema de arquivos. Num disco você pode ter dois arquivos diferentes README.TXT, partindo de que eles estão em diretórios diferentes. Da mesma forma que você teria de especificar o caminho completo para acessar cada arquivo a partir do diretório principal, você também tem de especificar o nome completo do objeto e função que você quer chamar. No PHP o diretório principal pode ser o escopo global de nomes, e o separador de diretórios ->. Portanto, os nomes $carrinho->items e $outro_carrinho->items são duas variáveis diferentes. Note que a variável é chamada $carrinho->items, não $carrinho->$items, mesmo porque, um nome de variável em PHP tem apenas um único sinal de cifrão.

<?php
// correcto, apenas um $
$carrinho->items = array("10" => 1);

// inválido, porque $carrinho->$items se transforma em $carrinho->""
$carrinho->$items = array("10" => 1);

// correto, mas pode ou não ser o que você quer:
// $carrinho->$myvar se torna $carrinho->items
$myvar = 'items';
$carrinho->$myvar = array("10" => 1);
?>

Quando definindo uma classe, você não pode saber com que nome os objetos serão acessados em seus programas: enquanto escrevia a classe CarrinhoDeCompras, é impossível saber se o objeto criado a partir dela será chamado $carrinho ou $outro_carrinho (ou ainda ambos). Assim, você não pode escrever $carrinho>items dentro da própria classe CarrinhoDeCompras. Entretanto, para poder acessar suas próprias funções e variáveis de dentro da classe, pode-se utilizar a pseudo-variável $this, que pode ser lida como 'eu mesmo' ou 'objeto atual'. Dessa forma, '$this->items[$artnr] += $num' pode ser lido como 'acrescente $num para o contador $artnr do meu array items' ou 'acrescente $num para o contador $artnr do array items do objeto atual'.

Nota: Há funções muito boas para manipulação de classes e objetos. Dê uma olhada em Funções de Classes e Objetos

Anterior | Principal | Próxima
Funções internas (built-in) | Acima | extends


Serializando objetos - objetos em sessões

Nota: No PHP 3, objetos perdem suas associações entre classes através do processo de serialização e desserialização. A variável resultante é do tipo objeto, mas sem classe nem métodos, algo bem sem utilidade (de fato, ele se torna apenas um array com uma sintaxe engraçada).

Cuidado

As informações seguintes se aplicam somente ao PHP 4.

serialize() retorna uma string contendo uma representação linear de qualquer valor que pode ser armazenado no PHP. unserialize() pode ser utilizado para recriar os valores da variável original. Usando serialize para salvar um objeto irá preservar todas as variáveis de um objeto. As funções de um objeto não serão salvas, apenas o nome da classe.

Para ser possível fazer o unserialize() de um objeto, a classe do objeto precisa estar definida. Ou seja, se você tem um objeto $a da classe A em page1.php e o serializa, você consegue uma string que se refere a classe A e contém todos os valores de variáveis contidos em $a. Se você precisa desserializa-la em page2.php, recriando $a da classe A, a definição da classe A precisa estar presente na page2.php. Isto pode por ser feito, por exemplo, armazenando a definição da classe A em um arquivo separado, incluindo este arquivo e ambos os arquivos page1.php e page2.php.

<?php
// classe_a.inc.php:

  class A {
      var $um = 1;

      function mostre_um() {
          echo $this->um;
      }
  }

// page1.php:

  include("classe_a.inc.php");

  $a = new A;
  $s = serialize($a);
  // armazena $s em algum lugar que page2,php possa encontra-la
  $fp = fopen("armazenamento", "w");
  fputs($fp, $s);
  fclose($fp);

// page2.php:

  // Isto e preciso para que unserialize funcione normalmente
  include("classe_a.inc.php");

  $s = implode("", @file("armazenamento"));
  $a = unserialize($s);

  // Agora podemos usar a funcao mostre_um() do objeto $a
  $a->mostre_um();
?>

Se você está utilizando sessões e usar session_register() para registrar objetos, esses objetos serão serializados automaticamente no final de cada script PHP, e automaticamente desserializados em cada uma das páginas seguintes. Isto significa que esse objetos podem estar em qualquer uma de suas páginas desde que elas sejam parte de sua sessão.

É extremamente recomendável que você inclua as definições de classe de todos os objetos registrados de todas as suas páginas, mesmo que você não use essas classes em todas as suas páginas. Se você não o fizer e um objeto for desserializado sem sua definição de classe presente, ele perde usa associação com a classe e se torna um objeto da classe stdClass, sem qualquer funções disponíveis. o que as deixa silenciosamente sem funcionalidade.

Assim, se no exemplo acima $a se tornar parte de uma sessão pela utilização de session_register("a"), você precisa incluir o arquivo classe_a.inc.php em todos as suas páginas, não somente em page1.php e page2.php.

Anterior | Principal | Próxima
parent | Acima | As funções mágicas __sleep e __wakeup


Referências dentro do construtor

A criação de referências em construtores pode gerar resultados confusos. Esta seção tentará ajudá-lo e evitar essas situações.

<?php
class Foo {
    function Foo($name) {
        // cria uma referencia dentro do array global $globalref
        global $globalref;
        $globalref[] = &$this;
        // configura o nome conforme o parametro
        $this->setName($name);
        // e o mostra
        $this->echoName();
    }

    function echoName() {
        echo "<br />",$this->name;
    }

    function setName($name) {
        $this->name = $name;
    }
}
?>

Vamos verificar, abaixo, se há alguma diferença entre $bar1, que foi criado usando operador de cópia =, e $bar2 que foi criado usando o operador de referência =& ...

<?php
$bar1 = new Foo('configurado no construtor');
$bar1->echoName();
$globalref[0]->echoName();

/* saida:
configurado no construtor
configurado no construtor
configurado no construtor */

$bar2 =& new Foo('configurado no construtor');
$bar2->echoName();
$globalref[1]->echoName();

/* saida:
configurado no construtor
configurado no construtor
configurado no construtor */
?>

Aparentemente não há nenhuma diferença, mas de fato há uma muito significativa: $bar1 e $globalref[0] não se referenciam, elas NÃO são a mesma variável. Isto acontece porque "new" não retorna uma referência por default. Ao invés, retorna uma cópia.

Nota: Isto não causa perda de performance (desde que o PHP 4 usa a contagem de referências) retornando copias em vez de referências. Do contrário, isso oferece melhora por simplificar o trabalho com cópias ao invés de referências, porque a criação de referências toma mais tempo enquanto a criação de cópias virtualmente não toma tempo algum (a não ser no caso de grandes arrays ou objetos, onde um deles é modificado e o(s) outro(s) também na seqüência, então é melhor usar referências para mudar todos ao mesmo tempo).

Para comprovar o que escrevemos acima, analise o seguinte código.

<?php
// Agora nos vamos mudar o nome. O que voce espera?
// Voce pode acreditar que ambos $bar1 e $globalref[0] mudem seus nomes...
$bar1->setName('configurado por fora');

// Como mencionado, este nao eh o caso.
$bar1->echoName();
$globalref[0]->echoName();

/* output:
configurado por fora
configurado no construtor */

// Agora vamos ver a diferenca entre $bar2 e $globalref[1]
$bar2->setName('configurado por fora');

// Por sorte, eles nao sao apenas iguais, eles sao a mesma variavel
// Assim, $bar2->name e $globalref[1]->name sao o mesmo tambem
$bar2->echoName();
$globalref[1]->echoName();

/* output:
configurado por fora
configurado por fora */
?>

E apenas mais um exemplo final. Entenda-o com cuidado.

<?php
class A {
    function A($i) {
        $this->value = $i;
        // tente entender porque aqui nos nao precisamos de referencia
        $this->b = new B($this);
    }

    function createRef() {
        $this->c = new B($this);
    }

    function echoValue() {
        echo "<br />","classe ",get_class($this),': ',$this->value;
    }
}

class B {
    function B(&$a) {
        $this->a = &$a;
    }

    function echoValue() {
        echo "<br />","classe ",get_class($this),': ',$this->a->value;
    }
}

// Tente entender porque usando uma simples copia aqui ter
// um resultado indesejavel na linha marcada com *
$a =& new A(10);
$a->createRef();

$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();

$a->value = 11;

$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();

?>

Esse exemplo deverá exibir:

classe A: 10
classe B: 10
classe B: 10
classe A: 11
classe B: 11
classe B: 11

Anterior | Principal | Próxima
As funções mágicas __sleep e __wakeup | Acima | Comparação de objetos no PHP 4


Comparação de objetos no PHP 4

No PHP 4, objetos são comparados de uma maneira bem simples: Duas instâncias de objetos são iguais se eles tem os mesmos atributos e valores, e se de instâncias da mesma classe. Regras similares são aplicadas quando comparando dois objetos utilizando o operador idêntico (===).

Executando o exemplo abaixo:

Exemplo 13-1. Exemplo de comparação de objetos no PHP 4

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2) {
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class SwitchableFlag extends Flag {

    function turnOn() {
        $this->flag = true;
    }

    function turnOff() {
        $this->flag = false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo "Comparando instâncias criadas com os mesmo parâmetros\n";
compareObjects($o, $q);

echo "\nComparando instâncias criadas com parâmetros diferentes\n";
compareObjects($o, $p);

echo "\nComparando instâncias de uma classe base com uma classe estendida\n";
compareObjects($o, $r);
?>
Nós teremos:
Comparando instâncias criadas com os mesmo parâmetros
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Comparando instâncias criadas com parâmetros diferentes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Comparando instâncias de uma classe base com uma classe estendida
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Que é o resultado que esperava-mos obter pelas regras de comparação acima. Somente instâncias com os mesmos valores de seus atributos e da mesma classe são considerados iguais e/ou idênticos.

Mesmo no caso onde temos composição de objetos, as mesmas regras de comparação se aplicam. No exemplo abaixo, nós criamos uma classe container que preserva um array associativo de objetos Flag.

Exemplo 13-2. Comparação de objetos compostos no PHP 4

<?php
class FlagSet {
    var $set;

    function FlagSet($flagArr = array()) {
        $this->set = $flagArr;
    }

    function addFlag($name, $flag) {
        $this->set[$name] = $flag;
    }

    function removeFlag($name) {
        if (array_key_exists($name, $this->set)) {
            unset($this->set[$name]);
        }
    }
}

$u = new FlagSet();
$u->addFlag('flag1', $o);
$u->addFlag('flag2', $p);
$v = new FlagSet(array('flag1'=>$q, 'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo "\nComparando objetos compostos u(o,p) e v(q,p)\n";
compareObjects($u, $v);

echo "\nu(o,p) e w(q)\n";
compareObjects($u, $w);
?>
Que nos traz ao seguinte resultado:
Comparando objetos compostos u(o,p) e v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) e w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Anterior | Principal | Próxima
Referências dentro do construtor | Acima | Comparação de objetos no PHP 5


Comparação de objetos no PHP 5

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

No PHP 5, a comparação de objetos é uma pouco mais complicada que no PHP 4 e mais de acordo do que se espera de uma Linguagem Orientada a Objetos (mesmo que o PHP 5 não o seja).

Quando utilizando o operador igualdade (==), variáveis de objeto são comparados de maneira direta: Duas instâncias de objetos são iguais se eles tem os mesmos atributos e valores, e se instâncias da mesma classe.

Mas de outra forma, quando utilizando o operador idêntico (===), variáveis objetos são idênticas somente se elas se referem à mesma instância da mesma classe.

Um exemplo irá clarear essas regras.

Exemplo 13-3. Exemplo de comparação de objetos no PHP 5

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2) {
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class OtherFlag {
    var $flag;

    function OtherFlag($flag=true) {
            $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Duas instâncias da mesma classe\n";
compareObjects($o, $p);

echo "\nDuas referências da mesma instância\n";
compareObjects($o, $q);

echo "\nInstâncias de duas classes diferentes\n";
compareObjects($o, $r);
?>
Este exemplo terá os seguintes resultados:
Duas instâncias da mesma classe
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Duas referências da mesma instância
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instâncias de duas classes diferentes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Anterior | Principal | Próxima
Comparação de objetos no PHP 4 | Acima | Referências


Referências

Manual do PHP
Anterior Próxima

Capítulo 14. Referências

Índice
O que são referências
O que as referências fazem
O que as referências não são
Passagem por referência
Retornando referências
Destruindo referências
Demonstrando referências

O que são referências

Referências, em PHP, significa acessar o mesmo conteúdo de variável através de vários nomes. Isto não é parecido como os ponteiros em C: aqui temos apelidos numa tabela simbólica. Note que no PHP nomes de variáveis e conteúdo de variável são tratados diferentemente, então um mesmo conteúdo pode ter nomes diferentes. A analogia mais próxima é a dos arquivos e seus nomes em sistemas UNIX: nomes de variáveis são o caminho completo dos arquivos, enquanto o conteúdo da variável são os dados desse arquivo. Assim, referências pode ser tomadas como os links físicos dentro do sistema de arquivos UNIX.

Anterior | Principal | Próxima
Comparação de objetos no PHP 5 | Acima | O que as referências fazem


O que as referências fazem

Referências PHP permitem fazer duas variáveis se referirem ao mesmo conteúdo. Ou seja:

<?php
$a =& $b
?>

aqui $a e $b apontam para a mesma variável.

Nota: $a e $b são completamente iguais aqui, mas não porque $a está apontando para $b ou vice versa, mas sim que $a e $b apontam para o mesmo lugar.

A mesma sintaxe pode ser utilizada com funções, que retornem referências, e com o operador new (a partir do PHP 4.0.4):

<?php
$bar =& new fooclass();
$foo =& find_var ($bar);
?>

Nota: A não utilização do operador & causará a cópia do objeto. Se você utiliza $this em classes, ele operará na instância atual do objeto. A assimilação sem & irá copiar a instância (o objeto em si) e $this irá operar na cópia, podendo não ser esse procedimento sempre desejável. Normalmente você precisará trabalhar com uma instância única, seja por motivos de performance ou de consumo de memória.

Você pode utilizar o operador @ para esconder quaisquer erros em construtores na forma @new, mas isto não funciona quando utilizada a instrução &new. Esta é uma limitação da Zend Engine e irá gerar um erro de interpretação (parser error).

A segunda coisa que referências permitem é passar variáveis por referência. Isto é feito marcando uma variável local de uma função e a variável do escopo chamador como referências ao mesmo conteúdo. Exemplo:

<?php
function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);
?>

fará que $a seja 6. Isto acontece porque na função foo a variável $var se refere ao mesmo conteúdo que $a. Veja explicações mais detalhadas em passagem por referência.

Em terceiro lugar, referências permitem também retorno por referência.

Anterior | Principal | Próxima
Referências | Acima | O que as referências não são


O que as referências não são

Como dito anteriormente, referências não são ponteiros. Isto significa que o construtor seguinte não fará o que você espera:

<?php
function foo (&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);
?>

Acontece que $var na função foo estará apontada para $bar na chamada, mas ela será re-apontada para $GLOBALS["baz"]. Não existe maneira de apontar $bar no escopo chamador para qualquer outra coisa utilizando o mecanismo de referências, desde que $bar não está disponível na função foo (ela é representa por $var, mas $var somente tem o conteúdo da variável e não um relacionamento nome para valor na tabela simbólica).

Anterior | Principal | Próxima
O que as referências fazem | Acima | Passagem por referência


Passagem por referência

Você pode passar variáveis para funções por referência, então a função poderá modificar seus argumentos. A sintaxe é a seguinte:

<?php
function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);
// $a é 6 aqui
?>

Note que não há o sinal de referência na chamada da função, somente na definição da função. A marcação na definição da função sozinha é suficiente para configurar corretamente a passagem de argumentos por referência.

As coisas a seguir podem ser passadas por referência:

  • Variáveis. Exemplo: foo($a)

  • Instrução new. Exemplo foo(new foobar())

  • Outra referência, retornada de uma função. Exemplo:

    <?php
function &bar()
{
    $a = 5;
    return $a;
}
foo(bar());
?>

    Veja explicações sobre isso em retorno por referência.

Nenhuma outra expressão poderá ser passada por referência, com resultados indefinidos. Por exemplo, o exemplo seguinte de passagem por referência é inválido:

<?php
function bar() // Note a falta do &
{
    $a = 5;
    return $a;
}
foo(bar());

foo($a = 5); // Expressão, não é variável
foo(5);      // Constante, não é variável
?>

Essas limitações valem para o PHP 4.0.4 em diante.

Anterior | Principal | Próxima
O que as referências não são | Acima | Retornando referências


Retornando referências

Retorno por referência é útil quando você precisa utilizar uma função para localizar variável cuja referência precisa ser obtida. Para retornar referências, utilize esta sintaxe:

<?php
function &procura_var ($param)
{
    /* ...codigo... */
    return $variavel_encontrada;
}

$foo =& procura_var ($bar);
$foo->x = 2;
?>

Neste exemplo, a propriedade do objeto retornado pela função procura_var precissa ser assimilada, não copiada, como acontecerá se não utilizar a sintaxe de referências.

Nota: Diferentemente da passagem de parâmetros por referência, aqui você precisa utilizar & em ambos os lugares --- primeiro para indicar o retorno por referência (e não a cópia), e depois para indicar a ligação da referência (em vez da assimilação convencional) que precisa ser explícita.

Anterior | Principal | Próxima
Passagem por referência | Acima | Destruindo referências


Destruindo referências

Quando você quebra uma referência, ela apenas pára de fazer o apontamento entre o nome da variável e o conteúdo. Mas isto não significa que o conteúdo da variável será destruído. Por exemplo:

<?php
$a = 1;
$b =& $a;
unset ($a);
?>

não apaga $b, apenas $a.

Novamente, é mais fácil pensar em analogia ao comando UNIX unlink.

Anterior | Principal | Próxima
Retornando referências | Acima | Demonstrando referências


Demonstrando referências

Vários construtores sintáticos do PHP são implementados através de mecanismos de referência, assim, tudo o explicado até aqui sobre referências também se aplica a esses construtores. Alguns desses construtores, como a passagem e o retorno de referências foram mencionados acima. Outros construtores que também utilizam referências são:

global

Quando você declara uma variável com global, você está de fato criando um referência para a variável global. Isto significa que isto é o mesmo que:

<?php
$var =& $GLOBALS["var"];
?>

O que significa também que destruir $var não apaga a variável global.

$this

Num método de objeto, $this sempre referencia o instância atual.

Anterior | Principal | Próxima
Destruindo referências | Acima | Segurança


Segurança

Manual do PHP
Anterior Próxima

III. Segurança

Índice
15. Segurança

Anterior | Principal | Próxima
Demonstrando referências |  | Segurança


Segurança

Manual do PHP
Anterior Próxima

Capítulo 15. Segurança

Índice
Considerações Gerais
Instalado como binário CGI
Instalando como um módulo do Apache
Segurança de sistema de arquivos
Segurança de Bando de Dados
Relatório de Erro
Usando Register Globals
Dados Submetidos pelo Usuário
Escondendo o PHP
Permanecendo atualizado

PHP é uma liguagem poderosa e interpretadora, se incluida num servidor web como um módulo ou executado em separado com um binário CGI, está apta a acessar arquivos, executar comandos e abrir conexões de rede no servidor. Estas propriedades fazem qualquer coisa rodar em um servidor web inseguro. PHP é designado, especificadamente, para ser uma linguagem mais segura para escrever programas CGI do que Perl ou C, e com a seleção correta da configuração de opções na compilação e na execução, e práticas de codificação apropriadas, ele pode te oferecer exatamente uma combinação de liberdade e segurança que você precisa.

Como existem muitos caminhos diferentes de utilizar o PHP, há muitas opções de configuração controlando o seu comportamento. Uma grande seleção de opções garantem que você pode utilizar o PHP para uma infinidade de propósitos, mas isso também significa que há combinações destas opções e configurações do servidor que resultam em uma estrutura insegura.

A flexibilidade da configuração do PHP é igualmente rival da flexibilidade do código. O PHP pode ser usado para construir aplicações completas para servidores, com todo o poder de um usuário shell, ou ele pode ser usado para simplesmente server-side includes com baixo risco em um ambiente firmemente controlado, e quão seguro ele é, depende amplamente da capacidade do desenvolvedor PHP.

Este capítulo começa com alguns avisos gerais de segurança, explica as diferentes combinações de opções de configuração e as situações que elas podem ser seguramente utilizadas, e descreve diferentes considerações em codificação para diferentes níveis de segurança.

Considerações Gerais

Um sistema completamente seguro é uma impossibilidade virtual, então uma aproximação geralmente utilizada na profissão de segurança é a de balancear risco e usabilidade. Se cada variável submetida por um usuário requer dois formulários de validação biométrica (tal como um escaneamento da retina e impressão digital), você teria um nível extremamente alto de responsabilidade. Isto também levaria meia hora para preencher um formulário complexo corretamente, que tenderia a encourajar usuários a encontrar maneiras de contornar a segurança.

A melhor segurança é geralmente discreta o bastante para satisfazer as exigências sem o usuário ser prevenido da insegurança na execução de seu trabalho, ou sobrecarregar o autor do código com excessiva complexidade. Sem dúvida, alguns ataques à segurança são meramente formas de se aproveitar desta segurança exacerbada, que tende a corroer-se com o tempo.

Uma frase digna de lembrança: Um sistema é tão bom quanto o mais fraco elo de uma corrente. Se todas as transações são logadas pesadamente baseadas no tempo, localização, tipo de transação, etc. mas o usuário é verificado através de um simples cookie, a validação da conexão com os usuários para o log da transação é severamente enfraquecido.

Quando testando, lembre-se que você não está apto a testar todas as possibilidades, mesmo para a mais simples das páginas. A entrada que você pode esperar será completamente sem relação com a entrada dada por um trabalhador decepcionado, um "cracker"(pessoa com habilidades de quebrar códigos de acesso a programas e etc) com meses do tempo em suas mãos, ou um gato passeando pelo teclado. Isto porque, é melhor observar o código por uma perspectiva lógica, para dicernir onde dados inesperados podem ser introduzidos, e então segue como eles são modificados, reduzidos, ou amplificados.

A internet é cheia de pessoas tentando fazer um nome para elas, quebrando o seu código, detonar o seu site, colocar conteúdo impróprio, e de outra forma fazer o seu dia ficar interessante. Isso não importa se você tem um pequeno ou um grande site, você é um alvo por está simplesmente online, por ter um servidor que pode está conectado. Muitos programas de "Cracking" (programas utilizados pelos crackers) não enxergam pelo tamanho, eles simplesmente arrastam em massa blocos de IP procurando por vítimas. Tente não ser uma delas.

Anterior | Principal | Próxima
Segurança | Acima | Instalado como binário CGI


Instalado como binário CGI

Possíveis ataques

Usando o PHP como um binário CGI é uma opção para configuração que por alguma razão não deseja integrar o PHP como módulo dentro de um programa de servidor (como o Apache), ou utilizará o PHP com CGI de diferentes tipos de roupagem para criar ambientes chroot e setuid seguros para scripts. Este setup geralmente envolve instalação do executável do PHP binário para o diretório cgi-bin do servidor web. CERT (Equipe de suporte a emergência de computadores) de consulta CA-96.11 é contra instalação de qualquer interpretador dentro do cgi-bin. Mesmo se o binário PHP pode ser usado como um interpretador em standalone (sozinho), o PHP é designado para prevenir os ataques que esta configuração é capaz:

  • Acessando sistema de arquivos: http://my.host/cgi-bin/php?/etc/passwd

    A informação de query em uma url depois da interrogação (?) é como argumentos de linha de comando para o interpretador pela interface CGI. Normalmente interpretadores abrem e executam o arquivo especificado como o primeiro argumento na linha de comando.

    Quando invocado como um binário, o PHP recusa-se a interpretar os argumentos de linha de comando.

  • Acessando qualquer documento do servidor web: http://my.host/cgi-bin/php/secret/doc.html

    A informação do caminho na parte da url após o nome do binário PHP, /secret/doc.html é convencionalmente usado para especificar o nome do arquivo para ser aberto e interpretado pelo programa CGI. Normalmente algumas diretivas de configuração de servidores (Apache: Action) são usadas para redirecionar pedidos para documentos como http://my.host/secret/script.php para o interpretador de PHP. Com este setup, o servidor primeiro checa as permissões de acesso aothe access permissions para o diretório /secret, e depois que cria o pedido redirecionado http://my.host/cgi-bin/php/secret/script.php. Desafortunadamente, se o pedido é originalmente feito desta forma, não são feitas checagens de acesso pelo servidor para o arquivo /secret/script.php, mas apenas para o arquivo /cgi-bin/php. Desta forma qualquer usuário está apto a acessar /cgi-bin/php está apto a acessar qualquer documento protegido dentro do servidor.

    No PHP, opção de configuração de compile-time (tempo de compilação) --enable-force-cgi-redirect e diretivas de configuração de tempo de execução doc_root e user_dir podem ser usadas para prevenir este ataque, se a árvore de documentos do servidor tem quaisquer diretórios com restrições de acesso. Veja abaixo para uma explicação completa de diferentes combinações.

Caso 1: apenas arquivos públicos no servidor

Se seu servidor não tem qualquer conteúdo que não seja restrito por senha ou baseado em ip para controlar o acesso, não há necessidade ára estas opções de configuração. Se seu servidor não permite que você faça redirecionamentos, ou o servidor não uma forma de comunicar o binário PHP que a solicitação é um pedido de redirecionamento seguro, você pode especificar a opção --enable-force-cgi-redirect para o script de configuração. Você ainda tem que ter certeza que seu script PHP faça com que não dependa de uma ou outra forma de chamar de ser chamado, nenhum dos dois de modo direto http://my.host/cgi-bin/php/dir/script.php nem por redireção http://my.host/dir/script.php.

Redireção pode ser configurada no Apache usando AddHandler (adicionar manipulador) e diretivas de ação (veja abaixo).

Caso 2: usando --enable-force-cgi-redirect

Esta opção de compilação evita de qualquer um chamar o PHP diretamente com uma url como http://my.host/cgi-bin/php/secretdir/script.php. Ao contrário, o php apenas analisa neste modo se ele atravessou uma regra de redirecionamento de um webserver.

Normalmente esta redireção na configuração do Apache é feita com as seguintes diretivas:

Action php-script /cgi-bin/php
AddHandler php-script .php

Esta opção foi testada apenas com o servidor Apache, e conta com o Apache para ajustar a variável de ambiente CGI non-standard (não-padrão) REDIRECT_STATUS em pedidos redirecionados. Se seu servidor não suporta nenhuma forma de descobrir se o pedido é direcionado ou redirecionado, você não pode usar esta opção e você deve usar umas das outras formas de executar a versão CGI documentada aqui.

Caso 3: definindo doc_root ou user_dir

Para incluit conteúdo ativo, como scripts e executáveis, nos diretórios de documentos do servidor é considerada, às vezes uma prática insegura. Se, por causa de alguns erros de configuração, os scripts não são executados mas exibidos como documentod html normais, isto pode resultar em exibição de propriedades intelectuais e informações de segurança como senhas. Então alguns administradores de sistema irão preferir configurar outra estrutura de diretório para scripts que são acessíveis apenas por CGI PHP, então sempre interpretado e não é exibido como da outra forma.

Também se o método que verifica se o pedido não é redirecionado, como descrito na seção anterior, não está disponível, é necessário definir um doc_root de script que é diferente de um document root da web.

você pode definir o document root de script pela diretiva de configuração doc_root no arquivo de configuração, ou você pode definir a variável de ambiente PHP_DOCUMENT_ROOT. Se ela estiver definida, a versão CGI do PHP sempre construirá o nome do arquivo para abrir com este doc_root e a informação do caminho no pedido, então você pode que nenhum script será executado de fora deste diretório (exceto para user_dir abaixo).

Uma outra opção útil é user_dir. Quando user_dir não está definida, apenas uma coisa que tem o controle do nome de arquivo aberto é doc_root. Abrindo uma url como http://my.host/~user/doc.php não resulta em abertura de um arquivo de dentro do diretório home de usuários, mas um arquivo chamado ~user/doc.php dentro de doc_root (sim, um nome de diretório começando com um til [~]).

Se user_dir está definido para, exemplo public_php, um pedido como http://my.host/~user/doc.php abrirá um arquivo chamado doc.php de dentro do diretório nomeado public_php de dentro do diretório do usuário. Se o home do usuário é /home/user, o arquivo executado é /home/user/public_php/doc.php.

A expansão de user_dir acontece apesar da configuração de doc_root, então você pode controlar o acesso de document root e diretório de usuário (user) separadamente.

Caso 4: Analisador de PHP de fora da árvore web

Uma opção segura é colocar o analisador de PHP binário em algum lugar de fora da árvore de arquivos da web. Em /usr/local/bin, por exemplo. O único porém desta opção é que você agora terá que colocar uma linha similar a:

#!/usr/local/bin/php

como a primeira linha de qualquer arquivo contendo tags de PHP. Você também precisará marcar o arquivo executável. Que é tratá-lo exatamente como você trataria um outro script CGI escrito em PERL ou SH ou qualquer outra linguagem comum que utiliza o mecanismo #! shell-escape para se auto-executar.

Obter o PHP para manipular a informação de PATH_INFO e PATH_TRANSLATED corretamente com este setup, o analisador de PHP seria compilado com a opção de configuração --enable-discard-path.

Anterior | Principal | Próxima
Segurança | Acima | Instalando como um módulo do Apache


Instalando como um módulo do Apache

Quando o PHP é usado como um módulo do Apache ele herda as permissões de usuários do Apache (tipicamente aquelas do usuário "nobody" (ninguém)). Isto tem impactos severos na segurança e autorização. Por exemplo, se você está usando o PHP para acessar um banco de dados, a menos que o banco de dados tenha nele controle de acesso, você terá que fazer o acesso ao banco de dados para o usuário "nobody" (ninguém). Isto significa que um script malicioso poderia acessar e modificar o banco de dados, sem login e senha . É inteiramente possível que "web spider" (ferramenta de programas de busca que atualizam a sua base de dados através de navegação na rede e na procura de páginas novas) poderia esbarrar no banco de dados da página do adminstrador. e eliminar tudo de seus bancos de dados. Você pode se proteger contra isto com a autorização do Apache, ou você pode desenvolver seu próprio modelo de acesso usando LDAP, arquivos ???, etc. e incluir esse código como parte de seus scripts PHP.

Muitas vezes, logo que a segurança está estabelecida para o ponto onde o usuário PHP (neste caso, o usuário do Apache) tem pouquíssimo risco ligado, é revelado que o PHP está agora prevenido de escrever quaisquer arquivos para diretórios de usuários. Ou talvez ele seja impedido de acessar ou mudar banco de dados. Issi tem sido igualmente assegurado da escrita de arquivos bons e maus, ou entradas de transações a banco de dados boas ou más.

Um erro de segurança comum feito desta forma é permitir acesso ao root do apache, ou expandir as habilidades do apache em algum outro caminho.

Aumentar as permissões do usuário do apache para root é extremamente perigoso e pode comprometer todo o seu sistema, então utilizar o sudo(permitindo a um usuário realizar alguma tarefa como root) ou o chroot(mudando o diretório raíz do sistema) ou qualquer outra forma de executar como root não seria considerado por pessoas que não são profissionais em segurança.

Há algumas soluções mais simples. Ao usar open_basedir você pode controlar e restringir quais os diretórios são permitidos para ser usado pelo PHP. Você pode também definir áreas de somente-apache, para restringir para não-usuário toda atividade baseada em web, ou não-sistema, para os arquivos.

Anterior | Principal | Próxima
Instalado como binário CGI | Acima | Segurança de sistema de arquivos


Segurança de sistema de arquivos

O PHP é assunto para a segurança construída na maioria dos sistemas de servidor, com respeito a permissões em um arquivo e em bases de diretórios. Isto permite que você controle quais arquivos no sistema de arquivos podem ser lidos. Cuidados deveriam ser tomados com arquivos que são liberados para leitura para a assegurar que eles estão protegidos para leitura para todos os usuários que tem acesso a esse sistema de arquivos.

Visto que o PHP foi desenvolvido para permitir acesso por nível de usuário ao sistema de arquivos, é inteiramente possível escrever um script PHP que permitirá a você ler sistema de arquivos tais como /etc/password, modificar suas conexões de ethernet, enviar trabalhos de impressora em massa para fora, etc. Isto tem algumas implicações óbvias, no que você precisa garantir que estes arquivos que você lê e escreve estão nos locais apropriados.

Considere o seguinte script, onde um usuário indica que eles tem como deletar um arquivo em seus diretórios home. Assume-se uma situação onde a interface web do PHP é usada regularmente para gerenciamento de arquivos, então o usuário do Apache está liberado para apagar arquivos nos diretórios home.

Exemplo 15-1. Checagem pobre de variável leva a....

<?php
// remove um arquivo de diretório home do usuário
$usuario = $_POST['user_submitted_name'];
$homedir = "/home/$usuario";
$file_to_delete = "$userfile";
unlink ("$homedir/$userfile");
echo "$file_to_delete foi deletado!";
?>
Visto que o username é postável de um formulário de usuário, eles podem submeter um nome de usuário e arquivar pertencendo a outra pessoa, e deletar arquivos. Neste caso, você tem que utilizar outra forma de autenticação. Considere o que aconteceria se as variáveis submetidas fossem "../etc/" e "passwd". O código então leria efetivamente:

Exemplo 15-2. ... Um ataque de sistema de arquivos

<?php
// remove um arquivo de algum lugar no disco que o usuário
// do PHP tem acesso. Se o PHP possui acesso ao root:
$username = "../etc/";
$homedir = "/home/../etc/";
$file_to_delete = "passwd";
unlink ("/home/../etc/passwd");
echo "/home/../etc/passwd foi deletado!";
?>
Há duas medidas importantes que você tomaria para prevenir estas coisas.

  • Apenas deixar permissões limitadas ao usuário PHP binário.

  • Checar todas as variáveis que são submetidas.

Aqui está um script melhorado:

Exemplo 15-3. Checagem de nome de arquivo mais seguro

<?php
// remove um arquivo do hd que o PHP usa para acessá-lo

$username = $_SERVER['REMOTE_USER']; // usando um mecanismo de autenticação

$homedir = "/home/$username";

$file_to_delete = basename("$userfile"); // Retira o caminho
unlink ($homedir/$file_to_delete);

$fp = fopen("/home/logging/filedelete.log","+a"); //Logar a deleção
$logstring = "$username $homedir $file_to_delete";
fputs ($fp, $logstring);
fclose($fp);

echo "O $file_to_delete foi deletado!";
?>
However, even this is not without it's flaws. Se seu sistema de autenticação permite aos usuários criar seus próprios logins, e um usuário escolhe o login "../etc/", o sistema é exposto de novo. Por esta razão, você pode preferir escrever uma checagem mais detalhada:

Exemplo 15-4. Verificação de nome de arquivo mais segura

<?php
$username = $_SERVER['REMOTE_USER']; // Usando um mecanismo de atenticação
$homedir = "/home/$username";

if (!ereg('^[^./][^/]*$', $userfile))
     die('nome de arquivo maldoso'); //interromper, não processa

if (!ereg('^[^./][^/]*$', $username))
     die('nome de usuario maldoso'); //interromper, não processa
//etc...
?>

Dependendo de seu sistema operacional, há uma ampla variedade de arquivos que você estaria preocupado, incluindo entradas de dispositivos (/dev/ ou COM1), arquivos de configuração (arquivos /etc/ e os arquivos .ini), áreas de armazenamento de arquivos conhecidas (/home/, Meus Documentos), etc. Por este motivo, é normalmente mais fácil criar um policiamento onde você proibe tudo exceto para o que você permitir explicitamente.

Anterior | Principal | Próxima
Instalando como um módulo do Apache | Acima | Segurança de Bando de Dados


Segurança de Bando de Dados

Atualmente, bancos de dados são componentes primordiais de qualquer aplicação web, por permitir aos websites fornecer variedades de conteúdos dinâmicos. Visto que informações muito sensíveis ou secretas podem ser guardadas em bancos, você considera fortemente a proteção de seus bancos de dados.

Para resgatar ou guardar qualquer informação você conecta ao banco de dados, envia uma requisição legitimada, pega o resultado, e fecha a conexão. Atualmente, a linguagem de requisição mais usada nesta interação é a Linguagem de Requisição Estruturada Structured Query Language (SQL). Veja como um agressor pode se engajar com uma requisição SQL.

Como você pode pensar, o PHP não pode proteger seu banco de dados por si só. As seções seguintes fazem uma introdução nos muitos fundamentos de como acessar e manipular banco de dados com scripts PHP.

Mantenha em sua mente uma regra simples: defesa em completo. Em lugares que você toma mais ações para aumentar a proteção de seu banco tem menos probabilidade de que uma um invasor tenha sucesso, e exponha ou faça mau uso de qualquer informação secreta que esteja guardada. Esquema de banco de dados bem desenhado e as aplicações comerciais tratados com seus maiores receios.

Estruturando Banco de dados

O primeiro passo é sempre criar o banco de dados, a menos que você queira utilizar um já existente, terceirizado. Quando um banco de dados é criado, ele é designado para um proprietário, que executa a instrução de criação. Normalmente, apenas o proprietário (ou um superusuário) pode fazer qualquer coisa com os objetos no banco de dados, e para permitir que outros usuários o utilizem, privilégios devem ser concedidos.

Aplicações nunca conectariam ao banco de dados como sendo o proprietário ou um superusuário, porque estes usuários podem executar qualquer instrução à sua vontade, por exemplo, modificar o esquema (apagando tabelas) ou deletando todo o conteúdo.

Você pode criar diferentes usuários de banco de dados para cada aspecto de sua aplicação com muitos direitos limitados aos objetos do banco. A maioria dos privilégios requeridos seria concedido apenas, e evitaria que o mesmo usuário pudesse interagir com o banco de dados em diferentes situações. Isto significa que se os invasores conseguem acessar seu banco de dados usando uma destas credenciais de sua aplicação, eles podem apenas efetuar tantas mudanças quanto a sua aplicação puder.

Você é encourajado a não implementar toda a lógica de negócios na aplicação web (i.e em seu script), ao invés disso faça-o em um esquema de banco de dados usando views, triggers ou regras. Se o sistema evolui, novas portas serão planejadas para abrir o banco de dados, e você tem que re-implementar a lógica em cada cliente de banco de dados em separado. Acima ou abaixo, triggers podem ser usados para manipular campos automaticamente e com tranparência, que frequentemente oferece muita ajuda quando se está tirando os bugs de sua aplicação ou traçando transações anteriores.

Conectando ao Banco de Dados

Você pode querer estabelecer conexões com SSL para encriptar comunicações cliente/servidor para aumentar a segurança, ou você pode usar ssh para encriptar a conexão de rede entre clientes e o servidor do banco de dados. Se você quer estabelecer conexões com SSL para encriptar comunicações cliente/servidor para aumentar a segurança, ou você pode utilizar SSH para encriptar a conexão da rede entre clientes e servidor do banco de dados. Se uma das duas opções é usada, então monitorar seu tráfego e obter informação sobre seu banco de dados será difícil para um suposto invasor.

Modelo de Armazenamento Encripitado

SSL/SSH protege dados viajando do cliente para o servidos, SSL/SSH não protege os dados persistentes guardados no banco. SSL é um protocolo on-the-wire.

Uma vez que um invasor ganha acesso ao seu banco de dados diretamente (passando pelo servidor web), os dados sensíveis podem ser expostos ou receber um mal uso, a menos que a informação esteja protegida pelo próprio banco. Encriptar os dados é uma boa maneira de aliviar esta ameaça, mas pouquíssimos bancos de dados oferecem este tipo de encriptação de dados.

A maneira mais fácil de contornar este problema é primeiro criar o seu proprio pacote de encriptação, e então usá-lo de dentro de seus scripts PHP. O PHP pode auxiliar você nisto com suas várias extensões, tais como Mcrypt e Mhash, simulando uma ampla variedade de algorítimos de encriptação. O script encripta os dados antes de inserí-los em um banco de dados, e desencripta-os ao devolvê-los. Veja as referências para mais exemplos de como a encriptação trabalha.

No caso de dados verdadeiramente escondidos, se sua representação original não é necessária (i.e. não ser mostrada), embaralhamento (hashing) pode também ser levado em consideração. O exemplo bem conhecido para embaralhamento é guardando o a senha com o hash MD5 em um banco de dados, ao invés da própria senha. Veja também crypt() e md5().

Exemplo 15-5. Usando campo de senha embaralhado (hashed)

// guardando senha embaralhada
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

// pesquisando se o usuário submeteu a senha correta
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {
    echo "Bem vindo, $username!";
}
else {
    echo "Falha na autenticação para $username.";
}

Injeção de SQL (SQL Injection)

Muitos programadores de web não estão cientes de como solicitações SQL devem ser feitas com cuidado, e assumem que uma solicitação SQL é um comando confiável. Isso significa que solicitações SQL estão aptas a driblar controles de acesso, através de passagens de sistemas de autenticação padrão e vericações de autorização, e alguma vezes solicitações SQL podem até permitir acesso a comandos do sistema operacional do host.

Injeção de comandos SQL direto é uma técnica onde um agressor cria ou altera comandos SQL existentes para expor dados escondidos, ou cancelar dados valiosos, ou até executar comandos de sistema operacional no host do banco de dados. Isto é efetuado por uma aplicação que pega entradas de usuários e combinando-a com parâmetros estáticos para construir uma solicitação SQL. Os seguintes exemplos são baseados em histórias verdadeiras, infelizmente.

A falta de uma validação na entrada, leva a uma conexão ao banco de dados como superusuário ou aquele que pode criar usuários, o agressor pode criar um superusuário em seu banco de dados.

Exemplo 15-6. Dividindo o conjunto de resultados em páginas ... e fazendo superusuários (PostgreSQL e MySQL)

$offset = argv[0]; // tome cuidado, sem validação de entrada!
$query  = "SELECT id, nome FROM produtos ORDER BY nome LIMIT 20 OFFSET $offset;";
// com PostgreSQL
$resultado = pg_exec($conn, $query);
// com MySQL
$resultado = mysql_query($query);
Usuários comuns clicam nos links 'próximo', 'anterior' onde o $offset está codificada na URL. O script espera que a entrada de $offset é um número decimal. No entando, o que acontece se alguém tenta quebrar anexando uma forma de urlencode() seguindo para a URL.

// no caso do PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// no caso do MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;

Se isso aconteceu, então o script concederia um acesso como superusuário para ele. Note que 0; é para fornecer um offset válido para a solicitação original e terminá-la.

Nota: Está é uma técnica comum para forçar o interpretador SQL a ignorar o resto da solicitação escrita pelo desenvolvedor com -- que é o sinal de comentário em SQL.

Uma forma acessível de ganhar senhas é driblar suas páginas de resultados de pesquisa. A única coisa que o invasor precisa fazer é ver se há quaisquer variáveis submetidas usadas na instrução SQL que não é manipulada adequadamente. Estes filtros podem ser definidos, geramente em um formulário precedente para customizar instruções WHERE, ORDER BY, LIMIT e OFFSET cláusulas em SELECT. Se seu banco de dados suporta o construtor UNION, o agressor pode tentar anexar uma solicitação inteira para o original para listar senhas de uma tabela arbitrária. Usar campos de senhas criptografados é altamente recomendado.

Exemplo 15-7. Listando artigos ... e algumas senhas (qualquer servidor de banco de dados)

$query  = "SELECT id, name, inserted, size FROM products
                  WHERE size = '$size'
                  ORDER BY $order LIMIT $limit, $offset;";
$result = odbc_exec($conn, $query);
A parte estática da solicitação (query) pode ser combinada com uma outra instrução SELECT que revela todos as senhas:

'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

Se esta solicitação (agindo com o ' e --) foi atribuida para uma das variáveis usadas na $query, a solicitação perversa é despertada.

SQL UPDATE's tambémes suscepatíveis a ataques. Estas solicitações estão também ameaçadas em ser cortadas e anexadas a elas uma nova solicitação inteira. Mas o agressor pode brincar com a cláusula SET. Neste caso alguma informação de esquema deve ser tomado para manipuar a solicitação com sucesso. Isto pode ser adquirido pela examinação dos nomes das variáveis do formulário, ou apenas pela força bruta. Não há, então, muitas convenções de nomeação para campos guardando senhas e logins.

Exemplo 15-8. Recriando uma senha ... para obter mais privilégios (qualquer banco de dados)

$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
Mas um usuário malicioso submete o valor ' or uid like'%admin%'; -- para $uid afim de mudar a senha do administrador, ou simplesmente definir $pwd para "'hehehe', admin='yes', trusted=100 " (with a trailing space) para obter mais privilégios. Então, a solicitação será deformada:

// $uid == ' or uid like'%admin%'; --
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"

Um exemplo terrível de como comandos de sistema operacional podem ser acessados em alguns hosts de banco de dados.

Exemplo 15-9. Atacando o sistema operacional de hosts de banco de dados (MSSQL Server)

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
Se o atacante submete o valor a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- para $prod, então a $query será:

$query  = "SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);

MSSQL Server executa o lote de instruções SQL que inclui um comando para adicionar um novo usuário para a conta local do banco de dados. Se esta aplicação estava rodando como sa e o serviço de MSSQLSERVER está rodando com privilégios suficientes, o agressor agora teria uma conta para acessar está máquina.

Nota: Alguns dos exemplos acima diz respeito a um banco de dados específico. Isto não significa que um ataque similar é impossível contra outros produtos. Seu banco de dados pode estar similarmente vulnerável de outra forma.

Técnicas de Prevenção

Você pode alegar que o agressor deve possuir uma peça de informação sobre o esquema do banco de dados na maioria dos exemplos. Você está certo, mas você nunca sabe quando e como ele pode se relacionar, e se isso acontece, seu banco de dados pode estar exposto. Se você está usando manipulador de banco de dados open source (código aberto), ou um públicamente disponível, que pode fazer parte de um sistema de gerenciamento de conteúdo ou forum, o intruso pode fácilmente produzir uma cópia de uma peça de seu código. Isso pode ser, também, um risco na segurança se ele está pobremente desenvolvido.

Estes ataques podem ser baseados na exploração de códigos que, ao serem escritos não consideraram a segurança. Nunca confie em nenhum tipo de entrada, especialmente as que vem do lado do cliente, mesmo que ela venha de uma caixa de seleção, de um campo hidden ou um cookie. O primeiro exemplo mostra que um solicitação (query) inocente pode causar disastres.

  • Nunca conecte ao banco de dados como superusuário ou como proprietário. Utilize sempre usuários, ajustados com privilégios bastante limitados.

  • Verifique se uma dada entrada tem o tipo de dado esperado. O PHP tem uma vasta área de funções de validação de formulários, a mais simples destas é Funções de Variáveis e in Character Type Functions (ex is_numeric(), ctype_digit() respectivamente) e mais adiante temos suporte a Expressões Regulares Perl compatible.

  • Se a aplicação espera por uma entrada numérica, considere a verificação dos dados com is_numeric(), ou mudando o seu tipo usandos settype(), ou utilize sua representação numérica por sprintf().

    Exemplo 15-10. Uma forma mais segura de compor uma solicitação para paginar

    settype($offset, 'integer');
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

// por favor note que %d no formato de string, usando %s seria insignificante
$query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                 $offset);

  • Ponha entre aspas cada entrada não numérica do usuário que é passada para o banco de dados com addslashes() ou addcslashes(). Veja O primeiro exemplo. Conforme mostrado no exemplo, por aspas dentro da parte estática da solicitação não é o bastante, e pode ser facilmente crackeado.

  • Não imprima nenhuma informação específica do banco de dados, especialmente sobre o esquema, através de todos os recursos. Veja Também Do not print out any database specific information, especially about the schema, by fair means or foul. See also Reportando Erro e Manipulação de Erro e Funções de Logging (registrar atividades ocorridas no computador).

  • Você pode utilizar procedimentos guardados e cursores definidos previamente para resumir acessos a dados assim que os usuários não acessem as tabelas ou views diretamente, mas esta solução tem outros impactos.

Além destes, você se beneficia de solicitações de logging, ou dentro de seu script ou pelo próprio banco de dados, se ele suportar logging. Obviamente, o logging está indisponível para impedir qualquer tentativa prejudicial, mas ele pode ser útil para rastrear qual aplicação está sendo driblada. O log não é util por si só, mas sim as informações que ele contém. Quanto mais detalhes melhor.

Anterior | Principal | Próxima
Segurança de sistema de arquivos | Acima | Relatório de Erro


Relatório de Erro

Com a segurança do PHP, há dois lados para relatório de erro. Um é benéfico para aumentar a segurança, o outro é prejudicial.

Uma tática de ataque padrão envolve traçar o perfil de um sistema inserindo dados impróprios, e verificando os tipos, e contexto dos erros que são exibidas. Isto permite ao cracker examinar as informações sobre o servidor, para determinar possíveis fraquezas. Por exemplo, se um hacker colheu informações sobre uma página anterior a uma submissão de formulário, eles podem tentar cancelar variáveis, ou modificá-las:

Exemplo 15-11. Atacando Variáveis com uma páginca HTML personalizada

<form method="Post"
action="attacktarget?username=badfoo&password=badfoo">
<input type="hidden" name="username" value="badfoo" />
<input type="hidden" name="password" value="badfoo" />
</form>

Os erros do PHP que são exibidos normalmente, podem ser bastante úteis para um desenvolvedor que está tentando debugar um script, indicando tais erros conforme a função ou o arquivo que falhe, o PHP guarda o arquivo que fracassou e o número da linha que houve a falha. Está é toda a informação que pode ser explorada. Não é incomum para um desenvolvedor de php utilizar show_source(), highlight_string(), ou highlight_file() como uma medida de verificação de bugs, mas em um site online, isto pode expor variáveis escondidas, sintaxe que não foi verificada, e outras informações perigosas. Especialmente perigoso é rodar o código de fontes conhecidos com debugadores imbutidos, ou usando técnicas de debugging conhecidas. Se o atacante pode determinar qual é a técnica comum que você está usando, ele pode tentar forçar uma página, enviando várias strings de debugging comuns:

Exemplo 15-12. Explorando variáveis de debugging comuns

<form method="Post"
action="attacktarget?errors=Y&amp;showerrors=1&amp;debug=1">
<input type="hidden" name="errors" value="Y" />
<input type="hidden" name="showerrors" value="1" />
<input type="hidden" name="debug" value="1" />
</form>

Sem ligação com o método de manipulação de erro, a habilidade de investigar um sistema a procura de erros conduz o atacante a mais informação.

Por exemplo, o estilo extremo de um erro de PHP genérico indica que um sistema está rodando PHP. Se o atacante estava procurando uma página .html, e procurou investigar pelo back-end (procurar por fraquezas conhecidas no sistema), inserindo nele dados errados ele pode estar apto a determinar que o sistema foi construído com PHP.

Uma função de erro pode indicar se um sistema pode estar rodando um gerenciador específico de banco de dados, ou dar dicas de como um site está programado ou projetado. Isto leva em consideração uma investigação mais profunda dentro das portas do banco de dados abertas, ou a procura por bugs específicos ou fraquezas em uma página web. Inserindo diferentes pedaços de dados ruins, por exemplo, um atacante pode determinar a ordem de autenticação em um script, (pelo do número da linha dos erros) tão bem como investigar ações que podem ser exploradas em diferentes localizações no script.

Um sistema de arquivos ou erros gerais de PHP podem indicar quais permissões o servidor web possui, bem como a estrutura e organização dos arquivos no servidor web. O código de erro esrito pelo desenvolvedor pode agravar este problema, conduzindo a uma exploração fácil de dados anteriormente "escondidos".

Há três soluções principais para este assunto. A primeiro é examinar todas as funções, e tentar compensar pelo volume de erros. A segunda é desabilitar exibição de erros completamente no código em execução. A terceira é usar funções de manipulação de erros personalizadas do PHP para criar seu próprio manipulador de erro. Dependendo de sua política de segurança, você pode achar que todas as três são aplicáveis a sua situação.

Uma forma de entender este assunto rapidamente é fazer uso do próprio relatório de erros do PHP error_reporting(), para te ajudar dar segurança a seu código, anterior ao planejamento, com E_ALL, você pode rapidamente encontrar áreas onde suas variáveis podem ser abertas para envenenamento ou modificação de outras maneiras. Uma vez que você já planejou, com o uso de E_NONE, você isola seu código de investidas.

Exemplo 15-13. Encontrando variáveis perigosas com E_ALL

<?php
if ($username) {  // Não inicializada ou verificada antes do uso
    $good_login = 1;
}
if ($good_login == 1) { // Se o teste acima falha, não inicializou ou verificou antes do uso
    readfile ("/highly/sensitive/data/index.html");
}
?>

Anterior | Principal | Próxima
Segurança de Bando de Dados | Acima | Usando Register Globals


Usando Register Globals

Talvez a mudança mais controversa no PHP é quando o valor padrão para a diretiva do PHP register_globals passou de ON para OFF no PHP 4.2.0. Confiança nesta está diretiva foi bastante pública e muitas pessoas nem mesmo sabiam que ela existia e assumiam que ela é apenas a forma como o PHP trabalha. Esta página irá explicar como alguém pode escrever um código inseguro com esta diretiva, mas mantenha em mente que a diretiva por si só não é insegura, mas o seu uso incorreto sim.

Quando on, register_globals injetará (veneno) em seus scripts todos os tipos de variáveis, como variáveis request de formulários HTML. Isto junta-se com o fato deo PHP não exigir inicialização de variáveis siginifica que escrever códigos inseguros é muito mais fácil. Não foi uma decisão difícil, mas a comunidade PHP decidiu, por definição, desabilitar esta diretiva. Quando on, as pessoas usavam variáveis ainda sem saber realmente, com certeza, de onde elas vinham e podiam apenas supor. Variáveis internas que estão definidas no próprio script conseguem se misturar com dados requisitados enviados pelos usuários e desabilitando register_globals muda isto. Vamos demonstrar com um exemplo de mal uso de register_globals:

Exemplo 15-14. Exemplo de uso incorreto com register_globals = on

<?php
// definir $authorized = true apenas se o usuário está autenticado
if (authenticated_user()) {
    $authorized = true;
}

// Por isso nós primeiro não inicializamos $authorized como false, isto poderia
// ser definido através de register_globals, como por GET auth.php?authorized=1
// então, qualquer um pode ser visto como autenticado!
if ($authorized) {
    include "/highly/sensitive/data.php";
}
?>

Quando register_globals = on, nossa lógica acima pode ser comprometida. Quando off, $authorized não pode ser setada via request portanto isto é mais agradável, apesar disso é realmente uma boa prática de programação inicializar as variáveis primeiro. Por exemplo, em nosso exemplo acima nós poderíamos ter feito primeiro $authorized = false. Fazendo isto primeiro significa que nosso código acima trabalharia com register_globals on ou off enquanto usuários, por definição, estariam desautorizados.

Um outro exemplo é aquele das sessões. Quando register_globals = on, nós poderíamos também usar $username em nosso exemplo abaixo, mas novamente você deve imaginar que $username poderia, também, vir de outros meios, tal como GET (pela URL).

Exemplo 15-15. Exemplo de uso de sessões com register_globals on ou off

<?php
// Nós saberíamos de onde $username veio, mas fazer com $_SESSION é
// para dados de sessão
if (isset($_SESSION['username'])) {

    echo "Olá <b>{$_SESSION['username']}</b>";

} else {

    echo "Olá <b>Guest</b><br />";
    echo "Você gostaria de logar?";

}
?>

É até possível tomar medidas preventivas para quando a formação de variável está sob tentativa. Se você já sabe de antemão de onde a variável está vindo, você pode ver se os dados submetidos está vindo de um tipo de submissão impróprio. Enquanto não está garantido que dados não foram formados, ele exige a um atacante que advinhe o tipo correto de formação da variável. Se você toma cuidado de onde os dados requisitados vêm, você pode usar $_REQUEST já que ele contém um misto de dados GET, POST e COOKIE. Veja também a seção do manual sobre usando variáveis externas do PHP.

Exemplo 15-16. Detectando simples envenamento de variável

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE vem de um cookie.
    // Certifique se de validar os dados de cookies!

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Possível tentativa de transgressão", $_SERVER['REMOTE_ADDR']);
   echo "Violação da segurança, admin foi alertado.";
   exit;

} else {

   // MAGIC_COOKIE não é setado por este REQUEST

}
?>

É claro que, simplesmente desligando register_globals não significa que seu código está seguro. Para cada peça de dados que é submetido, ele também seria verificado de outras formas. Sempre faça a validação de dados de seus usuários e inicialize as suas variáveis! Para verificar por variáveis não inicializadas você pode ligar error_reporting() para mostrar níveis de erros E_NOTICE.

Disponibilidade das superglobais:: Desde o PHP 4.1.0, os arrays superglobais como $_GET , $_POST, $_SERVER, etc. sempre estão carregados. Para mais informações, leia a seção do manual sobre superglobals

Anterior | Principal | Próxima
Relatório de Erro | Acima | Dados Submetidos pelo Usuário


Dados Submetidos pelo Usuário

A maior fraqueza dos muitos programas em PHP não está inerentemente em sua própria linguagem, mas puramente pelo fato do código não está sendo escrito com segurança em mente. Por está razão, você sempre levaria tempo para considerar as implicações de uma dada parte do código, para averiguar o possível dano se uma variável inesperada é submetida nele.

Exemplo 15-17. Uso de Variável Perigosa

<?php
// remove um arquivo de diretório home do usuário... ou talvez
// alguém?
unlink ($evil_var);

// Escreve o log de seus acessos... ou talvez uma entrada  /etc/passwd?
fputs ($fp, $evil_var);

// Executa algo trivial.. ou rm -rf *?
system ($evil_var);
exec ($evil_var);

?>
Você sempre examinaria cuidadosamente seu código para certificar-se que quaisquer variáveis sendo submetidas de um navegador estão sendo verificadas adequadamente, e faça a você mesmo os seguintes questionamentos:

  • Este script afetarár apenas os arquivos intensionados?

  • Dados incomuns ou indesejáveis podem agir?

  • Este script pode ser usado de maneiras sem propósito?

  • Este script pode ser usado com outros scripts de maneira indevida?

  • Quaisquer transações serão adequadamente registradas?

Respondendo adequadamente estas perguntas enquanto escreve seu script, melhor do que depois, você evita uma re-escrita desagradável quando você precisar aumentar sua segurança. you prevent an unfortunate re-write when you need to increase your security. Começando com esta atitude, você não garantirá a segurança de seu sistema, mas você pode ajudar a aumentá-la.

Você pode também querer desligar register_globals, magic_quotes, ou outras configurações convenientes que podem te confundir com a validação, arquivos fontes, ou o valor de certas variáveis. Trabalhando com o PHP no modo error_reporting(E_ALL) pode também ajudar a prevenir você, sobre variáveis sendo usadas antes de serem verificadas ou inicializadas (então você pode se prevenir de dados sendo lançados)

Anterior | Principal | Próxima
Usando Register Globals | Acima | Escondendo o PHP


Escondendo o PHP

Em geral, segurança por obscuridão é uma das mais fracas formas de segurança. Mas em alguns casos, cada pequeno bit extra de segurança é desejável.

Algumas poucas técnicas simples podem ajudar a esconder o PHP, possivelmente atrasando um invasor que está tentando descobrir fraquezas em seu sistema. Setando expose_php = off em seu arquivo php.ini, você reduz a quantidade de informação disponível para ele.

Uma outra tática é configurar os servidores tais como apache para interpretar diferentes tipos de arquivos através do PHP, ou com uma diretiva .htaccess, ou na própria configuração do apache. Você pode então usar extensões de arquivos enganadoras:

Exemplo 15-18. Escondendo PHP fazendo parecer com outra linguagem

# Fazer o código PHP parecer com outros tipos de códigos
AddType application/x-httpd-php .asp .py .pl
Ou escondê-lo completamente:

Exemplo 15-19. Usando tipos desconhecidos para extensões do PHP

# Fazer o código PHP parecer com tipos de códigos desconhecidos
AddType application/x-httpd-php .bop .foo .133t
Ou escondê-lo no código HTML, que tem baixa chance de ser atingido porque todos os HTML serão interpretados pelo PHP:

Exemplo 15-20. Usando tipos de HTML para extensões do PHP

# Fazer todo o código parecer com HTML
AddType application/x-httpd-php .htm .html
Para este exemplo trabalhar efetivamente, você deve renomeiar todos os seus arquivos PHP com as extensões acimas. Apesar dessa ser a forma de segurança através obscuridão, ela é a medida menos preventiva e com algumas desvantagens.

Anterior | Principal | Próxima
Dados Submetidos pelo Usuário | Acima | Permanecendo atualizado


Permanecendo atualizado

O PHP, como outro grande sistema qualquer, está sob constante exames e melhoramentos. Cada nova versão, muitas vezes, incluirá maiores e menores mudanças para aumentar e reparar falhas de segurança, configuração, e outros assuntos que afetarão a completa segurança e estabilidade de seu sistema.

Como outra linguagem e programas de scripting a nível de sistema, a melhor aproximação é atualizar freqüentemente, e ter a consciência da última versão e de suas mudanças.

Anterior | Principal | Próxima
Escondendo o PHP | Acima | Características


Características

Manual do PHP
Anterior Próxima

IV. Características

Índice
16. HTTP authentication with PHP
17. Cookies
18. Gerenciar o upload de arquivos
19. Using remote files
20. Connection handling
21. Persistent Database Connections
22. Safe Mode
23. Utilizando o PHP na linha de comando

Anterior | Principal | Próxima
Permanecendo atualizado |  | HTTP authentication with PHP


HTTP authentication with PHP

Manual do PHP
Anterior Próxima

Capítulo 16. HTTP authentication with PHP

The HTTP Authentication hooks in PHP are only available when it is running as an Apache module and is hence not available in the CGI version. In an Apache module PHP script, it is possible to use the header() function to send an "Authentication Required" message to the client browser causing it to pop up a Username/Password input window. Once the user has filled in a username and a password, the URL containing the PHP script will be called again with the predefined variables PHP_AUTH_USER, PHP_AUTH_PW, and AUTH_TYPE set to the user name, password and authentication type respectively. These predefined variables are found in the $_SERVER and $HTTP_SERVER_VARS arrays. Only "Basic" authentication is supported. See the header() function for more information.

PHP Version Note: Autoglobals, such as $_SERVER, became available in PHP 4.1.0. $HTTP_SERVER_VARS has been available since PHP 3.

An example script fragment which would force client authentication on a page is as follows:

Exemplo 16-1. HTTP Authentication example

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
  }
?>

Compatibility Note: Please be careful when coding the HTTP header lines. In order to guarantee maximum compatibility with all clients, the keyword "Basic" should be written with an uppercase "B", the realm string must be enclosed in double (not single) quotes, and exactly one space should precede the 401 code in the HTTP/1.0 401 header line.

Instead of simply printing out PHP_AUTH_USER and PHP_AUTH_PW, as done in the above example, you may want to check the username and password for validity. Perhaps by sending a query to a database, or by looking up the user in a dbm file.

Watch out for buggy Internet Explorer browsers out there. They seem very picky about the order of the headers. Sending the WWW-Authenticate header before the HTTP/1.0 401 header seems to do the trick for now.

As of PHP 4.3.0, in order to prevent someone from writing a script which reveals the password for a page that was authenticated through a traditional external mechanism, the PHP_AUTH variables will not be set if external authentication is enabled for that particular page and safe mode is enabled. Regardless, REMOTE_USER can be used to identify the externally-authenticated user. So, you can use $_SERVER['REMOTE_USER'].

Configuration Note: PHP uses the presence of an AuthType directive to determine whether external authentication is in effect.

Note, however, that the above does not prevent someone who controls a non-authenticated URL from stealing passwords from authenticated URLs on the same server.

Both Netscape Navigator and Internet Explorer will clear the local browser window's authentication cache for the realm upon receiving a server response of 401. This can effectively "log out" a user, forcing them to re-enter their username and password. Some people use this to "time out" logins, or provide a "log-out" button.

Exemplo 16-2. HTTP Authentication example forcing a new name/password

<?php
  function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "You must enter a valid login ID and password to access this resource\n";
    exit;
  }

  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
   authenticate();
  }
  else {
   echo "<p>Welcome: {$_SERVER['PHP_AUTH_USER']}<br />";
   echo "Old: {$_REQUEST['OldAuth']}";
   echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='post'>\n";
   echo "<input type='hidden' name='SeenBefore' value='1' />\n";
   echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}' />\n";
   echo "<input type='submit' value='Re Authenticate' />\n";
   echo "</form></p>\n";
  }
?>

This behavior is not required by the HTTP Basic authentication standard, so you should never depend on this. Testing with Lynx has shown that Lynx does not clear the authentication credentials with a 401 server response, so pressing back and then forward again will open the resource as long as the credential requirements haven't changed. The user can press the '_' key to clear their authentication information, however.

Also note that until PHP 4.3.3, HTTP Authentication did not work using Microsoft's IIS server with the CGI version of PHP due to a limitation of IIS. In order to get it to work in PHP 4.3.3+, you must edit your IIS configuration "Directory Security". Click on "Edit" and only check "Anonymous Access", all other fields should be left unchecked.

Another limitation is if you're using the IIS module (ISAPI), you may not use the PHP_AUTH_* variables but instead, the variable HTTP_AUTHORIZATION is available. For example, consider the following code: list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

IIS Note:: For HTTP Authentication to work with IIS, the PHP directive cgi.rfc2616_headers must be set to 0 (the default value).

Nota: If safe mode is enabled, the uid of the script is added to the realm part of the WWW-Authenticate header.

Anterior | Principal | Próxima
Características | Acima | Cookies


Cookies

Manual do PHP
Anterior Próxima

Capítulo 17. Cookies

O PHP suporta transparentemente cookies HTTP. Cookies são um mecanismo para guardar dados no navegador remoto possibilitando o acompanhamento ou identificação de usuários que retornam. Você pode criar cookies usando a função setcookie() ou setrawcookie(). Os cookies são uma parte do cabeçalho HTTP, logo setcookie() precisa ser chamada antes que qualquer outro dado seja enviado ao navegador. Esta é a mesma limitação que a função header() tem. Você pode usar as funções de output buferizado para atrasar as impressões do script até que você tenha decidido ou não configurar qualquer cookie ou enviar mais headers.

Qualquer cookie enviado por você para o cliente automaticamente será uma variável do PHP assim como dados de postagens GET ou POST, dependendo dos valores de register_globals e variables_order. Se você deseja assimilar vários valores em um único cookie, simplesmente acrescente [] ao nome do cookie.

No PHP 4.1.0 e posteriores, o array superglobal $_COOKIE sempre estará preenchido com quaisquer cookies enviados do cliente. $HTTP_COOKIE_VARS, existente nas versões anteriores do PHP, também, quando a variável de configuração track_vars estiver ativa. (Esta diretiva é obrigatoriamente ligada a partir do PHP 4.0.3)

Para mais detalhes, incluindo comentários sobre problemas de browsers, veja as funções setcookie() e setrawcookie() .

Anterior | Principal | Próxima
HTTP authentication with PHP | Acima | Gerenciar o upload de arquivos


Gerenciar o upload de arquivos

Manual do PHP
Anterior Próxima

Capítulo 18. Gerenciar o upload de arquivos

Índice
Upload de arquivos com o método POST
Explicação das mensagens de erro
Problemas comuns
Carregando múltiplos arquivos
Suporte ao método PUT

Upload de arquivos com o método POST

O PHP é capaz de receber o upload de qualquer browser que siga a norma RFC-1867 (o que inclui Netscape Navigator 3 ou posterior, Microsoft Internet Explorer 3 com um patch da Microsoft, ou posterior sem patch). Isto permite que se faça o upload de arquivos de texto e binários. Com as funções de autenticação e manipulação de arquivos do PHP, você tem o controle completo de quem pode fazer o upload de arquivo e o que fazer com o arquivo após seu upload.

Nota Sobre Configurações Relacionadas: Veja também file_uploads, upload_max_filesize, upload_tmp_dir, e post_max_size no php.ini

Note que o PHP também suporta o método PUT para upload de arquivos como o usado por Netscape Composer e W3C's Amaya clients. Veja Suporte ao Método Put para maiores detalhes.

Uma tela para upload de arquivo pode ser criada com um formulário especial parecido com este:

Exemplo 18-1. Formulário para Upload de Arquivo

<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Enviar Arquivo">
</form>

A "_URL_" no exemplo acima deve ser substituida e apontar para um arquivo PHP. O campo escondido MAX_FILE_SIZE (medido em bytes) deve preceder o campo de input do arquivo, e seu valor é o tamanho limite aceito para o arquivo. Também tenha certeza que seu formulário de upload de arquivo tenha enctype="multipart/form-data" em outro caso o upload do arquivo não irá funcionar.

Atenção

O valor de MAX_FILE_SIZE é um aviso para o browser. É fácil contornar este limite. Então não conte que o browser irá obedecer a sua vontade. O que foi estabelecido para maximum-size no PHP não pode ser enganado. Mas você deve adicionar MAX_FILE_SIZE em qualquer caso, já que salva os usuários do problema de esperar por um grande arquivo ser transferido somente para descobrir depois de tudo que ele é muito grande.

As variáveis definidas para o upload de arquivos são diferentes dependendo da versão e da configuração. A autoglobal $_FILES existe desde o PHP 4.1.0. A array $HTTP_POST_FILES existe desde o PHP 4.0.0. Estas array irão conter toda a informação do upload do arquivo. Usar $_FILES é preferido. Se a opção register_globals é on, os nomes de variáveis relacionados também existirão. O padrão de register_globals é off desde o PHP 4.2.0.

Os conteúdos de $_FILES do nosso script de exemplo é como segue. Note que isso assume que o nome do upload do arquivo é userfile, como o usado no exemplo acima. Pode ser qualquer nome.

$_FILES['userfile']['name']

O nome original do arquivo no computador do usuário.

$_FILES['userfile']['type']

O tipo mime do arquivo, se o browser deu esta informação. Um exemplo pode ser "image/gif".

$_FILES['userfile']['size']

O tamanho, em bytes, do arquivo.

$_FILES['userfile']['tmp_name']

O nome temporário do arquivo, como foi guardado no servidor.

$_FILES['userfile']['error']

O código de erro associado a este upload de arquivo. ['error'] foi adicionado no PHP 4.2.0

Nota: Em versões anteriores a 4.1.0 o nome era $HTTP_POST_FILES e não é uma variável autoglobal como $_FILES é. PHP 3 não suporta $HTTP_POST_FILES.

Quando register_globals esta em on no php.ini, variáveis adicionais estão disponíveis. Por exemplo, $userfile_name será igual a $_FILES['userfile']['name'], $userfile_type será igual a $_FILES['userfile']['type'], etc. Lembre-se que desde o PHP 4.2.0, o padrão para register_globals é off. É preferível não depender desta opção.

Os arquivos serão guardados no diretório temporário do servidor, a menos que outro lugar seja especificado com a opção upload_tmp_dir no php.ini. O diretório padrão do servidor pode ser mudado se mudando o valor da variável de ambiente TMPDIR no ambiente onde o PHP esta sendo executado PHP. Mudando-a com putenv() de um script PHP não irá funcionar. Esta variável de ambiente também pode ser usada para se ter certeza que outras operações estão funcionando no arquivo do upload.

Note que deve se definir upload_temp_dir no php.ini ou TMPDIR, não podendo estarem ambos vazios, sendo recomendado no mínimo upload_tmp_dir.

Exemplo 18-2. Validando o upload de arquivos

Veja também as funções is_uploaded_file() e move_uploaded_file() para maiores informações. O seguinte exemplo irá processar o envio de um arquivo que vem de um formulário.

<?php
// Nas versões anteriores a 4.1.0, $HTTP_POST_FILES deve ser usado ao invés de $_FILES.
// Nas versões anteriores a 4.0.3, use copy() e is_uploaded_file() ao invés move_uploaded_file

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
    print "O arquivo é valido e foi carregado com sucesso. Aqui esta alguma informação:\n";
    print_r($_FILES);
} else {
    print "Possivel ataque de upload! Aqui esta alguma informação:\n";
    print_r($_FILES);
}
print "</pre>";
?>

O script PHP que irá receber o arquivo do upload deve implementar qualquer lógica que for necessária para determinar o que deve ser feito com o arquivo do upload. Você pode, por exemplo, usar a variável $_FILES['userfile']['size'] para descartar qualquer arquivo que seja muito pequeno ou muito grande. Você pode usar a variável $_FILES['userfile']['type'] que não sejam de um certo tipo. Desde o PHP 4.2.0, você pode usar $_FILES['userfile']['error'] e planejar a sua lógica de acordo com os códigos de erro. Qualquer que seja a lógica, você deve excluir o arquivo do diretório temporário ou move-lo para outro lugar.

Se nenhum arquivo for selecionado em seu formulário, o PHP irá retornar $_FILES['userfile']['size'] como 0, e $_FILES['userfile']['tmp_name'] como none.

O arquivo será excluído do diretório temporário ao fim do script se não tiver sido movido ou renomeado.

Anterior | Principal | Próxima
Cookies | Acima | Explicação das mensagens de erro


Explicação das mensagens de erro

Desde o PHP 4.2.0, PHP retorna um código de erro apropriado na array do arquivo. O código de erro pode ser encontrado em ['error'] na array que é criada durante o upload do arquivo. Em outras palavras, o erro deve ser encontrado em $_FILES['userfile']['error'].

UPLOAD_ERR_OK

Valor: 0; não houve erro, o upload foi bem sucedido.

UPLOAD_ERR_INI_SIZE

Valor 1; O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.

UPLOAD_ERR_FORM_SIZE

Valor: 2; O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário html.

UPLOAD_ERR_PARTIAL

Valor: 3; o upload do arquivo foi feito parcialmente.

UPLOAD_ERR_NO_FILE

Valor: 4; Não foi feito o upload do arquivo.

Nota: Estas tornaram-se constantes no PHP 4.3.0

Anterior | Principal | Próxima
Gerenciar o upload de arquivos | Acima | Problemas comuns


Problemas comuns

O item MAX_FILE_SIZE não pode especificar um tamanho de arquivo com tamanho maior do que o especificado no php.ini em upload_max_filesize. O padrão é 2 Megabytes.

Se o limite de memória esta ativado, um maior memory_limit pode ser necessário. tenha certeza de estabelecer um memory_limit grande o suficiente.

Se max_execution_time for muito pequeno, a execução do script pode ultrapassar o limite de tempo. Tenha certeza de estabelecer um max_execution_time grande o suficiente.

Nota: max_execution_time somente afeta o tempo de execução do script em sí. Qualquer tempo gasto com atividades que aconteçam fora da execução do script como chamadas de sistema usando system(), a função sleep(), pesquisas em banco de dados, tempo gasto pelo processo de carregar(upload) um arquivo, etc. nâo é incluso na hora de determinar o lmite de tempo que o script esta sendo executado.

Se post_max_size for muito pequeno, arquivos grandes não poderão ser carregados. Tenha certeza de estabelecer post_max_size grande o suficiente.

Não validar o arquivo que você esta operando pode permitir que os usuários acessem informações sensíveis em outros diretórios.

Por favor note que o CERN httpd aparenta cortar tudo iniciando após o primeiro espaço do header content-type que ele recebe do cliente. Se for este o caso, CERN httpd não irá suportar o upload de arquivos.

Devido ao grande número de estilos de listagem de diretórios nós não podemos garantir que arquivos com nomes exóticos(como que contém espaço) sejam manuseados corretamente.

Anterior | Principal | Próxima
Explicação das mensagens de erro | Acima | Carregando múltiplos arquivos


Carregando múltiplos arquivos

Múltiplos arquivos podem ser carregados usando-se diferentes name para input.

Também é possível carregar vários arquivos simultaneamente e ter a informação organizada automaticamente para você em arrays. Para fazer assim, você precisa usar a mesma sintaxe no formulário HTML que você usa para múltiplos selects e checkboxes:

Nota: O Suporte para carregar múltiplos arquivos foi adicionado na versão 3.0.10.

Exemplo 18-3. Carregando múltiplos arquivos

<form action="file-upload.php" method="POST" enctype="multipart/form-data">
  Send these files:<br>
  <input name="userfile[]" type="file"><br>
  <input name="userfile[]" type="file"><br>
  <input type="submit" value="Send files">
</form>

Quando o formulário acima é submetido, as matrizes $_FILES['userfile'], $_FILES['userfile']['name'], e $_FILES['userfile']['size'] serão inicializadas (assim como $HTTP_POST_FILES para versões do PHP anterior a 4.1.0). Quando register_globals esta em on, globals para os arquivos carregados também são inicializadas. Cada um destes será uma array indexada numericamente dos valores apropriados para os arquivos submetidos.

Por exemplo, assuma que os nomes de arquivos tenham sido submetidos /home/test/review.html e /home/test/xwp.out. Neste caso, $_FILES['userfile']['name'][0] deve conter o valor review.html, e $_FILES['userfile']['name'][1] deve conter o valor xwp.out. Similarmente, $_FILES['userfile']['size'][0] deve conter o tamanho de review.html, e assim por diante.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0], e $_FILES['userfile']['type'][0] também são definidas.

Anterior | Principal | Próxima
Problemas comuns | Acima | Suporte ao método PUT


Suporte ao método PUT

O suporte ao método PUT mudou entre PHP 3 e PHP 4. No PHP 4, deve se usar a entrada padrão para ler os conteúdos de um PUT.

Exemplo 18-4. Salvando arquivos HTTP PUT com o PHP 4

<?php
/* PUT data vem do stdin stream */
$putdata = fopen("php://stdin","r");

/* Abre um arquivo para escrita */
$fp = fopen("myputfile.ext","w");

/* Lê os dados 1KB de cada vez
   e escreve no arquivo */
while ($data = fread($putdata,1024))
  fwrite($fp,$data);

/* Fecha os streams */
fclose($fp);
fclose($putdata);
?>

Nota: Toda a documentação abaixo aplica-se ao PHP 3 somente.

PHP prove suporte para o método HTTP PUT usado por clientes como Netscape Composer e W3C Amaya. Requisições PUT são muito mais simples do que o upload de arquivo e se parecem com isto:

PUT /path/filename.html HTTP/1.1

Isto normalmente indica que o cliente remoto gostaria de salvar o conteúdo que se segue como: /path/filename.html na sua arvore web. É obvio que não é uma boa idéia para o Apache ou o PHP automaticamente permitir que todos possam sobrescrever arquivos na sua arvore web. Então, para manusear este tipo de requisição você tem primeiro que dizer ao seu servidor web que você quer que um certo script PHP cuide da requisição. No apache você faz isto com a diretiva Script. Pode ser colocada praticamente em qualquer lugar do seu arquivo de configuração do Apache. Um lugar comum é dentro de um bloco <Directory> ou talvez dentro de um bloco <Virtualhost>. Uma linha como esta deve fazer o truque:

Script PUT /put.php

Isto diz para o apache enviar todas as requisições PUT que estejam no contexto que você colocou esta linha para o script put.php. Isto assume, é claro, que você tem o PHP ativado para a extensão .php e que o PHP esta ativo.

Dentro do seu arquivo put.php você deve então fazer algo parecido com isto:

<?php copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?>

Isto deve copiar o arquivo para a localização requisitada pelo cliente remoto. Você provavelmente quer fazer alguma checagem e/ou autenticar o usuário antes de fazer esta copia de arquivo. O único truque aqui é que quando o php vê uma requisição com o método PUT ele guarda o arquivo carregado em um arquivo temporário justo como se fosse manuseado pelo método POST. Quando a requisição termina, este arquivo temporário é apagado. Assim seu script de manuseio do PUT tem que copiar este arquivo em outro lugar. O nome deste arquivo temporário esta na variável $PHP_PUT_FILENAME, e você pode ver o nome de arquivo de destino sugerido em $REQUEST_URI (deve variar em servidores diferentes do apache). Este nome do arquivo de destino é o que o cliente remoto especificou. Você não tem que ouvir o cliente. Você pode, por exemplo, copiar todos os arquivos carregados para um diretório especial de uploads.

Anterior | Principal | Próxima
Carregando múltiplos arquivos | Acima | Using remote files


Using remote files

Manual do PHP
Anterior Próxima

Capítulo 19. Using remote files

As long as allow_url_fopen is enabled in php.ini, you can use HTTP and FTP URLs with most of the functions that take a filename as a parameter. In addition, URLs can be used with the include(), include_once(), require() and require_once() statements. See Apêndice J for more information about the protocols supported by PHP.

Nota: In PHP 4.0.3 and older, in order to use URL wrappers, you were required to configure PHP using the configure option --enable-url-fopen-wrapper.

Nota: The Windows versions of PHP earlier than PHP 4.3 did not support remote file accessing for the following functions: include(), include_once(), require(), require_once(), and the imagecreatefromXXX functions in the Referência XLI, Image Functions extension.

For example, you can use this to open a file on a remote web server, parse the output for the data you want, and then use that data in a database query, or simply to output it in a style matching the rest of your website.

Exemplo 19-1. Getting the title of a remote page

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* This only works if the title and its tags are on one line */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

You can also write to files on an FTP server (provided that you have connected as a user with the correct access rights). You can only create new files using this method; if you try to overwrite a file that already exists, the fopen() call will fail.

To connect as a user other than 'anonymous', you need to specify the username (and possibly password) within the URL, such as 'ftp://user:password@ftp.example.com/path/to/file'. (You can use the same sort of syntax to access files via HTTP when they require Basic authentication.)

Exemplo 19-2. Storing data on a remote server

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Unable to open remote file for writing.\n";
    exit;
}
/* Write the data here. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Nota: You might get the idea from the example above that you can use this technique to write to a remote log file. Unfortunately that would not work because the fopen() call will fail if the remote file already exists. To do distributed logging like that, you should take a look at syslog().

Anterior | Principal | Próxima
Suporte ao método PUT | Acima | Connection handling


Connection handling

Manual do PHP
Anterior Próxima

Capítulo 20. Connection handling

Nota: The following applies to 3.0.7 and later.

Internally in PHP a connection status is maintained. There are 3 possible states:

  • 0 - NORMAL

  • 1 - ABORTED

  • 2 - TIMEOUT

When a PHP script is running normally the NORMAL state, is active. If the remote client disconnects the ABORTED state flag is turned on. A remote client disconnect is usually caused by the user hitting his STOP button. If the PHP-imposed time limit (see set_time_limit()) is hit, the TIMEOUT state flag is turned on.

You can decide whether or not you want a client disconnect to cause your script to be aborted. Sometimes it is handy to always have your scripts run to completion even if there is no remote browser receiving the output. The default behaviour is however for your script to be aborted when the remote client disconnects. This behaviour can be set via the ignore_user_abort php.ini directive as well as through the corresponding "php_value ignore_user_abort" Apache .conf directive or with the ignore_user_abort() function. If you do not tell PHP to ignore a user abort and the user aborts, your script will terminate. The one exception is if you have registered a shutdown function using register_shutdown_function(). With a shutdown function, when the remote user hits his STOP button, the next time your script tries to output something PHP will detect that the connection has been aborted and the shutdown function is called. This shutdown function will also get called at the end of your script terminating normally, so to do something different in case of a client disconnect you can use the connection_aborted() function. This function will return TRUE if the connection was aborted.

Your script can also be terminated by the built-in script timer. The default timeout is 30 seconds. It can be changed using the max_execution_time php.ini directive or the corresponding "php_value max_execution_time" Apache .conf directive as well as with the set_time_limit() function. When the timer expires the script will be aborted and as with the above client disconnect case, if a shutdown function has been registered it will be called. Within this shutdown function you can check to see if a timeout caused the shutdown function to be called by calling the connection_timeout() function. This function will return TRUE if a timeout caused the shutdown function to be called.

One thing to note is that both the ABORTED and the TIMEOUT states can be active at the same time. This is possible if you tell PHP to ignore user aborts. PHP will still note the fact that a user may have broken the connection, but the script will keep running. If it then hits the time limit it will be aborted and your shutdown function, if any, will be called. At this point you will find that connection_timeout() and connection_aborted() return TRUE. You can also check both states in a single call by using the connection_status(). This function returns a bitfield of the active states. So, if both states are active it would return 3, for example.

Anterior | Principal | Próxima
Using remote files | Acima | Persistent Database Connections


Persistent Database Connections

Manual do PHP
Anterior Próxima

Capítulo 21. Persistent Database Connections

Persistent connections are links that do not close when the execution of your script ends. When a persistent connection is requested, PHP checks if there's already an identical persistent connection (that remained open from earlier) - and if it exists, it uses it. If it does not exist, it creates the link. An 'identical' connection is a connection that was opened to the same host, with the same username and the same password (where applicable).

People who aren't thoroughly familiar with the way web servers work and distribute the load may mistake persistent connects for what they're not. In particular, they do not give you an ability to open 'user sessions' on the same link, they do not give you an ability to build up a transaction efficiently, and they don't do a whole lot of other things. In fact, to be extremely clear about the subject, persistent connections don't give you any functionality that wasn't possible with their non-persistent brothers.

Why?

This has to do with the way web servers work. There are three ways in which your web server can utilize PHP to generate web pages.

The first method is to use PHP as a CGI "wrapper". When run this way, an instance of the PHP interpreter is created and destroyed for every page request (for a PHP page) to your web server. Because it is destroyed after every request, any resources that it acquires (such as a link to an SQL database server) are closed when it is destroyed. In this case, you do not gain anything from trying to use persistent connections -- they simply don't persist.

The second, and most popular, method is to run PHP as a module in a multiprocess web server, which currently only includes Apache. A multiprocess server typically has one process (the parent) which coordinates a set of processes (its children) who actually do the work of serving up web pages. When a request comes in from a client, it is handed off to one of the children that is not already serving another client. This means that when the same client makes a second request to the server, it may be served by a different child process than the first time. When opening a persistent connection, every following page requesting SQL services can reuse the same established connection to the SQL server.

The last method is to use PHP as a plug-in for a multithreaded web server. Currently PHP 4 has support for ISAPI, WSAPI, and NSAPI (on Windows), which all allow PHP to be used as a plug-in on multithreaded servers like Netscape FastTrack (iPlanet), Microsoft's Internet Information Server (IIS), and O'Reilly's WebSite Pro. The behavior is essentially the same as for the multiprocess model described before. Note that SAPI support is not available in PHP 3.

If persistent connections don't have any added functionality, what are they good for?

The answer here is extremely simple -- efficiency. Persistent connections are good if the overhead to create a link to your SQL server is high. Whether or not this overhead is really high depends on many factors. Like, what kind of database it is, whether or not it sits on the same computer on which your web server sits, how loaded the machine the SQL server sits on is and so forth. The bottom line is that if that connection overhead is high, persistent connections help you considerably. They cause the child process to simply connect only once for its entire lifespan, instead of every time it processes a page that requires connecting to the SQL server. This means that for every child that opened a persistent connection will have its own open persistent connection to the server. For example, if you had 20 different child processes that ran a script that made a persistent connection to your SQL server, you'd have 20 different connections to the SQL server, one from each child.

Note, however, that this can have some drawbacks if you are using a database with connection limits that are exceeded by persistent child connections. If your database has a limit of 16 simultaneous connections, and in the course of a busy server session, 17 child threads attempt to connect, one will not be able to. If there are bugs in your scripts which do not allow the connections to shut down (such as infinite loops), the database with only 16 connections may be rapidly swamped. Check your database documentation for information on handling abandoned or idle connections.

Atenção

There are a couple of additional caveats to keep in mind when using persistent connections. One is that when using table locking on a persistent connection, if the script for whatever reason cannot release the lock, then subsequent scripts using the same connection will block indefinitely and may require that you either restart the httpd server or the database server. Another is that when using transactions, a transaction block will also carry over to the next script which uses that connection if script execution ends before the transaction block does. In either case, you can use register_shutdown_function() to register a simple cleanup function to unlock your tables or roll back your transactions. Better yet, avoid the problem entirely by not using persistent connections in scripts which use table locks or transactions (you can still use them elsewhere).

An important summary. Persistent connections were designed to have one-to-one mapping to regular connections. That means that you should always be able to replace persistent connections with non-persistent connections, and it won't change the way your script behaves. It may (and probably will) change the efficiency of the script, but not its behavior!

See also fbsql_pconnect(),
ibase_pconnect(), ifx_pconnect(),
ingres_pconnect(),
msql_pconnect(), mssql_pconnect(),
mysql_pconnect(), ociplogon(),
odbc_pconnect(), ora_plogon(),
pfsockopen(), pg_pconnect(), and
sybase_pconnect().

Anterior | Principal | Próxima
Connection handling | Acima | Safe Mode


Safe Mode

Manual do PHP
Anterior Próxima

Capítulo 22. Safe Mode

Índice
Security and Safe Mode
Functions restricted/disabled by safe mode

The PHP safe mode is an attempt to solve the shared-server security problem. It is architecturally incorrect to try to solve this problem at the PHP level, but since the alternatives at the web server and OS levels aren't very realistic, many people, especially ISP's, use safe mode for now.

Security and Safe Mode

Tabela 22-1. Security and Safe Mode Configuration Directives

Name | Default | Changeable
safe_mode | "0" | PHP_INI_SYSTEM
safe_mode_gid | "0" | PHP_INI_SYSTEM
safe_mode_include_dir | NULL | PHP_INI_SYSTEM
safe_mode_exec_dir | "" | PHP_INI_SYSTEM
safe_mode_allowed_env_vars | PHP_ | PHP_INI_SYSTEM
safe_mode_protected_env_vars | LD_LIBRARY_PATH | PHP_INI_SYSTEM
open_basedir | NULL | PHP_INI_SYSTEM
disable_functions | "" | PHP_INI_SYSTEM
disable_classes | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Breve descrição das diretivas de configuração.

safe_mode boolean

Whether to enable PHP's safe mode. Read the Security chapter for more information.

safe_mode_gid boolean

By default, Safe Mode does a UID compare check when opening files. If you want to relax this to a GID compare, then turn on safe_mode_gid. Whether to use UID (FALSE) or GID (TRUE) checking upon file access.

safe_mode_include_dir string

UID/GID checks are bypassed when including files from this directory and its subdirectories (directory must also be in include_path or full path must including).

As of PHP 4.2.0, this directive can take a colon (semi-colon on Windows) separated path in a fashion similar to the include_path directive, rather than just a single directory.

The restriction specified is actually a prefix, not a directory name. This means that "safe_mode_include_dir = /dir/incl" also allows access to "/dir/include" and "/dir/incls" if they exist. When you want to restrict access to only the specified directory, end with a slash. For example: "safe_mode_include_dir = /dir/incl/"

safe_mode_exec_dir string

If PHP is used in safe mode, system() and the other functions executing system programs refuse to start programs that are not in this directory.

safe_mode_allowed_env_vars string

Setting certain environment variables may be a potential security breach. This directive contains a comma-delimited list of prefixes. In Safe Mode, the user may only alter environment variables whose names begin with the prefixes supplied here. By default, users will only be able to set environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).

Nota: If this directive is empty, PHP will let the user modify ANY environment variable!

safe_mode_protected_env_vars string

This directive contains a comma-delimited list of environment variables that the end user won't be able to change using putenv(). These variables will be protected even if safe_mode_allowed_env_vars is set to allow to change them.

open_basedir string

Limit the files that can be opened by PHP to the specified directory-tree, including the file itself. This directive is NOT affected by whether Safe Mode is turned On or Off.

When a script tries to open a file with, for example, fopen() or gzopen(), the location of the file is checked. When the file is outside the specified directory-tree, PHP will refuse to open it. All symbolic links are resolved, so it's not possible to avoid this restriction with a symlink.

The special value . indicates that the directory in which the script is stored will be used as base-directory.

Under Windows, separate the directories with a semicolon. On all other systems, separate the directories with a colon. As an Apache module, open_basedir paths from parent directories are now automatically inherited.

The restriction specified with open_basedir is actually a prefix, not a directory name. This means that "open_basedir = /dir/incl" also allows access to "/dir/include" and "/dir/incls" if they exist. When you want to restrict access to only the specified directory, end with a slash. For example: "open_basedir = /dir/incl/"

Nota: Support for multiple directories was added in 3.0.7.

The default is to allow all files to be opened.

disable_functions string

This directive allows you to disable certain functions for security reasons. It takes on a comma-delimited list of function names. disable_functions is not affected by Safe Mode.

This directive must be set in php.ini For example, you cannot set this in httpd.conf.

disable_classes string

This directive allows you to disable certain classes for security reasons. It takes on a comma-delimited list of class names. disable_classes is not affected by Safe Mode.

This directive must be set in php.ini For example, you cannot set this in httpd.conf.

Availability note: This directive became available in PHP 4.3.2

See also: register_globals, display_errors, and log_errors

When safe_mode is on, PHP checks to see if the owner of the current script matches the owner of the file to be operated on by a file function. For example:
-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
Running this script.php
<?php
 readfile('/etc/passwd');
?>
results in this error when safe mode is enabled:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

However, there may be environments where a strict UID check is not appropriate and a relaxed GID check is sufficient. This is supported by means of the safe_mode_gid switch. Setting it to On performs the relaxed GID checking, setting it to Off (the default) performs UID checking.

If instead of safe_mode, you set an open_basedir directory then all file operations will be limited to files under the specified directory For example (Apache httpd.conf example):
<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
If you run the same script.php with this open_basedir setting then this is the result:
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

You can also disable individual functions. Note that the disable_functions directive can not be used outside of the php.ini file which means that you cannot disable functions on a per-virtualhost or per-directory basis in your httpd.conf file. If we add this to our php.ini file:
disable_functions readfile,system
Then we get this output:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Anterior | Principal | Próxima
Persistent Database Connections | Acima | Functions restricted/disabled by safe mode


Functions restricted/disabled by safe mode

This is a still probably incomplete and possibly incorrect listing of the functions limited by safe mode.

Tabela 22-2. Safe mode limited functions

Function | Limitations
dbmopen() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
dbase_open() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
filepro() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
filepro_rowcount() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
filepro_retrieve() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
ifx_* | sql_safe_mode restrictions, (!= safe mode)
ingres_* | sql_safe_mode restrictions, (!= safe mode)
mysql_* | sql_safe_mode restrictions, (!= safe mode)
pg_lo_import() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
posix_mkfifo() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
putenv() | Obeys the safe_mode_protected_env_vars and safe_mode_allowed_env_vars ini-directives. See also the documentation on putenv()
move_uploaded_file() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
chdir() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
dl() | Esta função é desabilitada no safe-mode
backtick operator | Esta função é desabilitada no safe-mode
shell_exec() (functional equivalent of backticks) | Esta função é desabilitada no safe-mode
exec() | You can only execute executables within the safe_mode_exec_dir. For practical reasons it's currently not allowed to have .. components in the path to the executable.
system() | You can only execute executables within the safe_mode_exec_dir. For practical reasons it's currently not allowed to have .. components in the path to the executable.
passthru() | You can only execute executables within the safe_mode_exec_dir. For practical reasons it's currently not allowed to have .. components in the path to the executable.
popen() | You can only execute executables within the safe_mode_exec_dir. For practical reasons it's currently not allowed to have .. components in the path to the executable.
fopen() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
mkdir() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
rmdir() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
rename() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
unlink() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
copy() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (on source and target)
chgrp() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
chown() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
chmod() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. In addition, you cannot set the SUID, SGID and sticky bits
touch() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.
symlink() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (note: only the target is checked)
link() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (note: only the target is checked)
apache_request_headers() | In safe mode, headers beginning with 'authorization' (case-insensitive) will not be returned.
header() | In safe mode, the uid of the script is added to the realm part of the WWW-Authenticate header if you set this header (used for HTTP Authentication).
PHP_AUTH variables | In safe mode, the variables PHP_AUTH_USER, PHP_AUTH_PW, and AUTH_TYPE are not available in $_SERVER. Regardless, you can still use REMOTE_USER for the USER. (note: only affected since PHP 4.3.0)
highlight_file(), show_source() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (note: only affected since PHP 4.2.1)
parse_ini_file() | Verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (note: only affected since PHP 4.2.1)
set_time_limit() | Has no affect when PHP is running in safe mode.
max_execution_time | Has no affect when PHP is running in safe mode.
mail() | In safe mode, the fifth parameter is disabled. (note: only affected since PHP 4.2.3)
Any function that uses php4/main/fopen_wrappers.c | ??

Anterior | Principal | Próxima
Safe Mode | Acima | Utilizando o PHP na linha de comando


Utilizando o PHP na linha de comando

Manual do PHP
Anterior Próxima

Capítulo 23. Utilizando o PHP na linha de comando

A partir versão 4.3.0, o PHP suporta um novo tipo SAPI (Server Application Programming Interface) chamado CLI que significa Command Line Interface. Como o próprio nome indica, essa SAPI tem foco no desenvolvimento de aplicações shell (ou no terminal/linha de comando) com o PHP. Há algumas diferenças entre a a CLI SAPI e outras SAPIs que são explicadas neste capítulo. Mas é errado dizer que a versão CLI e CGI são SAPIs diferentes pelo motivo que elas compartilham muitos comportamentos idênticos.

A CLI SAPI foi liberada primeiramente com o PHP 4.2.0, mas ainda em estágio experimental, sendo necessário ativá-la explicitamente com a opção --enable-cli durante o ./configure. Desde o PHP 4.3.0 a CLI SAPI não mais é experimental e a opção --enable-cli está ligada por default. você pode usar a opção --disable-cli para desativá-la.

Desde o PHP 4.3.0, o nome, localização e existência dos executáveis CLI e CGI podem mudar dependendo de como o PHP foi instalado no seu sistema. Por padrão, quando executado o make, ambos CGI e CLI são compilados e colocados em sapi/cgi/php e sapi/cli/php, respectivamente, no seu diretório de fontes PHP. Note que que ambas tem o nome php. O que acontece durante o make install depende dos parâmetros do configure. Se o módulo SAPI é escolhido durante o configure, como o apxs, ou a opção --disable-cgi é utilizada, a versão CLI é copiada para {PREFIX}/bin/php durante o make install em vez da versão CGI ser colocada aqui. Então, por exemplo, se você tiver --with--apxs na sua linha de configuração, então a versão CLI é copiada para {PREFIX}/bin/php durante o make install. Se você quiser sobrescrever a instalação do executável CGI, use make install-cli depois do make install. Alternativamente, você pode especificar --disable-cgi em seu configure.

Nota: Por serem ambos --enable-cli e --enable-cgi ligados por padrão, ter um --enable-cli em seu configure não necessariamente significa que a versão CLI será copiada para {PREFIX}/bin/php durante o make install.

Os pacotes para Windows distribuidos entre o PHP 4.2.0 e PHP 4.2.3 forneciam a versão CLI com o nome php-cli.exe, na mesma pasta que a versão CGI php.exe. A partir do PHP 4.3.0, os pacotes Windows distribuem a versão CLI como php.exe em uma pasta separada, chamada cli ou seja: cli/php.exe. A partir do PHP 5, a versão CLI também é distribuída no diretório principal, com o nome php.exe. A versão CGI é distribuída com o nome php-cgi.exe.

A partir do PHP 5, um novo arquivo php-win.exe começou a ser distribuído. Esta versão é igual a versão CLI, exceto que esse php-win não exibe nenhum output e também não disponibiliza nenhum console (nenhuma caixa de texto aparece na tela). Este comportamento é semelhante ao do php-gtk. Você pode configurar esse modo com --enable-cli-win32.

Que versão de SAPI eu tenho?: Na linha de comando, digitando php -v, ele lhe dirá se o php é CGI ou CLI. Veja também a função php_sapi_name() e a constante PHP_SAPI.

Nota: Um manual Unix man foi acrescentado no PHP 4.3.2. Você pode vê-lo digitando man php em seu ambiente shell.

Diferenças importantes das CLI SAPI comparada com outras SAPIs:

  • Diferentemente da CGI SAPI, nenhum header é impresso na saída.

    A CGI SAPI possui um meio de suprimir os headers HTTP, mas não há uma chave equivalente para ativá-los na CLI SAPI.

    A versão CLI é definida silenciosa por padrão. Mas as chaves -q e --no-header são mantidas para compatibilidade, de forma que você possa utilizar scripts CGI antigos.

    Ela não altera o diretório de execução para o do script. (as chaves -C e --no-chdir também são mantidas para compatibilidade).

    Mensagens de erro em texto simples (sem formatação HTML).

  • Estas são as diretivas do php.ini que são sobrescritas pela CLI SAPI porque não fazem sentido no ambiente shell:

    Tabela 23-1. Diretivas php.ini sobrescritas

    Diretiva | Valor default CLI SAPI | Comentários
    html_errors | FALSE | Pode ser bem difícil de ler mensagens de erro no seu shell quando elas estão embebidas dentro de tags HTML, por isso essa diretiva tem default para FALSE.
    implicit_flush | TRUE | Essa diretiva causa que qualquer saída gerada de um print(), echo() e semelhantes sejam imediatamente escritas para o output e não cacheadas em nenhum buffer. Você ainda pode usar o output buffering se você precisa atrasar ou manipular a saída padrão.
    max_execution_time | 0 (unlimited) | Devido as infinitas possibilidades da utilização do PHP em ambientes shell, o tempo máximo de execução foi configurado para ilimitado. Enquanto aplicações escritas para web são geralmente executadas em poucos segundos, aplicações no shell tendem a ter um tempo de execução mais longo.
    register_argc_argv TRUE

    Como essa diretiva é TRUE você sempre terá acesso as variáveis argc (número de argumentos passados para a aplicação) e argv (array dos argumentos informados) na CLI SAPI.

    A partir do PHP 4.3.0, as variáveis do PHP $argc e $argv são registradas e preenchidas com os valores apropriados quando utilizando a CLI SAPI. Antes dessa versão, a criação dessas variáveis era controlada da mesma forma que as versões CGI e MODULE e precisava da diretiva PHP register_globals configurada para on. Independentemente da versão ou da configuração de register_globals, você sempre poderá acessar esses dados através de $_SERVER ou $HTTP_SERVER_VARS. Exemplo: $_SERVER['argv']

    Nota: Estas diretivas não podem ser inicializadas com outros valores do arquivo de configuração php.ini ou um arquivo personalizado (se informado). Esta limitação existe porque estes valores são aplicados depois que todos os arquivos de configuração são analisados. Entretanto, seus valores podem ser modificados durante a execução (o que pode não fazer sentido para todas elas, por exemplo, register_argc_argv).

  • Para facilicar a operação no ambiente shell, as seguintes constantes estão definidas:

    Tabela 23-2. Constantes específicas CLI

    Constante Descrição
    STDIN Um stream já aberto para o stdin. Isto economiza ter de abrí-lo com
    $stdin = fopen('php://stdin', 'r');
    STDOUT Um stream já aberto para o stdout. Isto economiza ter de abrí-lo com
    $stdout = fopen('php://stdout', 'w');
    STDERR Um stream já aberto para o stderr. Isto economiza ter de abrí-lo com
    $stderr = fopen('php://stderr', 'w');

    Considerando isso, você não precisará mais abrí-los, por exemplo o stderr você mesmo, mas simplesmente usar a constante em vez do recurso stream:
    php -r 'fwrite(STDERR, "stderr\n");'
    Você não precisa fechar explicitamente esses streams. Isto é realizado automaticamente pelo PHP.

  • A CLI SAPI não modifica o diretório de execução atual para o diretório onde o script é interpretado!

    Exemplo mostrando a diferença da CGI SAPI:
    <?php
    /* Nossa aplicação de teste chamada test.php */
    echo getcwd(), "\n";
?>

    Quando utilizando a versão CGI, a saída é:
    $ pwd
/tmp

$ php -q outro_diretorio/test.php
/tmp/outro_diretorio
    Isto mostra como o PHP modifica o diretório atual para aquela onde o script é executado.

    Utilizando a versão CLI SAPI:
    $ pwd
/tmp

$ php -f outro_diretorio/test.php
/tmp
    E isto mostra a grande flexibilidade ferramentas shell em PHP.

    Nota: A CGI SAPI suporta o comportamento da CLI SAPI utilizando a chave -C quando de sua execução na linha de comando.

A lista de opções de linha de comando fornecidas pelo binário do PHP pode ser solicitada a qualquer tempo executando o PHP com a opção -h:
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               Display colour syntax highlighted source.
  -w               Display source with stripped comments and whitespace.
  -f <file>        Parse <file>.
  -v               Version number
  -c <path>|<file> Look for php.ini file in this directory
  -a               Run interactively
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -z <file>        Load Zend extension <file>.
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -i               PHP information
  -r <code>        Run PHP <code> without using script tags <?..?>
  -h               This help

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

A CLI SAPI fornecer três maneiras diferentes para você executar seu código PHP:

  1. Chamando o PHP para executar um arquivo determinado.

    php my_script.php

php -f my_script.php
    De ambas maneiras (utilizando ou não a opção -f) o arquivo my_script.php é executado. Você pode escolher qualquer arquivo para executar --- seus scripts PHP não precisam terminar com a extensão .php, podendo ter qualquer nome ou extensão que você deseje.

  2. Passar o código PHP para execução diretamente a linha de comando.

    php -r 'print_r(get_defined_constants());'
    É preciso ter especial cuidado com a substituição de variáveis shell e delimitação de strings utilizada.

    Nota: Leia o exemplo cuidadosamente, observando que não há tags de abertura ou fechamento! A opção -r simplesmente não precisa delas. Utilizando-as você obterá erros de interpretação.

  3. Fornece código PHP para interpretação via a entrada padrão (stdin).

    Isto mostra a habilidade poderosa de como criar dinamicamente código PHP e fornecê-lo ao binário, como demonstrado neste exemplo (apenas demonstrativo):
    $ alguma_aplicacao | algum_filtro | php | sort -u >final_output.txt

Você não pode combinar nenhum das três maneiras para executar código.

Assim como qualquer aplicação shell, não somente o binário do PHP aceita um certo número de argumentos, mas também seu script PHP também pode recebê-los. O número de argumentos que podem ser passados para seu script não é limitado ao PHP (mas o shell tem um certo limite de tamanho em caracteres que podem ser informados, e não há um padrão para esse limite). Os argumentos passados para seu script são disponibilizados no array global $argv. No índice zero sempre conterá o nome do script (podendo ser - no caso de código PHP estar vindo da entrada padrão ou da opção de linha de comando -r). O segunda variável global $argc contém o número de elementos no array $argv (mas não o número de argumentos passados para seu script.

Os argumentos que você deseja passar para seu script não podem começar com o caracter - e isso não pode ser modificado. Passando argumentos para seu script que comecem com um - causará problemas porque o PHP tentará manuseá-los. Para prevenir isso, utilize o separador de argumentos --. Depois que esse separador é passado para o PHP, todos os argumentos restantes são repassados intocados para seu script.

# Isto não executará o código fornecido e irá fazer o PHP mostrar sua ajuda
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Isto passará o argumento '-h' para seu script e prevenirá o PHP de usá-lo
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Entretanto, há ainda uma outra maneira de se utilizar o PHP no shell. Você pode escrever um script que na primeira linha tenha #!/usr/bin/php e em seguida código PHP normal, incluindo as tags de início e fim do PHP. Você também precisa configurar os atributos de execução do arquivo (por exemplo, chmod +x test) de forma que seu script seja executado normalmente como um script shell/Perl:
#!/usr/bin/php
<?php
    var_dump($argv);
?>
Assumindo que o arquivo foi nomeado como teste e está no diretório atual, nós podemos fazer o seguinte:
$ chmod 755 teste
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./teste"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
Como você viu, dessa forma não há problemas em passar parâmetros para seu script que comecem com o caracter -

Opções com nomes "longos" foram disponibilizados a partir do PHP 4.3.3.

Tabela 23-3. Opções de linha de comando

Opção | Opção Longa | Descrição
-s --syntax-highlight

Mostra o código fonte com destaque de cores.

Esta opção usa o mecanismo interno para interpretar o arquivo e produzir uma versão HTML do fonte com destaque de cores e a envia para a saída padrão. Note que ele somente gerará blocos de <code> [...] </code>, mas não headers HTML.

Nota: Esta opção não funciona juntamente com a opção -r.

-s --syntax-highlighting

Apelido para --syntax-highlight.

-w --strip

Mostra o fonte sem comentários e espaços em branco.

Nota: Esta opção não funciona juntamente com a opção -r.

-f --file

Interpreta e executa o arquivo informado com a opção -f Esta diretiva é opcional e pode ser deixada de lado. Informar somente o nome do arquivo para execução é suficiente.

-v --version

Imprime as versões o PHP, PHP SAPI e Zend para a saída padrão, por exemplo:
$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-c --php-ini

Esta opção informa um diretório onde procurar pelo php.ini ou especifica um arquivo INI personalizado diretamente (não presisa ser obrigatoriamente php.ini), por exemplo:
$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php

-n --no-php-ini

Ignora todo o php.ini. Esta chave está disponível desde o PHP 4.3.0.

-d --define

Esta opção permite definir um valor personalizado para qualquer diretiva de configuração permitida no php.ini. Sintaxe:
-d diretiva[=valor]

Exemplos (linhas cortadas para melhor visualização):
# Omitindo a parte do valor irá configurar a diretiva para "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passando um valor vazio irá configurar a diretiva para ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# A diretiva de configuração será preenchida com qualquer coisa informada depois do caracter =''
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=instonaofazsentido
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "instonaofazsentido"

-a --interactive

Roda o PHP em modo interativo.

-e --profile-info

Gera informações estendidas para o debugador/profiler.

-z --zend-extension

Carrega a extensão Zend. Se somente o nome de arquivo é fornecido, o PHP tenta carregar essa extensão do caminho default de bibliotecas do seu sistema (geralmente especificado em /etc/ld.so.conf em sistemas Linux). Passando um nome de arquivo com o caminho absoluto irá evitar a procura no caminho das bibliotecas de sistema. Um nome de arquivo com uma informação de diretório relativa fará com que o PHP apenas tente carregar a extensão no caminho relativo ao diretório atual.

-l --syntax-check

Esta opção fornece uma maneira conveniente apenas realizar uma checagem de sintaxe no código PHP fornecido. No sucesso, o texto No syntax errors detected in <arquivo> é impresso na saída padrão e informado o código de saida de sistema 0. Em caso de erro, o texto Errors parsing <filename> juntamente com o a mensagem do interpretador interno é impressa para a saída padrão e o código de saída de sistema é 255.

Esta opção não procura por erros fatais (como funções não definidas). Use -f se você deseja detectar erros fatais também.

Nota: Esta opção não trabalha com a opção -r

-m --modules

Utilizando essa opção, o PHP imprime os módulos PHP e Zend compilados (e carregados):
$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-i | --info | Esta opção de linha de comando chama a função phpinfo() e imprime seus resultados. Se o PHP não está funcionando bem, é interessante fazer um php -i para observar qualquer mensagem de erro impressa antes ou dentro das tabelas de informação. Como a saída é em HTML, ela é um pouco grande.
-r --run

Esta opção permite a execução de código PHP direto da linha de comando. As tags de início e fim do PHP (<?php e ?>) não são necessárias e causarão erros de interpretação se informadas.

Nota: Cuidados deverão ser tomados utilizando dessa forma para evitar que haja substituição de variáveis pelo shell.

Exemplo mostrando um erro de interpretação
$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
O problema aqui decorre do sh/bash realizar substituições de variáveis sempre quando se utilizam aspas ("). Desde que a variável $foo não deve estar definida, ela é substituída por nada o que faz que o código passado para o PHP para execução seja:
$ php -r " = get_defined_constants();"
A maneira correta é utilizar apóstrofos ('). Variáveis em strings delimitadas por apóstrofos não são substituidas pelo sh/bash.
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]
Se você estiver utilizando um shell diferente do sh/bash, você pode experimentar comportamentos diferenciados. Sinta-se livre para abrir um aviso de bug ou enviar um e-mail para phpdoc@lists.php.net. Você vai rapidamente conseguir problemas quando tentar obter variáveis do ambiente dentro do código ou quando utilizar barras invertidas para escape. Esteja avisado.

Nota: -r está disponível na SAPI CLI SAPI mas não na SAPI CGI.

-h | --help | Com essa opção, você pode obter informações sobre a lista atual de opções de linha de comando pequenas descrições sobre o que elas fazem.
-? --usage Apelido para --help.

O PHP executável pode ser utilizando para rodar scripts PHP absolutamente independente de um servidor web. Se você está num sistema Unix, você pode acrescentar uma linha especial na primeira linha de seu script e torná-lo executável, então o sistema operacional saberá que programa deverá rodar o script. Na plataforma Windows, você pode associar php.exe -q com o clique duplo em arquivos .php ou fazer um arquivo batch para rodar seus scripts através do PHP. A primeira linha acrescentada ao script nos Unix não funcionam no Windows, por isso você não pode escrever programas independentes de plataforma desse jeito. Um exemplo simples de como escrever um programa para a linha de comando segue abaixo:

Exemplo 23-1. Um script para rodar na linha de comando (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Este é um script de linha de comando com um parâmetro.

  Uso:
  <?php echo $argv[0]; ?> <opcao>

  <opcao> pode ser qualquer palavra que
  você queira imprimir. Com as opções --help, -help, -h
  ou -?, você pode obter essa ajuda.

<?php
} else {
    echo $argv[1];
}
?>

No script acima, nós utilizamos uma primeira linha especial para indicar que este arquivo precisa rodar pelo PHP. Como nós trabalhamos com a versão CLI aqui, não serão impressos headers HTTP. Há duas variáveis que você precisa conhecer para escrever aplicações em linha de comando com o PHP: $argc e $argv. O primeiro é o número de argumentos mais um (o nome do script executando). O segundo é um array contendo os argumentos, começando com o nome do script no índice zero ($argv[0]).

No programa acima é verificado se há apenas um argumento fornecido. Se o argumento for --help, -help, -h ou -?, é impresso uma mensagem de ajuda, imprimindo o nome do script dinamicamente. Qualquer outro argumento é exibido como informado.

Para rodar esse aplicativo nos Unix, basta torná-lo executável e o chamar diretamente como script.php exibaisso ou script.php -h. No Windows, você pode fazer um arquivo batch para esta tarefa:

Exemplo 23-2. Arquivo batch para rodar um script em linha de comando (script.bat)

@c:\php\cli\php.exe script.php %1 %2 %3 %4

Assumindo que você nomeou o programa acima como script.php, e que tem sua versão CLI php.exe em c:\php\cli\php.exe este arquivo batch irá rodar com os seguintes parâmetros: script.bat exibaisso ou script.bat -h.

Veja também a documentação da extensão Readline para mais funções que você pode usar para incrementar suas aplicações para linha de comando em PHP.

Anterior | Principal | Próxima
Functions restricted/disabled by safe mode | Acima | Referência das Funções


Referência das Funções

Manual do PHP
Anterior Próxima

V. Referência das Funções

Índice
I. Apache
II. Arrays
III. Aspell functions [deprecated]
IV. BCMath Funções Matemáticas de Precisão Arbitrária
V. Bzip2
VI. Calendário, funções
VII. CCVS API Functions [deprecated]
VIII. COM support functions for Windows
IX. Classes e Objetos
X. ClibPDF Functions
XI. Crack, funções de teste de senha
XII. CURL, Client URL Library Functions
XIII. Cybercash Payment Functions
XIV. Cyrus IMAP administration Functions
XV. Character Type Functions
XVI. Database (dbm-style) Abstraction Layer Functions
XVII. Data e hora
XVIII. dBase
XIX. DBM Functions [deprecated]
XX. funções dbx
XXI. DB++ Functions
XXII. Direct IO Functions
XXIII. Diretórios
XXIV. DOM XML Functions
XXV. .NET Functions
XXVI. Erros e Logs
XXVII. File Alteration Monitor Functions
XXVIII. FrontBase Functions
XXIX. filePro
XXX. Filesystem (Sistema de arquivos)
XXXI. Forms Data Format Functions
XXXII. FriBiDi
XXXIII. FTP
XXXIV. Funções para manuseamento de funções
XXXV. Gettext
XXXVI. GMP
XXXVII. HTTP
XXXVIII. Hyperwave Functions
XXXIX. Hyperwave API Functions
XL. iconv Functions
XLI. Image Functions
XLII. IMAP, POP3 and NNTP Functions
XLIII. Informix Functions
XLIV. InterBase
XLV. Ingres II Functions
XLVI. Funções de IRC Gateway
XLVII. PHP / Java Integration
XLVIII. LDAP Functions
XLIX. LZF Functions
L. Mail
LI. mailparse Functions
LII. Matemática e Trigonometria
LIII. Multibyte String Functions
LIV. MCAL Functions
LV. Mcrypt Encryption Functions
LVI. MCVE Payment Functions
LVII. Mhash - Funções de hash
LVIII. Funções Mimetype
LIX. Microsoft SQL Server
LX. Ming functions for Flash
LXI. Miscelânea
LXII. mnoGoSearch Functions
LXIII. mSQL
LXIV. MySQL
LXV. Improved MySQL Extension
LXVI. Mohawk Software Session Handler Functions
LXVII. muscat Functions
LXVIII. Network - Funções de Rede
LXIX. Ncurses Terminal Screen Control Functions
LXX. Lotus Notes Functions
LXXI. NSAPI-specific Functions
LXXII. ODBC Unificado
LXXIII. Object Aggregation/Composition Functions
LXXIV. Funções do Oracle 8
LXXV. OpenSSL Functions
LXXVI. Oracle
LXXVII. Ovrimos SQL Functions
LXXVIII. Output Control(Controle de Saída)
LXXIX. Sobrecarga de propriedades e métodos de objetos
LXXX. PDF functions
LXXXI. Verisign Payflow Pro Functions
LXXXII. PHP Opções e Informações
LXXXIII. POSIX Functions
LXXXIV. PostgreSQL
LXXXV. Process Control Functions
LXXXVI. Programas, Funções de Execução
LXXXVII. Impressão
LXXXVIII. Pspell Functions
LXXXIX. GNU Readline
XC. GNU Recode Functions
XCI. Regular Expression Functions (Perl-Compatible)
XCII. Funções qtdom
XCIII. Regex : Expressões Regulares (compatíveis com o padrão POSIX)
XCIV. Semaphore, Shared Memory and IPC Functions
XCV. SESAM Database Functions
XCVI. Sessões
XCVII. Funções de Memória Compartilhada
XCVIII. SimpleXML functions
XCIX. SOAP Functions
C. SQLite
CI. Shockwave Flash Functions
CII. SNMP Functions
CIII. Socket Functions
CIV. Standard PHP Library (SPL) Functions
CV. Stream Functions
CVI. String
CVII. Sybase
CVIII. TCP Wrappers Functions
CIX. Tidy Functions
CX. Tokenizer Functions
CXI. URL
CXII. Variáveis, Funções
CXIII. vpopmail Functions
CXIV. W32api Functions
CXV. WDDX Functions
CXVI. XML, Analisadores
CXVII. XML-RPC Functions
CXVIII. xdiff Functions
CXIX. XSL functions
CXX. XSLT Functions
CXXI. YAZ Functions
CXXII. YP/NIS Functions
CXXIII. Zip File Functions (Read Only Access)
CXXIV. Zlib - Funções de Compressão

Anterior | Principal | Próxima
Utilizando o PHP na linha de comando |  | Apache


Apache

Manual do PHP
Anterior Próxima

I. Apache

Introdução

Estas funções estão somente disponíveis com o PHP rodando como módulo do Apache.

Instalação

Para instalar o PHP no Apache, veja a seção Apache no capítulo de instalação.

Configuração durante execução

O comportamento do módulo PHP sob o Apache é afetado pelas configurações no php.ini. As diretivas de configuração no php.ini podem ser sobrescritas por diretivas php_flag no arquivo de configuração do servidor ou por arquivos .htaccess locais.

Exemplo 1. Desligando a interpretação do PHP em um diretório com o .htaccess

php_flag engine off

Tabela 1. Opções de configuração no Apache

Nome | Valor Default | Alterabilidade | Descrição
engine | On | PHP_INI_ALL | liga ou desliga a interpretação pelo PHP
child_terminate | Off | PHP_INI_ALL | especifica se os scripts PHP podem solicitar a eliminação do processo filho no final da requisição. Detalhes na função apache_child_terminate()
last_modified | Off | PHP_INI_ALL | envia a data de modificação do script PHP como um header Last-Modified:
xbithack | Off | PHP_INI_ALL | interpreta arquivos marcados executáveis como scripts PHP, independentemente do final do arquivo

Breve descrição das diretivas de configuração.

engine boolean

Esta diretiva somente é útil para a versão módulo do Apache do PHP. Ela pode ser usada para ligar ou desligar a interpretação do PHP em nível de diretório ou em nível de servidor virtual. Colocando engine off nos lugares apropriados do arquivo httpd.conf, o PHP pode ser ativado ou desativado.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
apache_child_terminate -- Finaliza o processo Apache depois da requisição
apache_get_modules -- Get a list of loaded Apache modules
apache_get_version -- Fetch Apache version
apache_getenv -- Get an Apache subprocess_env variable
apache_lookup_uri -- Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela
apache_note -- Obtém e seta notas de requisição
apache_request_headers -- Obtem todos os headers HTTP
apache_response_headers -- Obtêm todos os headers da resposta HTTP
apache_setenv -- Configura uma variável no ambiente do sub processo Apache
ascii2ebcdic -- Converte uma string de ASCII para EBCDIC
ebcdic2ascii -- Converte uma string de EBCDIC para ASCII
getallheaders -- Obtem todos os headers HTTP
virtual -- Realiza uma sub-requisição no Apache

Anterior | Principal | Próxima
Referência das Funções | Acima | apache_child_terminate


apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate -- Finaliza o processo Apache depois da requisição

Descrição

bool apache_child_terminate ( void )

apache_child_terminate() registrará o processo Apache executando a requisição atual do PHP para finalização quando a execução do código PHP terminar. Isto pode se utilizado para terminar um processo depois que um script que tiver um alto consumo de memória for rodado e quando essa memória normalmente só é liberada internamente, mas não é devolviva para o sistema operacional.

Nota: A disponibilidade desse recurso é controlado pela diretiva php.ini child_terminate, que está definida off por default.

Este recurso não está disponível em versões multi-thread do Apache, como a versão para Windows 32 bits.

Veja também exit().

Anterior | Principal | Próxima
Apache | Acima | apache_get_modules


apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modules -- Get a list of loaded Apache modules

Description

array apache_get_modules ( void )

This function returns an array with the loaded Apache modules.

Exemplo 1. apache_get_modules() example

<?php
print_r(apache_get_modules());
?>

The above example will output something similar to:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)

Anterior | Principal | Próxima
apache_child_terminate | Acima | apache_get_version


apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_version -- Fetch Apache version

Description

string apache_get_version ( void )

apache_get_version() returns the version of Apache as string, or FALSE on failure.

Exemplo 1. apache_get_version() example

<?php
$version = apache_get_version();
echo "$version\n";
?>

The printout of the above program will look similar to:

Apache/1.3.29 (Unix) PHP/4.3.4

See also phpinfo().

Anterior | Principal | Próxima
apache_get_modules | Acima | apache_getenv


apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenv -- Get an Apache subprocess_env variable

Description

string apache_getenv ( string variable [, bool walk_to_top])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
apache_get_version | Acima | apache_lookup_uri


apache_lookup_uri

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

apache_lookup_uri -- Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela

Descrição

object apache_lookup_uri ( string filename)

Isto realiza uma requisição parcial para uma URI. Trabalha o suficiente para obter todas as informações importantes sobre o recurso dado e retorna esta informação em uma classe. As propriedades da classe retornada são:

status
the_request
status_line
method
content_type
handler
uri
filename
path_info
args
boundary
no_cache
no_local_copy
allowed
send_bodyct
bytes_sent
byterange
clength
unparsed_uri
mtime
request_time

Nota: apache_lookup_uri() somente funciona quando o PHP está instalado como um módulo do Apache.

Anterior | Principal | Próxima
apache_getenv | Acima | apache_note


apache_note

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

apache_note -- Obtém e seta notas de requisição

Descrição

string apache_note ( string note_name [, string note_value])

apache_note() é uma função específica do Apache que obtém e seta valores em uma tabela de notas de requisição. Se for chamada com um argumento, ela retorna o valor atual da nota note_name. Se for chamada com dois argumentos, ela seta o valor da nota note_name para note_value e retorna o valor anterior da nota note_name.

Anterior | Principal | Próxima
apache_lookup_uri | Acima | apache_request_headers


apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headers -- Obtem todos os headers HTTP

Descrição

array apache_request_headers ( void )

apache_request_headers() retorna um array associativo de todos os headers HTTP da requisição atual. Ela é somente suportada se o PHP roda como um módulo do Apache.

Exemplo 1. Exemplo apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Nota:
      Antes do PHP 4.3.0, apache_request_headers() era
      chamado getallheaders(). Depois do PHP 4.3.0,
      getallheaders() é um sinônimo para
      apache_request_headers().

Nota: Você também pode obter o valor das variáveis CGI comuns lendo-as a partir do ambiente, o que funciona caso esteja ou não utilizando o PHP como módulo do Apache. Faça um phpinfo() para ver uma lista dessas variáveis chamadas variáveis ambiente.

???

Veja também apache_response_headers().

Anterior | Principal | Próxima
apache_note | Acima | apache_response_headers


apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headers -- Obtêm todos os headers da resposta HTTP

Descrição

array apache_response_headers ( void )

Retorna um array com todos os headers de resposta do Apache. Esta funcionalidade foi acrescentada a partir do PHP 4.3.0.

???

Veja também apache_request_headers() e headers_sent().

Anterior | Principal | Próxima
apache_request_headers | Acima | apache_setenv


apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenv -- Configura uma variável no ambiente do sub processo Apache

Descrição

int apache_setenv ( string variable, string value [, bool walk_to_top])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
apache_response_headers | Acima | ascii2ebcdic


ascii2ebcdic

(PHP 3>= 3.0.17)

ascii2ebcdic -- Converte uma string de ASCII para EBCDIC

Descrição

int ascii2ebcdic ( string ascii_str)

ascii2ebcdic() é uma função específica do Apache, somente disponível em sistemas operacionais baseados no EBCDIC (OS/390, BS2000). Ela converte a string codificada em ASCII ascii_str em sua representação equivalente em EBCDIC (binary safe), retornando o resultado.

Veja também a função inversa ebcdic2ascii()

Anterior | Principal | Próxima
apache_setenv | Acima | ebcdic2ascii


ebcdic2ascii

(PHP 3>= 3.0.17)

ebcdic2ascii -- Converte uma string de EBCDIC para ASCII

Description

int ebcdic2ascii ( string ebcdic_str)

ebcdic2ascii() é uma função específica do Apache, somente disponível em sistemas operacionais baseados no EBCDIC (OS/390, BS2000). Ela converte a string codificada em EBCDIC ebcdic_str em sua representação equivalente em ASCII (binary safe), retornando o resultado.

Veja também a função inversa ascii2ebcdic()

Anterior | Principal | Próxima
ascii2ebcdic | Acima | getallheaders


getallheaders

(PHP 3, PHP 4 , PHP 5)

getallheaders -- Obtem todos os headers HTTP

Descrição

array getallheaders ( void )

getallheaders() é um sinônimo para apache_request_headers(). Ela retorna um array associativo de todos os headers HTTP da requisição atual. Veja a documentação de apache_request_headers() para mais detalhes do funcionamento dessa função.

Nota: No PHP 4.3.0, getallheaders() se tornou um apelido de apache_request_headers(). Essencialmente, ela foi renomeada. Isto porque a função somente funciona quando o PHP é compilado com um módulo do Apache.

???

Veja também apache_request_headers().

Anterior | Principal | Próxima
ebcdic2ascii | Acima | virtual


virtual

(PHP 3, PHP 4 , PHP 5)

virtual -- Realiza uma sub-requisição no Apache

Descrição

int virtual ( string filename)

virtual() é uma função específica do Apache que é equivalente a <!--#include virtual...--> no mod_include. Ela realiza uma sub-requisição do Apache. Ela é útil para incluir scripts de CGI ou arquivos .shtml, ou qualquer outra coisa que você possa analisar através do Apache. Note que para um script CGI, o script precisa gerar um cabeçalho CGI válido. Isto significa que, no mínimo, ele precisa gerar um cabeçalho Content-type.

Para executar a sub-requisição, todos os buffers são finalizados e enviados para o browser. Headers pendentes são enviados também.

A partir do PHP 4.0.6, você pode utilizar virtual() em arquivos PHP. Entretanto, é normalmente melhor usar include() ou require() se você precisa incluir outro arquivo PHP.

???

Anterior | Principal | Próxima
getallheaders | Acima | Arrays


Arrays

Manual do PHP
Anterior Próxima

II. Arrays

Introdução

Essas funções permitem a interação e manipulação de arrays de várias formas. Arrays são essenciais para armazenar, gerenciar, operar sobre um conjunto de variáveis.

Arrays simples e multidimensionais (matrizes) são suportados, e podem ser criados pelo usuário ou por outras funções. Existem diversas funções específicas para bancos de dados para preencher arrays com os dados retornados em consultas, e vários outros tipos de funções também retornam arrays.

Por favor, veja a seção Arrays do manual para uma explicação mais detalhada sobre como arrays são implementados e utilizados no PHP.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As constantes listadas abaixo estão sempre disponíveis como parte do núcleo do PHP.

CASE_LOWER (integer)

CASE_LOWER é usada com a função array_change_key_case() e é usada em chaves de arrays para torná-las minúsculas. É o valor padrão utilizado em array_change_key_case().

CASE_UPPER (integer)

CASE_UPPER é usada com a função array_change_key_case() e é usada em chaves de arrays para torná-las maiúsculas.

Sinais de ordenação:

SORT_ASC (integer)

SORT_ASC é usada com array_multisort() para ordenar em ordem crescente.

SORT_DESC (integer)

SORT_DESC é usada com array_multisort() para ordenar em ordem descrescente

Sinais de tipos de ordenação: usadas por várias funções de ordenação

SORT_REGULAR (integer)

SORT_REGULAR é usada para comparar itens normalmente.

SORT_NUMERIC (integer)

SORT_NUMERIC é usada para comparar itens numericamente.

SORT_STRING (integer)

SORT_STRING é usada para comparar itens como se fossem strings.

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

EXTR_REFS (integer)

Veja Também

Veja também is_array(), explode(),
implode(), split(),
preg_split() e unset().

Índice
array_change_key_case -- Retorna um array com todas as chaves string em maiúsculo ou minúsculo
array_chunk -- Divide um array em pedaços
array_combine -- Creates an array by using one array for keys and another for its values
array_count_values -- Conta as frequências de cada valor de um array
array_diff_assoc -- Computes the difference of arrays with additional index check
array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.
array_diff -- Analisa as diferenças entre arrays
array_fill -- Preenche um array com valores
array_filter -- Filtra os elementos de um array utilizando uma função
array_flip -- Inverte as relações entre chaves e valores
array_intersect_assoc -- Computes the intersection of arrays with additional index check
array_intersect -- Calcula a interseção entre arrays
array_key_exists -- Checa se uma chave ou índice existe em um array
array_keys -- Retorna todas as chaves de um array
array_map -- Aplica uma função em todos os elementos dos arrays dados
array_merge_recursive -- Funde dois ou mais arrays recursivamente
array_merge -- Funde dois ou mais arrays
array_multisort -- Ordena múltiplos arrays ou arrays multi-dimensionais
array_pad -- Expande um array para um certo comprimento utilizando um determinado valor
array_pop -- Retira um elemento do final do array
array_push -- Adiciona um ou mais elementos no final de um array
array_rand -- Retorna um ou mais elementos aleatórios de um array
array_reduce -- Reduz um array para um único valor através de um processo iterativo utilizando uma função.
array_reverse -- Retorna um array com os elementos na ordem inversa
array_search -- Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado
array_shift -- Retira o primeiro elemento de um array
array_slice -- Extrai uma parcela de um array
array_splice -- Remove uma parcela do array e substitui com outros elementos
array_sum -- Calcula a soma dos elementos de um array
array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.
array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also
array_udiff -- Computes the difference of arrays by using a callback function for data comparison.
array_unique -- Remove o valores duplicados de um array
array_unshift -- Adiciona um ou mais elementos no início de um array
array_values -- Retorna todos os valores de um array
array_walk -- Aplica uma determinada funcão em cada elemento de um array
array -- Cria um array
arsort -- Ordena um array em ordem descrescente mantendo a associação entre índices e valores
asort -- Ordena um array mantendo a associação entre índices e valores
compact -- Cria um array contendo variáveis e seus valores
count -- Conta o número de elementos de uma variável
current -- Retorna o elemento corrente em um array
each -- Retorna o par chave/valor corrente de um array e avança o seu cursor
end -- Faz o ponteiro interno de um array apontar para o seu último elemento
extract -- Importa variáveis para a tabela de símbolos a partir de um array
in_array -- Checa se um valor existe em um array
key -- Retorna uma chave de um array associativo
krsort -- Ordena um array pelas chaves em ordem descrescente
ksort -- Ordena um array pelas chaves
list -- Cria variáveis como se fossem arrays
natcasesort -- Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas
natsort -- Ordena um array utilizando o algoritmo da "ordem natural"
next -- Avança o ponteiro interno de um array
pos -- Retorna o elemento atual do array
prev -- Retrocede o ponteiro interno de um array
range -- Cria um array contendo uma faixa de elementos
reset -- Faz o ponteiro interno de um array apontar para o seu primeiro elemento
rsort -- Ordena um array em ordem descrescente
shuffle -- Mistura os elementos de um array
sizeof -- Apelido de count()
sort -- Ordena um array
uasort -- Ordena um array utilizando uma função de comparação definida pelo usuário e mantendo as associações entre chaves e valores
uksort -- Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
usort -- Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário

Anterior | Principal | Próxima
virtual | Acima | array_change_key_case


array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case -- Retorna um array com todas as chaves string em maiúsculo ou minúsculo

Descrição

array array_change_key_case ( array input [, int case])

array_change_key_case() altera as chaves chaves do array input para maiúsculo ou minúsculo. A mudança depende do último parâmetro (opcional) case. Você pode passar duas constantes para ele, CASE_UPPER e CASE_LOWER. O padrão é CASE_LOWER. Essa função deixará os índices numéricos inalterados.

Exemplo 1. Exemplo de array_change_key_case()

<?php
$input_array = array("primeiRo" => 1, "segunDo" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER);
?>

A saída deste programa será:

Array
(
    [PRIMEIRO] => 1
    [SEGUNDO] => 2
)

Se uma matriz tem índices que serão o mesmo após a utilização desta função (ex: "chaVE" e "CHave"), o valor que estiver mais no fim na matriz irá sobrescrever os outros índices.

Anterior | Principal | Próxima
Arrays | Acima | array_chunk


array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunk -- Divide um array em pedaços

Descrição

array array_chunk ( array input, int size [, bool preserve_keys])

array_chunk() divide um array em diversos arrays tendo como tamanho o valor de size. Você provavelmente terá um array com menos valores no final. Serão gerados arrays como membros de um array multidimensional com índices numéricos começando de 0 (zero).

Passando o valor TRUE para o parâmetro opcional preserve_keys, pode-se forçar a preservação das chaves do array original. Se for passado o valor FALSE, novos índices numéricos serão gerados em cada array resultante começando de 0 (zero). O padrão é FALSE.

Exemplo 1. Exemplo de array_chunk()

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, TRUE));
?>

A saída deste programa será:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Anterior | Principal | Próxima
array_change_key_case | Acima | array_combine


array_combine

(PHP 5)

array_combine -- Creates an array by using one array for keys and another for its values

Description

array array_combine ( array keys, array values)

Returns an array by using the values from the keys array as keys and the values from the values array as the corresponding values.

Returns FALSE if the number of elements for each array isn't equal or if the arrays are empty.

Exemplo 1. A simple array_combine() example

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Outputs:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

See also array_merge(),
array_walk(), and
array_values().

Anterior | Principal | Próxima
array_chunk | Acima | array_count_values


array_count_values

(PHP 4 , PHP 5)

array_count_values -- Conta as frequências de cada valor de um array

Descrição

array array_count_values ( array input)

array_count_values() retorna um array utilizando os valores do array input como chaves e seus respectivos números de ocorrências como valores.

Exemplo 1. Exemplo de array_count_values()

<?php
$array = array(1, "ola", 1, "mundo", "ola");
array_count_values($array);
?>

A saída deste programa será:

Array
(
    [1] => 2
    [ola] => 2
    [mundo] => 1
)

Veja também count(),
array_unique(),
array_values()
e count_chars().

Anterior | Principal | Próxima
array_combine | Acima | array_diff_assoc


array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assoc -- Computes the difference of arrays with additional index check

Description

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff().

Exemplo 1. array_diff_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

The result is:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In our example above you see the "a" => "green" pair is present in both arrays and thus it is not in the ouput from the function. Unlike this, the pair 0 => "red" is in the ouput because in the second argument "red" has key which is 1.

Two values from key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In other words a strict check takes place so the string representations must be the same.

Nota: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_diff_assoc($array1[0], $array2[0]);.

See also array_diff(),
array_intersect(),
and array_intersect_assoc().

Anterior | Principal | Próxima
array_count_values | Acima | array_diff_uassoc


array_diff_uassoc

(PHP 5)

array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.

Description

array array_diff_assoc ( array array1, array array2 [, array ..., callback key_compare_func])

array_diff_uassoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff(). This comparison is done by a user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike array_diff_assoc() where an internal function for comparing the indices is used.

Exemplo 1. array_diff_uassoc() example

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
?>

The result is:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In our example above you see the "a" => "green" pair is present in both arrays and thus it is not in the ouput from the function. Unlike this, the pair 0 => "red" is in the ouput because in the second argument "red" has key which is 1.

The equality of 2 indices is checked by the user supplied callback function.

Nota: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Anterior | Principal | Próxima
array_diff_assoc | Acima | array_diff


array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff -- Analisa as diferenças entre arrays

Descrição

array array_diff ( array array1, array array2 [, array ...])

array_diff() retorna um array contendo todos os valores de array1 que não estão presentes em nenhum dos outros argumentos. Note que as chaves são preservadas.

Exemplo 1. Exemplo de array_diff()

<?php
$array1 = array("a" => "verde", "vermelho", "azul", "vermelho");
$array2 = array("b" => "verde", "amarelo", "vermelho");
$result = array_diff($array1, $array2);
print_r($result);
?>

Multiplas ocorrencias de $array1 são todas tratadas da mesma maneira. Isto irá mostrar:

Array
(
  [1] => blue
)

Nota: Dois elementos são considerados iguais se, e somente se, (string) $elem1 === (string) $elem2. Em palavras: quando a representação em string é a mesma.

Nota: Note que esta função faz compara apenas uma dimensão de um array com dimensão n. Mas, obviamente, você pode comparar outras dimensões usando array_diff($array1[0], $array2[0]);.

Atenção

Não estava funcionando no PHP 4.0.4!

Veja também array_diff_assoc(), array_intersect() e array_intersect_assoc().

Anterior | Principal | Próxima
array_diff_uassoc | Acima | array_fill


array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fill -- Preenche um array com valores

Descrição

array array_fill ( int start_index, int num, mixed value)

array_fill() preenche um array com o número de entradas igual a num com o valor do parâmetro value, e chaves começando a partir de start_index.r. Note que num deve ser um número maior do que zero, ou o PHP irá dar um aviso.

Exemplo 1. Exemplo de array_fill()

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>
/*
$a agora tem os seguintes valores:

$a[5]  = "banana";
$a[6]  = "banana";
$a[7]  = "banana";
$a[8]  = "banana";
$a[9]  = "banana";
$a[10] = "banana";
*/

Veja também str_repeat() e range().

Anterior | Principal | Próxima
array_diff | Acima | array_filter


array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter -- Filtra os elementos de um array utilizando uma função

Descrição

array array_filter ( array input [, callback callback])

array_filter() passa por cada valor de input passando-os para a função callback. Se a função callback retornar true, o valor atual de input é retornado na matriz resultado. Os índices das matrizes são preservados.

Exemplo 1. Exemplo de array_filter()

<?php
function impar($var) {
    return($var % 2 == 1);
}

function par($var) {
    return($var % 2 == 0);
}

$array1 = array("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Impares: \n";
print_r(array_filter($array1, "impar"));
echo "Pares: \n";
print_r(array_filter($array2, "par"));
?>

A saída deste programa seria:

Impares:
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Pares:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

As funções utilizadas por array_filter() não devem alterar os valores do array. Por exemplo, adicionar ou remover um elemento, pode apagar o array ao qual está sendo aplicada array_filter(). Se este array for alterado, o comportamento desta função se torna imprevisvel.

Se a função callback não é indicada, array_filter() irá remover todas as entradas de input que são igual a FALSE. Veja convertendo para booleano para maiores informações.

Exemplo 2. array_filter() without callback

<?php

$entry = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);

print_r(array_filter($entry));
?>

Isto irá mostrar:

Array
(
  [0] => foo
  [2] => -1
}

Veja também array_map(), array_reduce() e array_walk().

Anterior | Principal | Próxima
array_fill | Acima | array_flip


array_flip

(PHP 4 , PHP 5)

array_flip -- Inverte as relações entre chaves e valores

Descrições

array array_flip ( array trans)

array_flip() retorna um array com com a relação entre suas chaves e valores invertida, ou seja, as chaves de trans passam a ser os valores e os valores de trans passam a ser as chaves.

Note que os valores de trans devem ser chaves válidas, ou seja, eles precisam ser inteiros não negativos ou string. Um aviso será mostrado se um valor é de um tipo inválido para chaves, e o par chave/valor em questão não será invertido.

Se um valor tem várias ocorrências, a última chave será usada como valor, e todos os outros serão perdidos.

array_flip() retorna FALSE se falhar.

Exemplo 1. Exemplo de array_flip()

<?php
$trans = array_flip($trans);
$original = strtr($str, $trans);
?>

Exemplo 2. Exemplo de array_flip() : colisão

<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>

Agora $trans é:

Array
(
    [1] => b
    [2] => c
)

Veja também array_values(), array_keys() e array_reverse().

Anterior | Principal | Próxima
array_filter | Acima | array_intersect_assoc


array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assoc -- Computes the intersection of arrays with additional index check

Description

array array_intersect_assoc ( array array1, array array2 [, array ...])

array_intersect_assoc() returns an array containing all the values of array1 that are present in all the arguments. Note that the keys are used in the comparison unlike in array_intersect().

Exemplo 1. array_intersect_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
?>

$result_array will look like:

Array
(
    [a] => green
)

In our example you see that only the pair "a" => "green" is present in both arrays and thus is returned. The value "red" is not returned because in $array1 its key is 0 while the key of "red" in $array2 is 1.

The two values from the key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In otherwords a strict type check is executed so the string representation must be the same.

See also array_intersect(),
array_diff() and
array_diff_assoc().

Anterior | Principal | Próxima
array_flip | Acima | array_intersect


array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- Calcula a interseção entre arrays

Descrição

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() retorna um array contendo todos os valores de array1 que estão presentes nos outros argumentos. Note que as chaves são preservadas.

Exemplo 1. Exemplo de array_intersect()

<?php
$array1 = array("a" => "verde", "vermelho", "azul");
$array2 = array("b" => "verde", "amarelo", "vermelho");
$result = array_intersect($array1, $array2);
?>

Isso faz com que $result tenha

Array
(
    [a] => verde
    [0] => vermelho
)

Nota: Dois elementos são considerados iguais se, e somente se, (string) $elem1 === (string) $elem2. Em palavras: quando a representação em string é a mesma.

Veja também array_intersect_assoc(), array_diff() e array_diff_assoc().

Anterior | Principal | Próxima
array_intersect_assoc | Acima | array_key_exists


array_key_exists

(PHP 4 >= 4.1.0, PHP 5)

array_key_exists -- Checa se uma chave ou índice existe em um array

Descrição

bool array_key_exists ( mixed key, array search)

array_key_exists() retorna TRUE se a chave key existe no array. key pode ser qualquer valor possível para uma chave de array.

Exemplo 1. Exemplo de array_key_exists()

<?php
$busca_array = array("primeiro" => 1, "segundo" => 4);
if (array_key_exists("primeiro", $busca_array)) {
    echo "O elemento 'primeiro' está no array!";
}
?>

Nota: O nome dessa função é key_exists() no PHP versão 4.0.6.

Veja também isset(), array_keys() e in_array().

Anterior | Principal | Próxima
array_intersect | Acima | array_keys


array_keys

(PHP 4 , PHP 5)

array_keys -- Retorna todas as chaves de um array

Descrição

array array_keys ( array input [, mixed search_value])

array_keys() retorna as chaves, numéricas e string, do array input.

Se o parâmetro opcional search_value for especificado, então apenas as chaves para esse valor serão retornadas. Do contrário, todas as chaves de input serão retornadas.

Exemplo 1. Exemplo de array_keys()

<?php
$array = array(0 => 100, "cor" => "vermelho");
print_r(array_keys($array));

$array = array("azul", "vermelho", "verde", "azul", "azul");
print_r(array_keys($array, "azul"));

$array = array("cor" => array("azul", "vermelho", "verde"), "tamanho" => array("pequeno", "medio", "grande"));
print_r(array_keys($array));
?>

A saída deste programa seria:

Array
(
    [0] => 0
    [1] => cor
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => cor
    [1] => tamanho
)

Veja também array_values() e array_key_exists().

Anterior | Principal | Próxima
array_key_exists | Acima | array_map


array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map -- Aplica uma função em todos os elementos dos arrays dados

Descrição

array array_map ( mixed callback, array arr1 [, array ...])

array_map() retorna um array contendo todos os elementos de arr1 depois de aplicada uma determinada função em cada um. O número de parâmetros que esta função aceita deve coincidir com o número de arrays passados para a array_map()

Exemplo 1. Exemplo de array_map()

<?php
function cubo($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cubo", $a);
print_r($b);
?>

E programa acima faz com que $b tenha:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Exemplo 2. array_map() - usando mais de um array

<?php
function mostrar_Espanhol($n, $m) {
    return "O número $n é chamado de $m na Espanha";
}

function map_Espanhol($n, $m) {
    return array($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("mostrar_Espanhol", $a, $b);
print_r($c);

$d = array_map("map_Espanhol", $a , $b);
print_r($d);
?>

Resultará em:

// Saída de $c
Array
(
    [0] => O número 1 é chamado de uno na Espanha
    [1] => O número 2 é chamado de dos na Espanha
    [2] => O número 3 é chamado de tres na Espanha
    [3] => O número 4 é chamado de cuatro na Espanha
    [4] => O número 5 é chamado de cinco na Espanha
)

// Saída de $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Normalmente quando se usa dois ou mais arrays, eles devem ter o mesmo tamanho porque a função callback é aplicada paralelamente nos elementos correpondentes. Se os arrays tem tamanhos diferentes, o menor array será extendido com elementos vazios.

Uma forma interessante de se usar esta função é na construção de um array de arrays, o que pode ser facilmente feito usando NULL como o nome da função callback.

Exemplo 3. Criando um array de arrays

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("um", "dois", "tres", "quatro", "cinco");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

A saída do programa acima seria:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Veja também array_filter(),
array_reduce() e
array_walk().

Anterior | Principal | Próxima
array_keys | Acima | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursive -- Funde dois ou mais arrays recursivamente

Descrição

array array_merge_recursive ( array array1, array array2 [, array ...])

array_merge_recursive() funde os elementos de dois ou mais arrays de forma que os elementos de um são colocados no final do array anterior. Retorna o array resultante da fusão.

Se os arrays dados tem as mesmas chaves string, então os valores para uma chave são fundidos em um array, e isso é feito recursivamente, sendo que, se um dos valores for um array também, este função irá fundi-lo com os valores correspondentes no array resultante também. Se, no entanto, os arrays tem as mesmas chaves numéricas, o último valor para uma chave não sobrescreverá o valor original, e sim adicionado ao array resultante.

Exemplo 1. Exemplo de array_merge_recursive()

<?php
$ar1 = array("cor" => array ("favorita" => "vermelho"), 5);
$ar2 = array(10, "cor" => array ("favorita" => "verde", "azul"));
$result = array_merge_recursive($ar1, $ar2);
?>

Neste caso $result será:

Array
(
    [cor] => Array
        (
            [favorita] => Array
                (
                    [0] => vermelho
                    [1] => verde
                )

            [0] => azul
        )

    [0] => 5
    [1] => 10
)

Veja também array_merge().

Anterior | Principal | Próxima
array_map | Acima | array_merge


array_merge

(PHP 4 , PHP 5)

array_merge -- Funde dois ou mais arrays

Descrição

array array_merge ( array array1, array array2 [, array ...])

array_merge() funde os elementos dois ou mais arrays de forma que os elementos de um são colocados no final do array anterior. Retorna o array resultante da fusão.

Se os arrays dados têm as mesmas chaves string, então o último valor para uma chave irá sobrescrever o valor anterior. Se, no entanto, os arrays tem as mesmas chaves numéricas, o último valor para uma chave não sobrescreverá o valor original, e sim adicionado ao array resultante.

Exemplo 1. Exemplo de array_merge()

<?php
$array1 = array("cor" => "vermelho", 2, 4);
$array2 = array("a", "b", "cor" => "verde", "forma" => "trapezoide", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>

Neste caso $result será:

Array
(
    [cor] => verde
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [forma] => trapezoide
    [4] => 4
)

Exemplo 2. Exemplo simples de array_merge()

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

Não esqueça que as chaves numéricas serão reordenadas!

Array
(
    [0] => data
)

Se você quer preservar os arrays e apenas concatená-los, o operador +:

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>

As chaves numéricas serão preservadas e as associações originais permanecem.

Array
(
    [1] => data
)

Nota: Chaves coincidentes serão sobrescritas usando as regras de primeira ocorrência.

Veja também array_merge_recursive() e array_combine().

Anterior | Principal | Próxima
array_merge_recursive | Acima | array_multisort


array_multisort

(PHP 4 , PHP 5)

array_multisort -- Ordena múltiplos arrays ou arrays multi-dimensionais

Descrição

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]])

array_multisort() pode ser usada para ordenar vários arrays de uma vez ou apenas um array multi-dimensional de acordo com uma das dimensões. A associação entre chaves e valores é mantida.

Os arrays dados são tratados como colunas de uma tabela a ser classificada pelas linhas - isso lembra a funcionalidade da cláusula ORDER BY da SQL. O primeiro array é o principal na ordenação. As linhas (valores) no primeiro array serve de base para a ordenação do próximo, e assim por diante.

A estrutura de argumentos dessa função não é muito normal, mas bastante flexível. O primeiro argumento de todos deve ser um array. Subsequentemente, cada argumento pode ser um array ou um dos sinais de classificação da lista a seguir.

Sinais de ordem de classificação:

  • SORT_ASC - classifica na ordem crescente

  • SORT_DESC - classifica na ordem descrescente

Sinais de tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente

  • SORT_NUMERIC - compara os elementos como itens numéricos

  • SORT_STRING - compara os elementos como strings

Não podem existir dois sinais de ordenação do mesmo tipo especificados para um mesmo array. Os sinais de ordenação especificados depois de um array se aplicam apenas para esse array - a eles são atribuídos por padrão os valores SORT_ASC e SORT_REGULAR antes de cada novo argumento do tipo array.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Ordenando múltiplos arrays

<?php
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);
?>

Nesse exemplo, depois da ordenação, o primeiro array terá 10, "a", 100, 100. O segundo conterá 1, 1, "2", 3. Os elementos do segundo array que correpondem aos do primeiro (100 e 100) também foram ordenados.

Exemplo 2. Ordenando um array multi-dimensional

<?php
$ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);
?>

Nesse exemplo, depois da ordenação, o primeiro array terá 10, 100, 100, "a" (foi ordenado como strings em ordem crescente), e o segundo conterá 1, 3, "2", 1 (classificado como números, em ordem descrescente).

Anterior | Principal | Próxima
array_merge | Acima | array_pad


array_pad

(PHP 4 , PHP 5)

array_pad -- Expande um array para um certo comprimento utilizando um determinado valor

Descrição

array array_pad ( array input, int pad_size, mixed pad_value)

array_pad() retorna uma cópia de input expandido para o comprimento especificado por pad_size com o valor pad_value. Se pad_size for positivo então o array é expandido pela direita, se for negativo, pela esquerda. Se o valor absoluto de pad_size for menor ou igual ao comprimento de input, então ele permanece inalterado.

Exemplo 1. Exemplo de array_pad()

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// $result é array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// $result é array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// Não será expandido
?>

Veja também array_fill() e range().

Anterior | Principal | Próxima
array_multisort | Acima | array_pop


array_pop

(PHP 4 , PHP 5)

array_pop -- Retira um elemento do final do array

Descrição

mixed array_pop ( array array)

array_pop() retira e retorna o último elemento de array, diminuindo array em um elemento. Se array estiver vazio (ou se não for um array), o valor NULL é retornado.

Nota: Esta função irá resetar() o ponteiro do array depois do uso.

Exemplo 1. Exemplo de array_pop()

<?php
$cesta = array("laranja", "banana", "melancia", "morango");
$fruta = array_pop($cesta);
print_r($cesta);
?>

Depois disso, $cesta terá 3 elementos:

Array
(
    [0] => laranja
    [1] => banana
    [2] => melancia
)

e morango será passado para $fruta.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Veja também array_push(),
array_shift(), e
array_unshift().

Anterior | Principal | Próxima
array_pad | Acima | array_push


array_push

(PHP 4 , PHP 5)

array_push -- Adiciona um ou mais elementos no final de um array

Descrição

int array_push ( array array, mixed var [, mixed ...])

array_push() trata array como uma pilha, e adiciona as variáveis passadas como argumentos no final de array. O comprimento de array aumenta de acordo com o número de variáveis adicionadas. Tem o mesmo efeito de:
<?php
$array[] = $var;
?>
repetido para cada argumento var.

Retorna o novo número de elementos do array.

Exemplo 1. Exemplo de array_push()

<?php
$cesta = array("laranja", "morango");
array_push($cesta, "melancia", "batata");
print_r($cesta);
?>

Neste caso $stack teria os seguintes elementos:

Array
(
    [0] => laranja
    [1] => morango
    [2] => melancia
    [3] => batata
)

Veja também: array_pop(),
array_shift(), e
array_unshift().

Anterior | Principal | Próxima
array_pop | Acima | array_rand


array_rand

(PHP 4 , PHP 5)

array_rand -- Retorna um ou mais elementos aleatórios de um array

Descrição

mixed array_rand ( array input [, int num_req])

array_rand() é bastante útil quando se quer conseguir aleatoriamente um ou mais elementos de um array. Ela recebe o array input e outro argumento opcional num_req o qual especifica quantos elementos se quer conseguir - se não for especificado, o padrão é 1.

Se estiver pegando apenas um elemento, array_rand() retorna a chave para este elemento aleatório. De outra forma, ele retorna um array com as chaves desses elementos aleatórios. Assim é possível conseguir chaves e valores aleatórios a partir da mesma função.

Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.

Exemplo 1. Exemplo de array_rand()

<?php
srand((float) microtime() * 10000000);
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";
?>

Veja também shuffle().

Anterior | Principal | Próxima
array_push | Acima | array_reduce


array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduce -- Reduz um array para um único valor através de um processo iterativo utilizando uma função.

Descrição

mixed array_reduce ( array input, mixed callback [, int initial])

array_reduce() aplica iterativamente a função definida em callback nos elementos de input, de forma a reduzi-lo a um único valor. Se o argumento opcional initial for passado, ele será utilizado no início do processo, ou como um resultado final se o array estiver vazio.

Exemplo 1. Exemplo de array_reduce()

<?php
function soma($v, $w) {
    $v += $w;
    return $v;
}

function multiplicacao($v, $w) {
    $v *= $w;
    return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "soma");
$c = array_reduce($a, "multiplicacao", 10);
$d = array_reduce($x, "soma", 1);
?>

Isso resultará em $b contendo 15, $c contendo 1200 (= 1*2*3*4*5*10), e $d contendo 1.

Veja também array_filter(),
array_map(),
array_unique() e array_count_values().

Anterior | Principal | Próxima
array_rand | Acima | array_reverse


array_reverse

(PHP 4 , PHP 5)

array_reverse -- Retorna um array com os elementos na ordem inversa

Descrição

array array_reverse ( array array [, bool preserve_keys])

array_reverse() recebe o argumento array e retorna um novo array com a ordem dos elementos invertida, preservando as chaves se o argumento preserve_keys for TRUE.

Exemplo 1. Exemplo de array_reverse()

<?php
$input = array("php", 4.0, array ("verde", "vermelho"));
$result = array_reverse($input);
$result_keyed = array_reverse($input, TRUE);
?>

O programa acima fará com que $result e $result_keyed tenham os mesmos elementos, mas note a diferença entre as chaves. A saída de $result e $result_keyed será:

Array
(
    [0] => Array
        (
            [0] => verde
            [1] => vermelho
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => verde
            [1] => vermelho
        )

    [1] => 4
    [0] => php
)

Nota: O segundo argumento foi adicionado no PHP 4.0.3.

Veja também array_flip().

Anterior | Principal | Próxima
array_reduce | Acima | array_search


array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search -- Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado

Descrição

mixed array_search ( mixed needle, array haystack [, bool strict])

Procura em haystack pelo valor needle e retorna sua chave se for encontrado no array, e FALSE em caso contrário.

Nota: A partir do PHP 4.2.0, array_search() retorna NULL em caso de falha ao invés de FALSE.

Se o terceiro parâmetro opcional strict for passado como TRUE então array_search() também fará uma checagem de tipos de needle em haystack.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Veja também array_keys(),
array_values(),
array_key_exists() e in_array().

Anterior | Principal | Próxima
array_reverse | Acima | array_shift


array_shift

(PHP 4 , PHP 5)

array_shift -- Retira o primeiro elemento de um array

Descrição

mixed array_shift ( array array)

array_shift() retira o primeiro elemento de array e o retorna, diminuindo array em um elemento e movendo todos os outros elementos para trás. Todas as chaves numéricas alteradas para começar a contar a de 0 (zero), enquanto chaves string permanecerão inalteradas. Se array estiver vazio (ou se não for um array), o valor NULL é retornado.

Nota: Esta função irá resetar() o ponteiro do array depois do uso.

Exemplo 1. Exemplo de array_shift()

<?php
$cesta = array("laranja", "banana", "melancia", "morango");
$fruta = array_shift($cesta);
print_r($cesta);
?>

O programa acima resultaria em $stack tendo 3 elementos:

Array
(
    [0] => banana
    [1] => melancia
    [2] => morango
)

e laranja seria passado para $fruta.

Veja também array_unshift(),
array_push() e
array_pop().

Anterior | Principal | Próxima
array_search | Acima | array_slice


array_slice

(PHP 4 , PHP 5)

array_slice -- Extrai uma parcela de um array

Descrição

array array_slice ( array array, int offset [, int length])

array_slice() retorna a sequência de elementos de array especificada pelos parâmetros offset e length.

Se offset for positivo, a sequência começará do início de array. Se offset for negativo, a sequência começará dessa distância do final de array.

Se length for especificado e positivo, então a sequência terá essa quantidade de elementos. Se length for especificado e negativo então a sequência pará dessa quantidade elementos a partir do final do array. Se for omitido, então a sequência terá todos os elementos a partir de offset até o final de array.

Note que array_slice() ignorará chaves e irá calcular os inícios e comprimentos dos intervalos baseada na posição absoluta dos elementos no array.

Exemplo 1. Exemplos de array_slice()

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // retorna "c", "d", e "e"
$output = array_slice($input, 2, -1);  // retorna "c", "d"
$output = array_slice($input, -2, 1);  // retorna "d"
$output = array_slice($input, 0, 3);   // retorna "a", "b", e "c"
?>

Veja também array_splice() e unset().

Anterior | Principal | Próxima
array_shift | Acima | array_splice


array_splice

(PHP 4 , PHP 5)

array_splice -- Remove uma parcela do array e substitui com outros elementos

Descrição

array array_splice ( array input, int offset [, int length [, array replacement]])

array_splice() remove a sequência de elementos do array input especificados por offset e length, e os substitui com os elementos do array replacement, se for especificado. Retorna um array contendo os elementos removidos.

Se offset for positivo então o começo da região a ser removida será nessa posição a partir do início do array input. Se offset for negativo então o ínicio será dessa distância do final de input.

Se length for omitido, todos os elementos a partir de offset até o final do array serão removidos. Se length for especificado e positivo, então essa quantidade de elementos será removida. Se length for especificado e negativo então o final da região a ser removida será dessa quantidade de elementos a partir do final do array. Dica: para remover todos elementos a partir de offset até o final do array quando replacement também é especificado, use count($input) para o argumento length.

Se o array replacement for especificado, então os elementos removidos serão substituidos pelo elementos desse array. Se offset e length são dados de forma que nada será removido, então os elementos de replacement serão inseridos no lugar especificado por offset. Dica: se a substituição for de apenas um elemento então não será necessário colocar array() para ele, a não ser que elementos seja um array.

As seguintes equivalências abaixo são válidas:

Tabela 1. Equivalências de array_splice()

array_push($input, $x, $y) | array_splice($input, count($input), 0, array($x, $y))
array_pop($input) | array_splice($input, -1)
array_shift($input) | array_splice($input, -1)
array_unshift($input, $x, $y) | array_splice($input, 0, 0, array($x, $y))
$a[$x] = $y | array_splice($input, $x, 1, $y)

Retorna um array contendo os elementos removidos.

Exemplo 1. Exemplos de array_splice()

<?php
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 2);
// $input será agora array("vermelho", "verde")

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, -1);
// $input será agora array("vermelho", "amarelo")

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, count($input), "laranja");
// $input será agora array("vermelho", "laranja")

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, -1, 1, array("preto", "marrom"));
// $input será agora array("vermelho", "verde", "azul", "preto", "marrom")
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 3, 0, "roxo");
// A array $input agora é ("vermelho", "verde",
//          "azul", "roxo", "amarelo");

?>

Veja também array_slice(),
unset() e
array_merge().

Anterior | Principal | Próxima
array_slice | Acima | array_sum


array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sum -- Calcula a soma dos elementos de um array

Descrição

mixed array_sum ( array arr)

array_sum() retorna a soma dos valores de um array como inteiro ou real.

Exemplo 1. Exemplos de array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "soma(a) = ".array_sum($a)."\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "soma(b) = ".array_sum($b)."\n";
?>

A saída do programa acima seria:

soma(a) = 20
soma(b) = 6.9

Nota: Até a versão 4.2.1 do PHP, o array em si é modificado e converte strings para valores numéricos (as quais na maioria das vezes é convertida para zero a depender dos seus valores).

Anterior | Principal | Próxima
array_splice | Acima | array_udiff_assoc


array_udiff_assoc

(PHP 5)

array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.

Description

array array_udiff_assoc ( array array1, array array2 [, array ..., callback data_compare_func])

array_udiff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison.

Exemplo 1. array_udiff_assoc() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

The result is:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In our example above you see the "1" => new cr(4) pair is present in both arrays and thus it is not in the ouput from the function.

For comparison is used the user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Nota: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Anterior | Principal | Próxima
array_sum | Acima | array_udiff_uassoc


array_udiff_uassoc

(PHP 5)

array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

Description

array array_udiff_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func])

array_udiff_uassoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback : data_compare_func. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison. The comparison of keys (indices) is done also by the callback function key_compare_func. This behaviour is unlike what array_udiff_assoc() does, since the latter compares the indices by using an internal function.

Exemplo 1. array_udiff_uassoc() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

The result is:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In our example above you see the "1" => new cr(4) pair is present in both arrays and thus it is not in the ouput from the function. Keep in mind that you have to supply 2 callback functions.

For comparison is used the user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Nota: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_assoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Anterior | Principal | Próxima
array_udiff_assoc | Acima | array_udiff


array_udiff

(PHP 5)

array_udiff -- Computes the difference of arrays by using a callback function for data comparison.

Description

array array_udiff ( array array1, array array2 [, array ..., callback data_compare_func])

array_udiff() returns an array containing all the values of array1 that are not present in any of the other arguments. Note that keys are preserved. For the comparison of the data data_compare_func is used. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike array_diff() which uses an internal function for comparing the data.

Exemplo 1. array_udiff() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

The result is:

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Nota: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.

Nota: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using array_udiff($array1[0], $array2[0], "data_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Anterior | Principal | Próxima
array_udiff_uassoc | Acima | array_unique


array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_unique -- Remove o valores duplicados de um array

Descrição

array array_unique ( array array)

array_unique() recebe o argumento array e retorna um novo array sem valores duplicados.

Note que as chaves são preservadas. array_unique() ordena inicialmente os valores como strings mantendo a primeira chave encontrada para cada valor, e ignorando as chaves encontradas posteriormente. Isso não significa que a chave do primeiro valor do array ainda desordenado será mantido.

Nota: Dois elementos são considerados iguais se, e somente se, (string) $elem1 === (string) $elem2. Em palavras: quando a represetação em string é a mesma.

O primeiro será usado.

Exemplo 1. Exemplo de array_unique()

<?php
$input = array("a" => "verde", "vermelho", "b" => "verde", "azul", "vermelho");
$result = array_unique($input);
print_r($result);
?>

A saída seria:

Array
(
    [a] => verde
    [1] => azul
    [2] => vermelho
)

Exemplo 2. array_unique() e tipos

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

A saída do programa acima seria:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Anterior | Principal | Próxima
array_udiff | Acima | array_unshift


array_unshift

(PHP 4 , PHP 5)

array_unshift -- Adiciona um ou mais elementos no início de um array

Descrição

int array_unshift ( array array, mixed var [, mixed ...])

array_unshift() adiciona os elementos passados como argumentos no início de array. Note que a lista de elementos é adicionada como um todo, de forma que eles ficam na mesma ordem. Todas as chaves numéricas serão modificadas para começar a contar de 0 (zero) enquanto chaves strings permanecerão inalteradas.

Retorna o novo número de elementos de array.

Exemplo 1. Exemplo de array_unshift()

<?php
$cesta = array("laranja", "banana");
array_unshift($cesta, "melancia", "morango");
?>

O programa acima resultaria em $queue contendo os seguintes elementos:

Array
(
    [0] => melancia
    [1] => morango
    [2] => laranja
    [3] => banana
)

Veja também array_shift(),
array_push() e
array_pop().

Anterior | Principal | Próxima
array_unique | Acima | array_values


array_values

(PHP 4 , PHP 5)

array_values -- Retorna todos os valores de um array

Descrição

array array_values ( array input)

array_values() retorna todos os valores do array input.

Exemplo 1. Exemplo de array_values()

<?php
$array = array("tamanho" => "G", "cor" => "dourado");
print_r(array_values ($array));
?>

A saída seria:

Array
(
    [0] => G
    [1] => dourado
)

Veja também array_keys().

Anterior | Principal | Próxima
array_unshift | Acima | array_walk


array_walk

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

array_walk -- Aplica uma determinada funcão em cada elemento de um array

Descrição

bool array_walk ( array arr, string func [, mixed userdata])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Aplica uma função definida pelo usuário nomeada pelo argumento func em cada elemento de arr. Normalmente, func recebe dois argumentos: o primeiro é o valor do elemento e o segundo, sua chave. Se userdata for especificado, ele será usado como terceiro argumento da função do usuário.

Se func necessita de mais argumentos do que o que está sendo passado para ela, um erro do nível E_WARNING será gerado a cada vez que array_walk() executar func. Esses avisos podem ser suprimidos adicionando o operador @ à chamada da função array_walk(), ou usando error_reporting().

Nota: Se func precisar alterar realmente os valores do array, especifique que o primeiro parâmetro de func deve ser passado por referência. Então qualquer mudança feita nesses elementos serão feitas no próprio array também.

Nota: A passagem das chaves e do terceiro argumento para func foi adicionada no PHP 4.0.0.

array_walk() não é afetada pelo ponteiro interno do array arr. array_walk() irá percorrer todo o array independente da posição atual do ponteiro interno. Para reiniciar o ponteiro, use reset(). No PHP 3, array_walk() reinicia o ponteiro.

Usuários não podem alterar o array a partir da função definida para ser usada. Por exemplo, adicionar/remover elementos, removerá o array no qual array_walk() está sendo aplicada. Se o array for alterado, o comportamento desta função se torna imprevisível.

Exemplo 1. Exemplo de array_walk()

<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");

function test_alter(&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key) {
    echo "$key. $item2<br>\n";
}

echo "Antes ...:\n";
array_walk($frutas, 'test_print');

array_walk($frutas, 'test_alter', 'fruta');
echo "... e depois:\n";

array_walk($frutas, 'test_print');
?>

A saída do programa acima seria:

Antes ...:
d. limao
a. laranja
b. banana
c. melancia
... e depois:
d. fruit: limao
a. fruit: laranja
b. fruit: banana
c. fruit: melancia

Veja também array_map(), list(), foreach, each() e call_user_func_array().

Anterior | Principal | Próxima
array_values | Acima | array


array

(PHP 3, PHP 4, PHP 5 )

array -- Cria um array

Descrição

array array ( [mixed ...])

Retorna um array a partir dos valores fornecidos. Índices podem ser atribuidos aos valores através do operador =>. leia a seção sobre o tipo array(matriz) para maiores informações sobre o que é uma matriz.

Nota: array() é uma estrutura utilizada para representar literais de arrays, e não uma função.

A sintaxe "index => values", separados por vírgulas, definem índice e valores respectivamente. O índice por de ser do tipo string ou numérico. Quando o índice é omitido, um índice numérico inteiro é automaticamente gerado, começando do 0. Se o índice é um inteiro, o próximo índice a ser gerado será igual ao maior índice inteiro + 1. Note que quando dois índices idênticos são definidos, o último sobrescreve o primeiro.

O exemplo a seguir demonstra como criar um array com duas dimensões, como especificar chaves em arrays associativos, e como definir índices numéricos em arrays normais.

Exemplo 1. Exemplo de array()

<?php
$frutas = array (
    "frutas" => array("a"=>"laranja", "b"=>"banana", "c"=>"maçã"),
    "numeros" => array(1, 2, 3, 4, 5, 6),
    "buracos" => array("primeiro", 5 => "segundo", "terceiro")
)
?>

Exemplo 2. Indexação automática com array()

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>

Vai mostrar:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Note que o índice 3 é definido duas vezes, e retêm seu último valor 13. O índice 4 é definido depois do índice 8, e o índice gerado depois dele foi 9, uma vez que o maior índice era 8.

Esse exemplo cria um array com o índices a partir do 1.

Exemplo 3. Array com índices a partir do 1 com array()

<?php
$firstquarter = array(1 => 'January', 'February','March');
print_r($firstquarter);
?>

Vai mostrar:

Array
(
    [1] => Janeiro
    [2] => Fevereiro
    [3] => Marco
)

Veja também array_pad(),
list(), foreach
e range().

Anterior | Principal | Próxima
array_walk | Acima | arsort


arsort

(PHP 3, PHP 4 , PHP 5)

arsort -- Ordena um array em ordem descrescente mantendo a associação entre índices e valores

Descrição

void arsort ( array array [, int sort_flags])

Esta função ordena um array de forma que a correlação entre índices e valores é mantida. É usada principalmente para ordenar arrays associativos onde a ordem dos elementos é um fator importante.

Exemplo 1. Exemplo de arsort()

<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");
arsort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
    echo "$chave = $valor\n";
}
?>

A saída deste exemplo seria:

c = melancia
d = limao
a = laranja
b = banana

As frutas foram ordenadas na ordem alfabética inversa, e os índices associados a cada valor foram mantidos.

Você pode modificar o comportamento da ordenação usando o parâmetro opcional sort_flags, para mais detalhes veja sort().

Veja também: asort(), rsort(), ksort() e sort().

Anterior | Principal | Próxima
array | Acima | asort


asort

(PHP 3, PHP 4 , PHP 5)

asort -- Ordena um array mantendo a associação entre índices e valores

Descrição

void asort ( array array [, int sort_flags])

Essa função ordena um array de forma que a correlação entre índices e valores é mantida. É usada principalmente para ordenar arrays associativos onde a ordem dos elementos é um fator importante.

Exemplo 1. Exemplo de asort()

<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");
asort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
    echo "$chave = $valor\n";
}
?>

A saída desse programa seria:

b = banana
a = laranja
d = limao
c = melancia

As frutas foram ordenadas na ordem alfabética, e os índices associados a cada valor foram mantidos.

Você pode modificar o comportamento da ordenação usando o parâmetro opcional sort_flags, para mais detalhes veja sort().

Veja também arsort(), rsort(), ksort() e sort().

Anterior | Principal | Próxima
arsort | Acima | compact


compact

(PHP 4 , PHP 5)

compact -- Cria um array contendo variáveis e seus valores

Descrição

array compact ( mixed varname [, mixed ...])

compact() recebe um número variável de parâmetros. Cada parâmetro pode ser tanto uma string contendo o nome da variável, como um array com nomes de variáveis. Sendo um array, ele pode conter outros arrays de nomes de variáveis; compact() trata isso recursivamente.

Para cada um dos parâmetros passados, compact() procura uma variável com o nome especificado na tabela de símbolos e a adiciona no array de saída de forma que o nome da variável será a chave e o seu conteúdo será o valor para esta chave. Em resumo, ela faz o oposto de extract(). Retorna um array de saída com todas as variáveis adicionadas a ele.

Qualquer string com nome de uma variável que não exista será simplesmente ignorada.

Exemplo 1. Exemplo de compact()

<?php
$cidade = "Sao Paulo";
$estado = "SP";
$evento = "SIGGRAPH";

$localidade = array("cidade", "estado");

$result = compact("evento", "nada_aqui", $localidade);
?>

Depois disso, $result será:

Array
(
    [evento] => SIGGRAPH
    [cidade] => Sao Paulo
    [estado] => SP
)

Veja também extract().

Anterior | Principal | Próxima
asort | Acima | count


count

(PHP 3, PHP 4 , PHP 5)

count -- Conta o número de elementos de uma variável

Descrição

int count ( mixed var [, int mode])

Retorna o número de elementos de var, que normalmente é um array (uma vez que qualquer outra coisa terá apenas um elemento).

Se var não for um array, 1 será retornado (excessão: count(NULL) retorna 0).

Nota: O parâmetro opcional mode esta disponível apartir do PHP 4.2.0.

Se o parâmetro opcional mode for COUNT_RECURSIVE (ou 1), a função count() irá recursivamente contar a matriz. Isto é particularmente util para contar elementos em matriz multidimensional. O valor padrão para mode é 0.

Cuidado

count() pode retornar 0 para uma variável que não existe, mas também pode retornar 0 para uma variável que tenha sido inicializada como um array vazio. Use isset() para checar se a variável existe.

Por favor, veja a sessão Arrays do manual para uma explicação mais detalhada sobre como os arrays são implementados e utilizados no PHP.

Exemplo 1. Exemplo de count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result == 3;
?>

Exemplo 2. Uso recursivo da função count() (PHP >= 4.2.0)

<?php
$food = array( 'fruits'  => array('orange', 'banana', 'apple'),
'veggie'  => array('carrot', 'collard','pea'));
// recursive count
echo count($food,COUNT_RECURSIVE);  // mostra 8
// normal count
echo count($food);                  // mostra2 2
?>

Nota: A função sizeof() é um alias para count().

Veja também is_array(),
isset() e
strlen().

Anterior | Principal | Próxima
compact | Acima | current


current

(PHP 3, PHP 4 , PHP 5)

current -- Retorna o elemento corrente em um array

Descrição

mixed current ( array array)

Todo array tem um ponteiro interno para o elemento "atual", o qual é inicializado para apontar para o primeiro elemento inserido em um array.

A função current() simplesmente retorna o elemento do array para o qual esse ponteiro interno está apontando. Não move o ponteiro de forma alguma. Se o ponteiro interno estiver apontando para além do final da lista de elementos, current() retorna FALSE.

Atenção

Se o array contêm elementos vazios (0 ou "", uma string vazia) então esta função retorna FALSE para esses elementos. Isso faz com que seja impossível determinar se você está realmente no final da lista de elementos de um array usando current(). Para percorrer devidamente um array que pode conter elementos vazios, use a função each().

Exemplo 1. Exemplo do uso de current() e amigos

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
?>

Veja também end(), key(), next(), prev() e reset().

Anterior | Principal | Próxima
count | Acima | each


each

(PHP 3, PHP 4 , PHP 5)

each -- Retorna o par chave/valor corrente de um array e avança o seu cursor

Descrição

array each ( array array)

Retorna o par chave/valor corrente de array e avança o seu cursor. Esse par é retornado num array de quatro elementos, com as chaves 0, 1, key, e value. Os elementos 0 e key contêm o nome da chave do elemento do array, e 1 e value contêm o valor.

Se o cursor interno do array estiver apontando para além do final do array, each() retorna FALSE.

Exemplo 1. Exemplos de each()

<?php

$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar agora contém os seguintes pares de chaves e valores:

Array
  (
      [1] => bob
      [value] => bob
      [0] => 0
      [key] => 0
  )

<?php
  $foo = array("Robert" => "Bob", "Seppo" => "Sepi");
  $bar = each($foo);
  print_r($bar);
  ?>

$bar agora contém os seguintes pares de chaves e valores:

Array
  (
      [1] => Bob
      [value] => Bob
      [0] => Robert
      [key] => Robert
  )

each() é tipicamente usada em conjunto com list() para percorrer um array, por exemplo:

Exemplo 2. Percorrendo um array com each()

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
      echo "$key => $val\n";
}
/* Saída:

  a => apple
  b => banana
  c => cranberry

  */
?>

Depois da execução de each(), o cursor interno do array vai apontar para o próximo elemento do array, ou após o último elemento se ele chegar ao final do array. Você deve usar reset() se quiser percorrer o array novamente.

Cuidado

Because assigning an array to another variable resets the original arrays pointer, our example above would cause an endless loop had we assigned $fruit to another variable inside the loop.

Veja também key(), list(),
current(), reset(),
next(), prev() e
foreach.

Anterior | Principal | Próxima
current | Acima | end


end

(PHP 3, PHP 4 , PHP 5)

end -- Faz o ponteiro interno de um array apontar para o seu último elemento

Descrição

mixed end ( array array)

end() avança o ponteiro interno de array até o seu último elemento, e retorna o último elemento.

Exemplo 1. Exemplo simples de end()

<?php

  $frutas = array('melancia', 'banana', 'morango');

  print end($frutas); // morango
?>

Veja também current(),
each(),
prev(),
next() e
reset().

Anterior | Principal | Próxima
each | Acima | extract


extract

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

extract -- Importa variáveis para a tabela de símbolos a partir de um array

Descrição

int extract ( array var_array [, int extract_type [, string prefix]])

Essa função é usada para importar variáveis a partir de um array para a tabela de símbolos corrente. Recebe o array associativo var_array e trata as suas chaves como os nomes das variáveis e os valores como valores das variáveis. Para cada par chave/valor ele criará uma variável na tabela de símbolos corrente, seguindo os parâmetros extract_type e prefix.

Nota: Iniciado com a versão 4.0.5, esta função devolve o número de variáveis extraídas.

Nota: EXTR_IF_EXISTS e EXTR_PREFIX_IF_EXISTS foi introduzido na versão 4.2.0.

Nota: EXTR_REFS foi introduzido na versão 4.3.0.

extract() checa se cada chave do array constitui um nome de variável válido e por colisões com as variáveis já existentes na tabela de símbolos. O modo com que chaves inválidas ou númericas e colisões são tratadas é determinado pelo argumento extract_type. Esse argumento pode receber os seguintes valores:

EXTR_OVERWRITE

Se houver uma colisão, sobrescreve a variável existente.

EXTR_SKIP

Se houver uma colisão, não sobrescreve a variável existente.

EXTR_PREFIX_SAME

Se houver uma colisão, adiciona um prefixo ao nome da variável definido pelo argumento prefix.

EXTR_PREFIX_ALL

Adiciona um prefixo ao nome de todas as variáveis definido por prefix. Desde o PHP 4.0.5 estão incluídos nomes numéricos.

EXTR_PREFIX_INVALID

Adiciona um prefixo definido por prefix apenas para variáveis como nomes inválidos ou numéricos. Essa opção foi adicionada no PHP 4.0.5.

EXTR_IF_EXISTS

Só sobrescreve a variável se ela já existe na tabela de símbolos corrente, caso contrário, não faz nada. Isso é útil quando se quer definir uma lista de variáveis válidas e então extrair só as que foram definidas em $_REQUEST, por exemplo. Essa opção foi adicionada no PHP 4.2.0.

EXTR_PREFIX_IF_EXISTS

Só cria nomes de variáveis usando o prefixo se na tabela de símbolos já existe uma variável com o nome sem esse prefixo. Essa opção foi adicionada no PHP 4.2.0.

EXTR_REFS

Extrai variáveis como referências, ou seja, os valores das variáveis importadas ainda estarão referenciando os valores do parâmetro var_array. Essa opção pode ser usada sozinha ou em conjunto com as outras usando o operador 'ou' em extract_type. Essa opação foi adicionada no PHP 4.3.0.

Se extract_type não for especificado, é assumido o valor EXTR_OVERWRITEpor padrão.

Note que prefix só é necessário se extract_type for EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, ou EXTR_PREFIX_INVALID ou EXTR_PREFIX_IF_EXISTS. Se o nome com o prefixo não for um nome de variável válido, ela não será importada para a tabela de símbolos.

extract() retorna o número de variáveis importadas com sucesso para a tabela de símbolos.

Uma possível utilização de extract() é na importação de variáveis contidas num array associativo retornado pela função wddx_deserialize().

Exemplo 1. Exemplo de extract()

<?php

/* Suponha que $var_array é um array retornado pela função
   wddx_deserialize */

$tamanho = "grande";
$var_array = array ("cor" => "azul",
                    "tamanho"  => "medio",
                    "forma" => "esfera");
extract ($var_array, EXTR_PREFIX_SAME, "wddx");

print "$cor, $tamanho, $forma, $wddx_tamanho\n";

?>

O exemplo acima produziria:

azul, grande, esfera, medio

O $tamanho não foi sobrescrito, porque nós especificamos EXTR_PREFIX_SAME, o que resultou na criação da variável $wddx_tamanho. Se EXTR_SKIP fosse utilizado, então $wddx_tamanho não seria criada. EXTR_OVERWRITE teria feito com que $tamanho tivesse o valor "medio", e EXTR_PREFIX_ALL resultaria em novas variáveis com os nomes $wddx_cor, $wddx_tamanho, e $wddx_forma.

Você deve usar um array associativo, um array indexado numericamente não produzirá resultados a menos que você use EXTR_PREFIX_ALL ou EXTR_PREFIX_INVALID.

Veja também compact().

Anterior | Principal | Próxima
end | Acima | in_array


in_array

(PHP 4 , PHP 5)

in_array -- Checa se um valor existe em um array

Descrição

bool in_array ( mixed needle, array haystack [, bool strict])

Procura em haystack pelo valor needle e retorna TRUE se este valor for encontrado no array, e FALSE em caso contrário.

Se o terceiro parâmetro strict for TRUE então in_array() também irá checar os tipos de needle em haystack.

Nota: Se needle for uma string, a comparação é feita diferenciando caracteres maiúsculos e minúsculos.

Nota: Em versões do PHP mais antigas que 4.2.0 needle não pode ser um array.

Exemplo 1. Exemplo de in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    print "Tem Irix";
}
if (in_array("mac", $os)) {
    print "Tem mac";
}
?>

A segunda condicional falha pois in_array() diferencia letras minúsculas e maiúsculas. Então, a saída seria:

Got Irix

Exemplo 2. in_array() com checagem de tipos

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, TRUE)) {
    echo "'12.4' encontrado com checagem de tipo\n";
}
if (in_array(1.13, $a, TRUE)) {
    echo "1.13 encontrado com checagem de tipo\n";
}
?>

A saída seria:

1.13 encontrado com checagem de tipo

Exemplo 3. Exemplo de in_array() passando um array para needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' foi encontrado\n";
    }
if (in_array(array('f', 'i'), $a)) {
    echo "'fi' foi encontrado\n";
    }
if (in_array('o', $a)) {
    echo "'o' foi encontrado\n";
    }
    /* Outputs:
    'ph' was found
    'o' was found
    */
?>

Veja também array_search(),
array_key_exists() e
isset().

Anterior | Principal | Próxima
extract | Acima | key


key

(PHP 3, PHP 4 , PHP 5)

key -- Retorna uma chave de um array associativo

Descrição

mixed key ( array array)

key() retorna a chave da posição corrente de um array.

Exemplo 1. key() exemplo

<?php
  $array = array(
      'fruit1' => 'apple',
      'fruit2' => 'orange',
      'fruit3' => 'grape',
      'fruit4' => 'apple',
      'fruit5' => 'apple');

  // este ciclo  exibirá toda a chave do array associativo
  // onde o valor é igual a "apple"
  while ($fruit_name = current($array)) {
      if ($fruit_name == 'apple') {
          echo key($array).'<br>';
      }
      next($array);
  }
  ?>

Veja também current() e next().

Anterior | Principal | Próxima
in_array | Acima | krsort


krsort

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

krsort -- Ordena um array pelas chaves em ordem descrescente

Descrição

int krsort ( array array [, int sort_flags])

Ordena um array pelas chaves em ordem descrescente, mantendo a correlação entre entre as chaves e os valores. Essa função é bastante útil em arrays associativos.

Exemplo 1. Exemplo de krsort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "$key = $val\n";
}
?>

A saída deste programa seria:

d = limao
c = melancia
b = banana
a = laranja

Você pode alterar o comportamento da ordenação utilizando o parâmetro opcional sort_flags, para mais detalhes veja sort().

Veja também asort(),
 arsort(),
krsort(),
 uksort(),
sort(),
natsort() e
rsort().

Anterior | Principal | Próxima
key | Acima | ksort


ksort

(PHP 3, PHP 4 , PHP 5)

ksort -- Ordena um array pelas chaves

Descrição

int ksort ( array array [, int sort_flags])

Ordena um array pelas chaves, mantendo a correlação entre as chaves e os valores. Essa função é bastante útil principalmente para arrays associativos.

Exemplo 1. Exemplo de ksort()

<?php
$frutas = array("d"=>"limao", "a"=>"laranja", "b" =>"banana", "c"=>"maçã");
ksort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
    echo "$chave = $valor\n";
}
?>

O programa acima mostraria:

a = laranja
b = banana
c = maçã
d = limao

Você pode modificar o comportamento da ordenação através do parâmetro opcional sort_flags, para mais detalhes veja sort().

Veja também asort(), arsort(),
krsort(), uksort(),
sort(), natsort() e
rsort().

Nota: O segundo parâmetro foi adicionado a partir do PHP 4.

Anterior | Principal | Próxima
krsort | Acima | list


list

(PHP 3, PHP 4, PHP 5 )

list -- Cria variáveis como se fossem arrays

Descrição

void list ( mixed ...)

Assim como array(), não é exatamente uma função, e sim uma construção da própria linguagem. list() é usada para criar uma lista de variáveis em apenas um operação.

Nota: list() só funciona em arrays com índices numéricos e assume que esses índices começam de 0 (zero).

Exemplo 1. Exemplo de list()

<?php

$info = array('Café', 'marrom', 'cafeína');

// Listando todas as variáveis
list($bebida, $cor, $substancia) = $info;
print "$bebida is $cor e $substancia a faz especial.\n";

// Listando apenas alguns deles
list($bebida, , $substanciar) = $info;
print "$bebida tem $substancia.\n";

// Ou ignoramos os primeiros valores para conseguir apenas o último
list( , , $substancia) = $info;
print "I need $substancia!\n";

?>

Exemplo 2. Exemplo de list()

<table>
 <tr>
  <th>Lista de empregados</th>
  <th>Salário</th>
 </tr>

<?php

$result = mysql_query ("SELECT id, nome, salario FROM empregados", $conn);
while (list ($id, $nome, $salario) = mysql_fetch_row ($result)) {
     echo " <tr>\n" .
           "  <td><a href=\"info.php?id=$id\">$nome</a></td>\n" .
           "  <td>$salario</td>\n" .
            " </tr>\n";
}

?>

</table>

Atenção

A função list() assinala os valores começando pelos parâmetros da direita. Se você está usando variáveis normais, então não precisa se preocupar com esse detalhe. Mas se você está usando arrays com índices você normalmente iria esperar que a ordem dos índices no array fosse da esquerda para a direita, mas não é isso que acontece. O índice é criado na ordem reversa.

Exemplo 3. Usando list() com índices de array

<?php

$info = array('café', 'marrom', 'cafeína');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

O retorno desse script é o seguinte (note a ordem dos elementos em comparação com o array original):

array(3) {
  [2]=>
  string(8) "cafeína"
  [1]=>
  string(5) "marrom"
  [0]=>
  string(6) "café"
}

Veja também each(), array() e extract().

Anterior | Principal | Próxima
ksort | Acima | natcasesort


natcasesort

(PHP 4 , PHP 5)

natcasesort -- Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas

Descrição

void natcasesort ( array array)

Essa função implementa o algoritmo de ordenação que ordena strings alfanuméricas da forma que os humanos fariam. Essa forma de ordenação é denominada "ordenação natural".

natcasesort() é uma versão de natsort() que não diferencia letras maiúsculas e minúsculas. Veja natsort() para saber a diferença entre esse algoritmo e os algoritmos utlizados normalmente para ordenação de strings.

Para mais informações veja: Martin Pool's Natural Order String Comparison page.

Veja também sort(),
natsort(),
strnatcmp() e
strnatcasecmp().

Anterior | Principal | Próxima
list | Acima | natsort


natsort

(PHP 4 , PHP 5)

natsort -- Ordena um array utilizando o algoritmo da "ordem natural"

Descrição

void natsort ( array array)

Essa função é um implementação do algoritmo que ordena strings alfanuméricas da forma como um ser humano faria. Isso é chamado de "ordenação natural". Um exemplo da diferença entre esse algoritmo e o algoritmo com o qual o computador classifica strings (usado em sort()) pode ser visto abaixo:

Exemplo 1. Exemplo de natsort()

$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);
echo "Classificação normal\n";
print_r($array1);

natsort($array2);
echo "\nClassificação da \"ordem natural\"\n";
print_r($array2);

O código acima geraria a seguinte saída:

Classificação normal
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Classificação da "ordem natural"
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Para mais informações veja: Martin Pool's Natural Order String Comparison page.

Nota: Se quiser manter a correlação entre chaves e valores, considere a possibilidade de utilizar uasort($arr, 'strnatcmp').

Veja também natcasesort(),
strnatcmp() e
strnatcasecmp().

Anterior | Principal | Próxima
natcasesort | Acima | next


next

(PHP 3, PHP 4 , PHP 5)

next -- Avança o ponteiro interno de um array

Descrição

mixed next ( array array)

Retorna o elemento do array que está na próxima posição que é apontada pelo ponteiro interno do array, ou FALSE caso não existam mais elementos.

next() funciona de forma semelhante a current(), com uma diferença. Ele avança o ponteiro interno do array em uma posição antes de retornar o valor do elemento. Isso significa que ela retorna o próximo valor do array avançando o ponteiro interno em uma posição. Se o ponteiro interno apontar para além do final da lista de elementos , next() retorna FALSE.

Atenção

Se o array contiver elementos vazios, ou se elementos tiverem chaves com 0 como valor então essa função retorna FALSE para esses elementos. Para percorrer um array que pode conter elementos vazios ou elementos que tenham chaves com 0 como valor veja a função each().

Exemplo 1. Exemplo de uso de next() e funções relacionadas

<?php
  $transport = array('foot', 'bike', 'car', 'plane');
  $mode = current($transport); // $mode = 'foot';
  $mode = next($transport);    // $mode = 'bike';
  $mode = next($transport);    // $mode = 'car';
  $mode = prev($transport);    // $mode = 'bike';
  $mode = end($transport);     // $mode = 'plane';
  ?>

Veja também current(), end(), prev() e reset().

Anterior | Principal | Próxima
natsort | Acima | pos


pos

(PHP 3, PHP 4 , PHP 5)

pos -- Retorna o elemento atual do array

Descrição

mixed pos ( array array)

Essa função é um alias para current().

Veja também end(), next(), prev() e reset().

Anterior | Principal | Próxima
next | Acima | prev


prev

(PHP 3, PHP 4 , PHP 5)

prev -- Retrocede o ponteiro interno de um array

Descrição

mixed prev ( array array)

Retorna o valor do array que está na posição anterior a posição apontada pelo ponteiro interno, ou FALSE se houver mais elementos.

Atenção

Se o array contiver elementos vazios então essa função retornará FALSE para esses elementos. Para percorrer corretamente arrays que podem conter elementos vazios veja a função each().

prev() funciona da mesma forma que next(), com a única diferença sendo de que a primeira retrocede o ponteiro interno em uma posição ao invés de avançá-lo.

Exemplo 1. Exemplo de uso prev() e funções relacionadas

<?php
  $transport = array('foot', 'bike', 'car', 'plane');
  $mode = current($transport); // $mode = 'foot';
  $mode = next($transport);    // $mode = 'bike';
  $mode = next($transport);    // $mode = 'car';
  $mode = prev($transport);    // $mode = 'bike';
  $mode = end($transport);     // $mode = 'plane';
  ?>

Veja também current(), end(), next() e reset().

Anterior | Principal | Próxima
pos | Acima | range


range

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

range -- Cria um array contendo uma faixa de elementos

Descrição

array range ( int low, int high [, int step])

range() retorna um array com elementos de low até high, com intervalo fechado. Se low > high, será de high até low.

Novo parâmetro: O parâmetro opcional step foi adicionado no PHP 5.0.0.

Se o parâmetro step for especificado, será usado como o incremento entre os elementos da sequência. step deve ser um inteiro positivo. Se não for especificado, step terá valor igual a 1.

Exemplo 1. range() exemplos

<?php
  // array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 12)
foreach(range(0, 12) as $numero) {
    echo $numero;
}
// O parâmetro step foi introduzido no 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)

foreach(range(0, 100, 10) as $numero) {
    echo $numero;
}
// Utilização da sequência de caracteres introduzidos no 4.1.0
  // array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
  foreach(range('a', 'i') as $letra) {

    echo $letra;
}
// array('c', 'b', 'a');
  foreach(range('c', 'a') as $letra) {

    echo $letra;
}
?>

Nota: Até a versão 4.1.0, a função range() só gerava arrays de inteiros em ordem crescente. O suporte para sequências de caracteres e arrays descrescentes foi adicionado no PHP 4.1.0. Valores de sequência de caracter estão limitados para o comprimento de um. Se um comprimento maior do que um é entrado, apenas o primeiro caractere é usado.

Cuidado

Nas versões de PHP 4.1.0 até 4.3.2, range() vê strings numéricas como strings e não como inteiros. Em lugar disso, eles serão usados por sequência de caracteres. Por exemplo, "4242" é tratado como "4".

Veja também shuffle(), array_fill(), e foreach.

Anterior | Principal | Próxima
prev | Acima | reset


reset

(PHP 3, PHP 4 , PHP 5)

reset -- Faz o ponteiro interno de um array apontar para o seu primeiro elemento

Descrição

mixed reset ( array array)

reset() retrocede o ponteiro interno de array para o primeiro elemento e retorna o valor do primeiro elemento do array.

Exemplo 1. reset() example

<?php

  $array = array('primero passo', 'segundo passo', 'terceiro passo', 'quarto passo');

  // por definição, o ponteiro está sobre o primeiro elemento
  echo current($array)."<br>\n"; // "Primeiro passo"

  // pula dois passos
  next($array);
  next($array);
  echo current($array)."<br>\n"; // "passo três"

  // reinicia o ponteiro, começa novamente o primeiro passo
  reset($array);
  echo current($array)."<br>\n"; // "primeiro passo"

  ?>

    Veja também current(),
each(), next(),
e prev().

Anterior | Principal | Próxima
range | Acima | rsort


rsort

(PHP 3, PHP 4 , PHP 5)

rsort -- Ordena um array em ordem descrescente

Descrição

void rsort ( array array [, int sort_flags])

Essa função ordena um array em ordem descrescente (do maior para o menor).

Exemplo 1. Exemplo de rsort()

<?php
$frutas = array ("limao", "laranja", "banana", "maçã");
rsort ($frutas);
reset ($frutas);
while (list ($chave, $valor) = each ($frutas)) {
    echo "$chave = $valor\n";
}
?>

Esse exemplo mostraria:

0 = melancia
1 = limao
2 = laranja
3 = banana

As frutas foram ordenadas em ordem alfabética decrescente.

Você pode alterar o comportamento da ordenação utilizando o parâmetro opcional sort_flags, para mais detalhes veja sort().

Veja também arsort(),
asort(), ksort(),
sort() e usort().

Anterior | Principal | Próxima
reset | Acima | shuffle


shuffle

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

shuffle -- Mistura os elementos de um array

Descrição

void shuffle ( array array)

Essa função mistura de forma aleatória os elementos de um array. Você deve usar essa função em conjunto com srand().

Exemplo 1. Exemplo de shuffle()

<?php
$numbers = range(1,20);
srand((float)microtime()*1000000);
shuffle($numbers);
while (list(, $number) = each($numbers)) {
    echo "$number ";
}
?>

Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.

Veja também arsort(), asort(),
ksort(), rsort(),
sort() e usort().

Anterior | Principal | Próxima
rsort | Acima | sizeof


sizeof

sizeof -- Apelido de count()

Descrição

Esta função é um apelido de count().

Anterior | Principal | Próxima
shuffle | Acima | sort


sort

(PHP 3, PHP 4 , PHP 5)

sort -- Ordena um array

Descrição

void sort ( array array [, int sort_flags])

Essa função ordena um array. Os elementos serão ordenados do menor para o maior ao final da execução dessa função.

Exemplo 1. Exemplo de sort()

<?php

$frutas = array("limao", "laranja", "banana", "melancia");
sort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
    echo "frutas[".$chave."] = ".$valor."\n";
}

?>

A saída desse programa seria:

fruits[0] = banana
fruits[1] = laranja
fruits[2] = limao
fruits[3] = melancia

As frutas foram classificadas em ordem alfabética.

O segundo argumento opcional sort_flags pode ser usado para modificar o comportamento da ordenação podendo receber os seguintes valores:

Sinais de tipo de ordenação:

  • SORT_REGULAR - compara os itens normalmente

  • SORT_NUMERIC - compara os itens como valores numéricos

  • SORT_STRING - compara os itens como strings

Nota: O segundo parâmetro foi adicionado no PHP 4.

Veja também arsort(),
asort(), ksort(),
natsort(), natcasesort(),
rsort(), usort(),
array_multisort() e
uksort().

Anterior | Principal | Próxima
sizeof | Acima | uasort


uasort

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

uasort -- Ordena um array utilizando uma função de comparação definida pelo usuário e mantendo as associações entre chaves e valores

Descrição

void uasort ( array array, function cmp_function)

Essa função ordena um array de forma que a correlação entre chaves e valores é mantida. Esta função é usada principalmente para classificar arrays associativos onde a ordem dos elementos é um fator importante. A função de comparacão é definida pelo usuário.

Nota: Por favor, veja usort() e uksort() para exemplos de funções de comparação definidas pelo usuário.

Veja também usort(), uksort(),
sort(), asort(),
arsort(), ksort()
e rsort().

Anterior | Principal | Próxima
sort | Acima | uksort


uksort

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

uksort -- Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.

Descrição

void uksort ( array array, function cmp_function)

Essa função irá ordenar as chaves de um array usando uma função de comparação definida pelo usuário. Se o array precisa ser classificado utilizando um critério não trivial, você deve usar essa função.

Exemplo 1. Exemplo de uksort()

function cmp($a, $b) {
    if ($a == $b) {
    return 0;
    }
    return ($a > $b) ? -1 : 1;
}

$a = array(4 => "quatro", 3 => "tres", 20 => "vinte", 10 => "dez");

uksort($a, "cmp");

while (list($chave, $valor) = each($a)) {
    echo "$chave: $valor\n";
}
?>

Esse exemplo mostraria:

20: vinte
10: dez
4: quatro
3: tres

Veja também usort(), uasort(),
sort(), asort(),
arsort(), ksort(),
natsort() e rsort().

Anterior | Principal | Próxima
uasort | Acima | usort


usort

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

usort -- Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário

Descrição

void usort ( array array, string cmp_function)

Essa função irá ordenar um array pelos valores usando uma função de classificação definida pelo usuário. Se o array precisar ser ordenado utilizando um critério não trivial, você deve usar essa função.

A função de comparação deve retornar um inteiro menor, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor, igual, ou maior que o segundo.

Nota: Se dois elementos são considerados iguais, a ordem deles fica indefinida no array resultante. Até o PHP 4.0.6 as funções definidas pelo usuário manteriam a ordem original desses elementos, mas com o novo algoritmo de ordenação introduzido no 4.1.0 esse não é o caso, pois não existe solução para fazer isso de modo eficiente.

Exemplo 1. Exemplo de usort()

<?php
function cmp($a, $b) {
    if ($a == $b) {
    return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

while (list($chave, $valor) = each($a)) {
    echo "$chave: $valor\n";
}
?>

Esse exemplo mostraria:

0: 1
1: 2
2: 3
3: 5
4: 6

Nota: Obviamente que nesse caso trivial a função sort() seria mais apropriada.

Exemplo 2. Exemplo de usort() usando um array multi-dimensional

<?php
function cmp($a, $b) {
    return strcmp($a["fruta"], $b["fruta"]);
}

$frutas[0]["fruta"] = "limoes";
$frutas[1]["fruta"] = "abacaxis";
$frutas[2]["fruta"] = "goiabas";

usort($frutas, "cmp");

while (list($chave, $valor) = each($frutas)) {
    echo "\$frutas[$chave]: " . $valor["fruta"] . "\n";
}
?>

Na ordenação de um array multi-dimensional, $a e $b contêm referências para o primeiro índice do array.

Esse exemplo mostraria:

$fruits[0]: abacaxis
$fruits[1]: goiabas
$fruits[2]: limoes

Exemplo 3. Exemplo de usort() usando uma função membro de um objeto

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Essa é a função estática de comparação */
    function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
        return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array ("TestObj", "cmp_obj"));

foreach ($a as $item) {
    print $item->name . "\n";
}
?>

Esse exemplo mostraria:

b
c
d

Veja também uasort(),
uksort(), sort(),
asort(),
arsort(),ksort(),
natsort(), e rsort().

Anterior | Principal | Próxima
uksort | Acima | Aspell functions [deprecated]


Aspell functions [deprecated]

Manual do PHP
Anterior Próxima

III. Aspell functions [deprecated]

Introdução

The aspell() functions allows you to check the spelling on a word and offer suggestions.

Nota: This extension has been removed from PHP and is no longer available as of PHP 4.3.0. If you want to use spell-checking capabilities in PHP, use pspell instead. It uses pspell library and works with newer versions of aspell.

Requisitos

aspell works only with very old (up to .27.* or so) versions of aspell library. Neither this module, nor those versions of aspell library are supported any longer. You need the aspell library, available from: http://aspell.sourceforge.net/.

Instalação

In PHP 4, these functions are only available if PHP was configured with --with-aspell=[DIR].

Veja Também

See also pspell.

Índice
aspell_check_raw -- Check a word without changing its case or trying to trim it [deprecated]
aspell_check -- Check a word [deprecated]
aspell_new -- Load a new dictionary [deprecated]
aspell_suggest -- Suggest spellings of a word [deprecated]

Anterior | Principal | Próxima
usort | Acima | aspell_check_raw


aspell_check_raw

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check_raw -- Check a word without changing its case or trying to trim it [deprecated]

Description

bool aspell_check_raw ( int dictionary_link, string word)

aspell_check_raw() checks the spelling of a word, without changing its case or trying to trim it in any way and returns TRUE if the spelling is correct, FALSE if not.

Exemplo 1. aspell_check_raw()

<?php

$aspell_link = aspell_new("english");

if (aspell_check_raw($aspell_link, "test")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

?>

Anterior | Principal | Próxima
Aspell functions [deprecated] | Acima | aspell_check


aspell_check

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check -- Check a word [deprecated]

Description

bool aspell_check ( int dictionary_link, string word)

aspell_check() checks the spelling of a word and returns TRUE if the spelling is correct, FALSE if not.

Exemplo 1. aspell_check()

<?php

$aspell_link = aspell_new("english");

if (aspell_check($aspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

?>

Anterior | Principal | Próxima
aspell_check_raw | Acima | aspell_new


aspell_new

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_new -- Load a new dictionary [deprecated]

Description

int aspell_new ( string master [, string personal])

aspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other aspell functions. Returns FALSE on error.

Exemplo 1. aspell_new()

<?php
$aspell_link = aspell_new("english");
?>

Anterior | Principal | Próxima
aspell_check | Acima | aspell_suggest


aspell_suggest

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_suggest -- Suggest spellings of a word [deprecated]

Description

array aspell_suggest ( int dictionary_link, string word)

aspell_suggest() returns an array of possible spellings for the given word.

Exemplo 1. aspell_suggest()

<?php

$aspell_link = aspell_new("english");

if (!aspell_check($aspell_link, "test")) {
    $suggestions = aspell_suggest($aspell_link, "test");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br />\n";
    }
}

?>

Anterior | Principal | Próxima
aspell_new | Acima | BCMath Funções Matemáticas de Precisão Arbitrária


BCMath Funções Matemáticas de Precisão Arbitrária

Manual do PHP
Anterior Próxima

IV. BCMath Funções Matemáticas de Precisão Arbitrária

Introdução

Para matemática de precisão arbitrária, o PHP oferece a Calculadora Binária com suporte a números de qualquer tamanho e precisão, representados como strings.

Requisitos

Desde o PHP 4.0.4, a libbcmath é distribuída junto com o PHP. Você não precisa de nenhuma biblioteca externa para esta extensão.

Instalação

In PHP 4, these functions are only available if PHP was configured with --enable-bcmath. In PHP 3, these functions are only available if PHP was NOT configured with --disable-bcmath.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração da BC Math

Nome | Padrão | Alterável
bcmath.scale | 0 | PHP_INI_ALL
Para mais detalhes e definições para as constantes PHP_INI_* veja a função ini_set().

Breve descrição das diretivas de configuração.

bcmath.scale integer

Número de casas decimais para todas as funções BC Math.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
bcadd -- Adicionar dois números de precisão arbitrária
bccomp -- Comparar dois números de precisão arbitrária
bcdiv -- Dividir dois números de precisão arbitrária
bcmod -- Obter o módulo de um número com precisão arbitrária
bcmul -- Multiplicar dois números de precisão arbitrária
bcpow -- Elevar um número de precisão arbitrária a outro
bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus.
bcscale -- Configura o parâmentro escala para todas as funções bc
bcsqrt -- Obter a raiz quadrada de um número de precisão arbitrária
bcsub -- Subtrair um número de precisão arbitrária de outro

Anterior | Principal | Próxima
aspell_suggest | Acima | bcadd


bcadd

(PHP 3, PHP 4 , PHP 5)

bcadd -- Adicionar dois números de precisão arbitrária

Descrição

string bcadd ( string operador_da_esquerda, string operador_da_direita [, int escala])

Adiciona o operador_da_esquerda ao operador_da_direita e retorna a soma em uma string. O parametro opcional escala é usado para configurar o número de digitos depois do ponto decimal a ser usados no resultado.

Exemplo 1. Exemplo bcadd()

<?php

$a = 1.234;
$b = 5;

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

Veja também bcsub().

Anterior | Principal | Próxima
BCMath Funções Matemáticas de Precisão Arbitrária | Acima | bccomp


bccomp

(PHP 3, PHP 4 , PHP 5)

bccomp -- Comparar dois números de precisão arbitrária

Descrição

int bccomp ( string operador_da_esquerda, string operador_da_direita [, int escala])

Compara o operador_da_esquerda com o operador_da_direita e retorna o resultado como um inteiro. O parametro opcional escala é usado para configurar o número de digitos depois do ponto decimal que serão utilizados na comparação. O valor retornado será 0 se os operadores são iguais. Se o operador_da_esquerda for maior do que o operador_da_direita o valor a ser retornado será +1 e se o operador_da_esquerda é menor do que o operador_da_direita o valor retornado é -1.

Exemplo 1. Exemplo de bccomp()

<?php
echo bccomp('1', '2') . "\n";

echo bccomp('1.00001', '1', 3) . "\n";
echo bccomp('1.00001', '1', 5);
?>

O exemplo acima deverá exibir:

-1
0
1

Anterior | Principal | Próxima
bcadd | Acima | bcdiv


bcdiv

(PHP 3, PHP 4 , PHP 5)

bcdiv -- Dividir dois números de precisão arbitrária

Descrição

string bcdiv ( string operador_da_esquerda, string operador_da_direita [, int escala])

Divide o operador_da_esquerda pelo operador_da_direita e retorna o resultado. O parametro opcional escala é usado para configurar o número de dígitos depois do ponto decimal que serão mostrados no resultado.

Exemplo 1. Exemplo de bcdiv()

<?php

echo bcdiv(105, 6.55957, 3);  // 16.007

?>

Veja também bcmul().

Anterior | Principal | Próxima
bccomp | Acima | bcmod


bcmod

(PHP 3, PHP 4 , PHP 5)

bcmod -- Obter o módulo de um número com precisão arbitrária

Descrição

string bcmod ( string operador_da_esquerda, string modulo)

Obter o módulo do operador_da_esquerda usando modulo.

Exemplo 1. Exemplo de bcmod()

<?php
echo bcmod(4, 2) . "\n";
echo bcmod(2, 4);
?>

O exemplo acima deverá exibir:

0
2

Veja também bcdiv().

Anterior | Principal | Próxima
bcdiv | Acima | bcmul


bcmul

(PHP 3, PHP 4 , PHP 5)

bcmul -- Multiplicar dois números de precisão arbitrária

Descrição

string bcmul ( string operador_da_esquerda, string operador_da_direita [, int escala])

Multipica o operador_da_esquerda pelo operador_da_direita e retorna o resultado. O parametro opcional escala configura o número de dígitos depois do ponto decimal que serão mostrados no resultado.

Exemplo 1. Exemplo de bcmul()

<?php
echo bcmul(1.34747474747, 35, 3) . "\n";
echo bcmul(2, 4);
?>

O exemplo acima deverá exibir:

47.162
8

Veja também bcdiv().

Anterior | Principal | Próxima
bcmod | Acima | bcpow


bcpow

(PHP 3, PHP 4 , PHP 5)

bcpow -- Elevar um número de precisão arbitrária a outro

Description

string bcpow ( number x, int y [, int escala])

Elevar x a potência de y. O parametro opcional escala configura o número de dígitos depois do ponto decimal que serão mostrados no resultado.

Exemplo 1. Exemplo de bcpow()

<?php

echo bcpow(4.2, 3, 2); // 74.08

?>

Veja também bcpowmod() e bcsqrt().

Anterior | Principal | Próxima
bcmul | Acima | bcpowmod


bcpowmod

(PHP 5)

bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus.

Description

string bcpowmod ( string x, string y, string modulus [, int scale])

Use the fast-exponentiation method to raise x to the power y with respect to the modulus modulus. The optional scale can be used to set the number of digits after the decimal place in the result.

The following two statements are functionally identical. The bcpowmod() version however, executes in less time and can accept larger parameters.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a and $b are equal to each other.

?>

Nota: Because this method uses the modulus operation, non-natural numbers may give unexpected results. A natural number is any positive non-zero integer.

See also bcpow(), and bcmod().

Anterior | Principal | Próxima
bcpow | Acima | bcscale


bcscale

(PHP 3, PHP 4 , PHP 5)

bcscale -- Configura o parâmentro escala para todas as funções bc

Descrição

string bcscale ( int escala)

Esta função configura o parâmetro escala padrão para todas as chamadas subsequentes às funções bcmath que não tenham o parâmatro escala informado explicitamente.

Exemplo 1. bcscale() example

<?php

// escala default: 3
bcscale(3);
echo bcdiv(105, 6.55957); // 16.007

// e eh o mesmo que sem o bcscale()
echo bcdiv(105, 6.55957, 3); // 16.007

?>

Anterior | Principal | Próxima
bcpowmod | Acima | bcsqrt


bcsqrt

(PHP 3, PHP 4 , PHP 5)

bcsqrt -- Obter a raiz quadrada de um número de precisão arbitrária

Descrição

string bcsqrt ( string operador [, int scale])

Retorna a raiz quadrada do operador. O parametro opcional escala configura o número de digitos depois do ponto decimal que serão mostrados no resultado.

Exemplo 1. Exemplo de bcsqrt()

<?php

echo bcsqrt(2, 3); // 1.414

?>

Veja também bcpow().

Anterior | Principal | Próxima
bcscale | Acima | bcsub


bcsub

(PHP 3, PHP 4 , PHP 5)

bcsub -- Subtrair um número de precisão arbitrária de outro

Descrição

string bcsub ( string operador_da_esquerda, string operador_da_direita [, int escala])

Subtrair o operador_da_direita do operador_da_esquerda e retorna o resultado em uma string. O parametro opcional escala é usado para configurar o número de digitos depois do ponto decimal que serão mostrados no resultado.

Exemplo 1. Exemplo de bcsub()

<?php

$a = 1.234;
$b = 5;

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Veja também bcadd().

Anterior | Principal | Próxima
bcsqrt | Acima | Bzip2


Bzip2

Manual do PHP
Anterior Próxima

V. Bzip2

Introdução

As funções para bzip2 são usadas para ler e escrever, de forma transparente, arquivos compactados do tipo bzip2 (.bz2).

Requisitos

Este módulo utiliza as funções da biblioteca bzip2 desenvolvida por Julian Seward

Instalação

O suporte às funções para Bzip2 no PHP não é habilitado por padrão. Você precisa usar a opção de configuração --with-bz2 quando for compilar o PHP para habilitar o suporte a bzip2. Este módulo requer bzip2/libbzip2, versão >= 1.0.x.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão define um tipo de recurso (resource): um ponteiro para arquivo que identifica o arquivo bzip2 que está sendo usado.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Este exemplo abre um arquivo temporário e escreve uma string de test nele, e então mostra o conteúdo do arquivo.

Exemplo 1. Um exemplo simples de bzip2

<?php

$arquivo = "/tmp/testfile.bz2";
$str = "This is a test string.\n";

// abre o arquivo para escrita
$bz = bzopen($arquivo, "w");

// escreve a string no arquivo
bzwrite($bz, $str);

// fecha o arquivo
bzclose($bz);

// abre o arquivo para leitura
$bz = bzopen($arquivo, "r");

// lê 10 caracteres
echo bzread($bz, 10);

// imprime até o final do arquivo (ou os próximos 1024 caracteres)
echo bzread($bz);

// fecha o arquivo
bzclose($bz);

?>
Índice
bzclose -- Fecha um ponteiro de arquivo bzip2
bzcompress -- Comprime uma string em dados no formato bzip2
bzdecompress -- Descomprime dados no formato bzip2
bzerrno -- Retorna um número de erro do bzip2
bzerror -- Retorna o número e string de erro do bzip2 como um array
bzerrstr -- Retorna a string de erro do bzip2
bzflush -- Força a escrita de todos os dados que estão no buffer
bzopen -- Abre um arquivo comprimido com bzip2
bzread -- Leitura binary-safe de um arquivo bzip2
bzwrite -- Escrita binary-safe em um arquivo bzip2

Anterior | Principal | Próxima
bcsub | Acima | bzclose


bzclose

(PHP 4 >= 4.0.4, PHP 5)

bzclose -- Fecha um ponteiro de arquivo bzip2

Descrição

int bzclose ( resource bz)

Fecha o arquivo bzip2 referenciado pelo ponteiro bz.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

O ponteiro de arquivo deve ser válido, e deve apontar para um arquivo aberto com sucesso com bzopen().

Veja também bzopen().

Anterior | Principal | Próxima
Bzip2 | Acima | bzcompress


bzcompress

(PHP 4 >= 4.0.4, PHP 5)

bzcompress -- Comprime uma string em dados no formato bzip2

Descrição

string bzcompress ( string source [, int blocksize [, int workfactor]])

bzcompress() comprime a string source e a retorna no formato de dados codificados com bzip2.

O parâmetro opcional blocksize especifica o tamanho do bloco utilizado no momento de compressão e deve ser um número de 1 a 9, com 9 sendo a melhor taxa de compressão, mas usando mais recursos para fazê-lo. O valor padrão de blocksize é 4.

O parâmetro opcional workfactor controla como a fase de compressão irá se comportar quando ocorrer o pior caso: a entrada de dados muito repetitivos. O seu valor pode ser de 0 até 250, com 0 sendo um caso especial, e 30 o valor padrão. Independente do valor de workfactor, a saída gerada será a mesma.

Exemplo 1. Exemplo de bzcompress()

<?php
$str = "demonstracao de dados comprimidos";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Veja também bzdecompress().

Anterior | Principal | Próxima
bzclose | Acima | bzdecompress


bzdecompress

(PHP 4 >= 4.0.4, PHP 5)

bzdecompress -- Descomprime dados no formato bzip2

Descrição

string bzdecompress ( string source [, int small])

bzdecompress() descomprime a string source string contendo dados no formato bzip2 e retorna o seu valor. Se o parâmetro opcional small for TRUE, um algoritmo alternativo de descompressão, com a utilização de menos memória (a máxima quantidade de memória requerida é em torno de 2300K), será usado mas funciona com a metade da velocidade. Veja a documentação do bzip2 para mais informações sobre essa característica.

Exemplo 1. bzdecompress()

<?php
$start_str = "Esse cara é legal?";
$bzstr = bzcompress($start_str);

echo "String Comprimida: ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "String Descomprimida: ";
echo $str;
echo "\n<br />\n";
?>

Veja também bzcompress().

Anterior | Principal | Próxima
bzcompress | Acima | bzerrno


bzerrno

(PHP 4 >= 4.0.4, PHP 5)

bzerrno -- Retorna um número de erro do bzip2

Descrição

int bzerrno ( resource bz)

Retorna o número do erro de qualquer erro do bzip2 retornado pelo ponteiro de arquivo bz.

Veja também bzerror() e bzerrstr().

Anterior | Principal | Próxima
bzdecompress | Acima | bzerror


bzerror

(PHP 4 >= 4.0.4, PHP 5)

bzerror -- Retorna o número e string de erro do bzip2 como um array

Descrição

array bzerror ( resource bz)

Retorna o número e string do erro, em um array associativo, de qualquer erro retornado pelo ponteiro de arquivo bz.

Exemplo 1. Exemplo de bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Veja também bzerrno() e bzerrstr().

Anterior | Principal | Próxima
bzerrno | Acima | bzerrstr


bzerrstr

(PHP 4 >= 4.0.4, PHP 5)

bzerrstr -- Retorna a string de erro do bzip2

Descrição

string bzerrstr ( resource bz)

Retorna a string de erro de qualquer erro retornado pelo ponteiro de arquivo bz.

Veja também bzerrno() e bzerror().

Anterior | Principal | Próxima
bzerror | Acima | bzflush


bzflush

(PHP 4 >= 4.0.4, PHP 5)

bzflush -- Força a escrita de todos os dados que estão no buffer

Descrição

int bzflush ( resource bz)

Força a escrita de todos os dados do bzip2 que estão em buffer para o ponteiro de arquivo bz.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também bzread() e bzwrite().

Anterior | Principal | Próxima
bzerrstr | Acima | bzopen


bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopen -- Abre um arquivo comprimido com bzip2

Descrição

resource bzopen ( string filename, string mode)

Abre um arquivo bzip2 (.bz2) para leitura ou escrita. O parâmetro filename é o nome do arquivo a ser aberto. mode é similar ao da função fopen() (`r' para leitura, `w' para escrita, etc.).

Se esta função falhar, retorna FALSE, do contrário retorna um ponteiro de arquivo aberto.

Exemplo 1. Exemplo de bzopen()

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$arquivo_descomprimido = '';
while (!feof($bz)) {
      $arquivo_descomprimido .= bzread($bz, 4096);
}

bzclose($bz);

print( "O conteúdo de /tmp/foo.bz2 é: " );
print( "\n<br>\n" );
print( $arquivo_descomprimido );
?>

Veja também bzclose().

Anterior | Principal | Próxima
bzflush | Acima | bzread


bzread

(PHP 4 >= 4.0.4, PHP 5)

bzread -- Leitura binary-safe de um arquivo bzip2

Descrição

string bzread ( resource bz [, int length])

bzread() lê o número de bytes equivalente a length do ponteiro de arquivo bzip2 referenciado por bz. A leitura pára quando a a quantidade de bytes referenciados por length (descomprimidos) foram lidos ou EOF foi alcançado, o que acontecer primeiro. Se o parâmetro opcional length não for especificado, bzread() irá ler 1024 bytes (descomprimidos) de cada vez.

Exemplo 1. Exemplo de bzread()

<?php
$file = "/tmp/foo.bz2";
$bz = bzopen($file", "r") or die("Couldn't open $file");

$decompressed_file = '';
while (!feof($bz)) {
    $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "The contents of /tmp/foo.bz2 are: <br />\n";
echo $decompressed_file;
?>

Veja também bzwrite(), feof() e bzopen().

Anterior | Principal | Próxima
bzopen | Acima | bzwrite


bzwrite

(PHP 4 >= 4.0.4, PHP 5)

bzwrite -- Escrita binary-safe em um arquivo bzip2

Descrição

int bzwrite ( resource bz, string data [, int length])

bzwrite() escreve o conteúdo da string data no arquivo referenciado pelo ponteiro de arquivo bzip2 bz. Se o parâmetro opcional length for passado, a escrita irá parar depois deste número de bytes (descomprimidos) foram escritos ou se o final da string foi alcançado, o que acontecer primeiro.

Exemplo 1. Exemplo de bzwrite()

<?php
$str = "dados descomprimidos";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Veja também bzread() e bzopen().

Anterior | Principal | Próxima
bzread | Acima | Calendário, funções


Calendário, funções

Manual do PHP
Anterior Próxima

VI. Calendário, funções

Introdução

A extensão de calendário contém uma série de funções para simplificar a conversão de diferentes formatos de calendários. O calendário padrão é baseado no formato "Julian Day Count". A contagem de dias do calendário "Julian Day Count" começa em 1º de Janeiro de 4713 B.C. Para converter um calendário para algum formato, você deve primeiro convertê-lo para o formato "Julian Day Count", então converter para o sistema de calendário de sua escolha. O formato de calendário "Julian Day Count" é muito diferente do "Julian Calendar"! Para mais informações sobre o calendário "Julian Day Count", visite http://www.hermetic.ch/cal_stud/jdn.htm. Para mais informações sobre sistemas de calendários, visite: http://www.boogle.com/info/cal-overview.html. "Excerpts from this page are included in these instructions, and are in quotes".

Instalação

Para estas funções funcionarem, você precisa compilar o PHP com --enable-calendar.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CAL_GREGORIAN (inteiro)

CAL_JULIAN (inteiro)

CAL_JEWISH (inteiro)

CAL_FRENCH (inteiro)

CAL_NUM_CALS (inteiro)

CAL_DOW_DAYNO (inteiro)

CAL_DOW_SHORT (inteiro)

CAL_DOW_LONG (inteiro)

CAL_MONTH_GREGORIAN_SHORT (inteiro)

CAL_MONTH_GREGORIAN_LONG (inteiro)

CAL_MONTH_JULIAN_SHORT (inteiro)

CAL_MONTH_JULIAN_LONG (inteiro)

CAL_MONTH_JEWISH (inteiro)

CAL_MONTH_FRENCH (inteiro)

As constantes abaixo estão disponíveis à partir da versão 4.3.0 do PHP :

CAL_EASTER_DEFAULT (inteiro)

CAL_EASTER_ROMAN (inteiro)

CAL_EASTER_ALWAYS_GREGORIAN (inteiro)

CAL_EASTER_ALWAYS_JULIAN (inteiro)

As constantes abaixo estão disponíveis à partir da versão 5.0.0 do PHP :

CAL_JEWISH_ADD_ALAFIM_GERESH (inteiro)

CAL_JEWISH_ADD_ALAFIM (inteiro)

CAL_JEWISH_ADD_GERESHAYIM (inteiro)

Índice
cal_days_in_month -- Retorna o número de dias em um mês de um calendário e ano requisitado
cal_from_jd -- Converte à partir do "Julian Day Count" para um outro calendário suportado
cal_info -- Retorna informações sobre um calendário em particular
cal_to_jd -- Converte um calendário (suportado) para o calendário "Julian Day Count"
easter_date -- Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado. Se nenhum ano tiver sido especificado, será assumido o ano atual.
easter_days -- Obtém o número de dias entre 21 de Março e o dia da Páscoa em determinado ano.
FrenchToJD -- Converte uma data do calendário Republicano da França para o calendário "Julian Day Count".
GregorianToJD -- Converte uma data do calendário Gregoriano para o calendário "Julian Day Count".
JDDayOfWeek -- Retorna o dia da semana
JDMonthName -- REtorna o nome de um mês
JDToFrench -- Converte do calendário "Julian Day Count" para o calendário Republicano Francês
JDToGregorian -- Converte uma data no formato "Julian Day Count" para o formato Gregoriano
jdtojewish -- Convete uma data do calendário "Julian Day Count" para o calendário Judaico
JDToJulian -- Converte uma data do calendário "Julian Day Count" para o calendário "Julian"
jdtounix -- Converte do formato "Julain Day" para o formato de datas do sistema UNIX ("timestamp")
JewishToJD -- Converte uma data do calendário Judaico para o calendário "Julian Day Count".
JulianToJD -- Converte datas no formato "Julian" para o formato "Julian Day Count"
unixtojd -- Converte datas do sistema UNIX para o "Julian Day"

Anterior | Principal | Próxima
bzwrite | Acima | cal_days_in_month


cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_month -- Retorna o número de dias em um mês de um calendário e ano requisitado

Descrição

int cal_days_in_month ( int calendario, int mês, int ano)

ESta função irá retornar o número de dias em um month do ano para o calendário especificado.

Exemplo 1. cal_days_in_month() exemplo

<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "Houve $num dias em Agosto de 2003";
?>

Veja também jdtounix().

Anterior | Principal | Próxima
Calendário, funções | Acima | cal_from_jd


cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jd -- Converte à partir do "Julian Day Count" para um outro calendário suportado

Descrição

array cal_from_jd ( int jd, int calendário)

cal_from_jd() converte do "Julian Day Count" ( jd) para uma data de um calendário especificado. Os valores dos calendários suportados são CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH e CAL_FRENCH.

Exemplo 1. cal_from_jd() exemplo

<?php
$hoje = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($hoje, CAL_GREGORIAN));
?>

Este código retorna:

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

Veja também cal_to_jd().

Anterior | Principal | Próxima
cal_days_in_month | Acima | cal_info


cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_info -- Retorna informações sobre um calendário em particular

Descrição

array cal_info ( [int calendário])

cal_info() retorna as informações de um calendário específico ou de todos os calendários se nenhum calendário for especificado.

A informação do calendário especificado é retornada em um array contendo os elementos calname, calsymbol, month, abbrevmonth e maxdaysinmonth.

Se nenhum calendário foi especificado as informações de todos os calendários suportados são retornadas em um array. Esta funcionalidade será suportada à partir do PHP 5.

Anterior | Principal | Próxima
cal_from_jd | Acima | cal_to_jd


cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jd -- Converte um calendário (suportado) para o calendário "Julian Day Count"

Descrião

int cal_to_jd ( int calendário, int mês, int dia, int ano)

cal_to_jd() calcula uma data em formato "Julian Day Count" à partir de um calendário suportado especificado. Os calendários suportados são: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH e CAL_FRENCH.

Veja também cal_to_jd().

Anterior | Principal | Próxima
cal_info | Acima | easter_date


easter_date

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

easter_date -- Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado. Se nenhum ano tiver sido especificado, será assumido o ano atual.

Descrição

int easter_date ( [int ano])

Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado. Se nenhum ano tiver sido especificado, será assumido o ano atual.

À partir da versão 4.3.0 PHP, e se omitido o parâmetro ano, o padrão assumido é o ano atual de acordo com a hora local.

Aviso Esta função irá gerar um aviso se o ano está fora do padrão de datas do sistema UNIX (i.e. antes de 1970 ou após 2037).

Exemplo 1. easter_date() exemplo

<?php

echo date ("M-d-Y", easter_date(1999));        // Apr-04-1999
echo date ("M-d-Y", easter_date(2000));        // Apr-23-2000
echo date ("M-d-Y", easter_date(2001));        // Apr-15-2001

?>

A data da Páscoa foi definida pelo Conselho de Nicaea em DC325 como sendo o primeiro domingo após a primeira lua cheia que cai no equinócio da primavera ou depois dele. O equinócio geralmente cai perto do 21º de Março, logo, o cálculo resume-se à determinar a data da lua cheia e a data do seguinte domingo. O algoritmo usado aqui foi feito no ano 532 por Dionysius Exiguus. De acordo com o calendário "Julian" (para anos anterioris à 1753) um simples ciclo de 19-anos é usado para seguir as fases da lua. De acordo com o Calendário Gregoriano (para antes após 1753 - planejado por Clavius e por Lilius, e feito por Pope Gregory XIII em Outubro de 1582, e na Grã Bretanha e suas colônias em Setembro de 1752), duas correções fatoriais foram adicionadas para fazer o ciclo mais exato.

(O código é baseado em um programa feito em C por Simon Kershaw, <webmaster@ely.anglican.org>)

Veja easter_days() para calcular a Páscoa antes de 1970 ou após 2037.

Anterior | Principal | Próxima
cal_to_jd | Acima | easter_days


easter_days

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

easter_days -- Obtém o número de dias entre 21 de Março e o dia da Páscoa em determinado ano.

Description

int easter_days ( [int ano [, int método]])

Retorna o número de dias entre 21 de Março e o dia da Páscoa em determinado ano. Se nenhum ano tiver sido especificado, será assumido o ano atual.

À partir da versão 4.3.0 do PHP, o parâmetro ano é opcional e se for omitido o padrão assumido é o ano atual de acrodo com o hora local.

O parâmetro método está disponível à partir da versão 4.3.0 do PHP e perimite calcular as datas da Páscoa baseadas no calendário Gregoriano durante os anos 1582 - 1752 quando a constante CAL_EASTER_ROMAN está ligada. Veja as constantes de calendário para obter outras constantes válidas.

Ao invés de usar a função easter_date(), você pode usar esta função para calcular a Páscoa em anos que estão fora da escala de datas do sistema UNIX (i.e. antes de 1970 ou após 2037).

Exemplo 1. easter_days() exemplo

<?php

echo easter_days (1999);        // 14, i.e. April 4
echo easter_days (1492);        // 32, i.e. April 22
echo easter_days (1913);        //  2, i.e. March 23

?>

A data da Páscoa foi definida pelo Conselho de Nicaea em DC325 como sendo o primeiro domingo após a primeira lua cheia que cai no equinócio da primavera ou depois dele. O equinócio geralmente cai perto do 21º de Março, logo, o cálculo resume-se à determinar a data da lua cheia e a data do seguinte domingo. O algoritmo usado aqui foi feito no ano 532 por Dionysius Exiguus. De acordo com o calendário "Julian" (para anos anterioris à 1753) um simples ciclo de 19-anos é usado para seguir as fases da lua. De acordo com o Calendário Gregoriano (para antes após 1753 - planejado por Clavius e por Lilius, e feito por Pope Gregory XIII em Outubro de 1582, e na Grã Bretanha e suas colônias em Setembro de 1752), duas correções fatoriais foram adicionadas para fazer o ciclo mais exato.

(O código é baseado em um programa feito em C por Simon Kershaw, <webmaster@ely.anglican.org>)

Veja também easter_date().

Anterior | Principal | Próxima
easter_date | Acima | FrenchToJD


FrenchToJD

(PHP 3, PHP 4 , PHP 5)

FrenchToJD -- Converte uma data do calendário Republicano da França para o calendário "Julian Day Count".

Descrição

int frenchtojd ( int mês, int dia, int ano)

Converte uma data do calendário Republicano da França para o calendário "Julian Day Count".

Estas rotinas somente converte datas entre os anos de 1 até 14 (datas Gregorianas de 22 de Setembro de 1792 até 22 de Setembro de 1806). "This more than covers the period when the calendar was in use."

Anterior | Principal | Próxima
easter_days | Acima | GregorianToJD


GregorianToJD

(PHP 3, PHP 4 , PHP 5)

GregorianToJD -- Converte uma data do calendário Gregoriano para o calendário "Julian Day Count".

Descrição

int gregoriantojd ( int mês, int dia, int ano)

Escala válida para o Calendário Gregoriano: 4714 A.C. to 9999 D.C.

Entretanto esta função pode trabalhar com todas datas anteriores à, porém usá-la desta maneira não tem muito sentido. O Calendário Gregoriano não foi instituído até 15 de Outubro de 1582 (ou 5 de Outubro de 1582, no calendário JDC ("Julian Day Count")). Alguns países aceitaram este calendário um pouco mais tarde. Por exemplo, a Grã Bretanha converteu-se em 1752, a URSS em 1918 e a Grécia em 1923. A maioria dos países Europeus usaram o calendário "Julian" (JDC) antes do calendário Gregoriano.

Exemplo 1. Funções do Calendário

<?php
$jd = GregorianToJD (10,11,1970);
echo "$jd\n";
$gregorian = JDToGregorian ($jd);
echo "$gregorian\n";
?>

Anterior | Principal | Próxima
FrenchToJD | Acima | JDDayOfWeek


JDDayOfWeek

(PHP 3, PHP 4 , PHP 5)

JDDayOfWeek -- Retorna o dia da semana

Descrição

mixed jddayofweek ( int julianday, int modo)

Retorna o dia da semana. Pode retornar uma "string" ou um inteiro dependendo do modo utilizado.

Tabela 1. Calendários da semana (modos)

Modo | Significado
0 | Retonra o dia da semana como sendo um número inteiro (0=domingo, 1=segunda, etc.)
1 | Retorna uma string contendo o dia da semana (inglês-gregoriano)
2 | Retorna uma "string" contendo a abreviação do dia da semana (inglês-gregoriano)

Anterior | Principal | Próxima
GregorianToJD | Acima | JDMonthName


JDMonthName

(PHP 3, PHP 4 , PHP 5)

JDMonthName -- REtorna o nome de um mês

Descrição

string jdmonthname ( int julianday, int modo)

Retorna uma "string" contendo o nome do mês. O parâmetro modo diz à função qual calendário será convertido para o formato "Julian Day Count", e o tipo do nome do mês.

Tabela 1. Calendário (modos)

Modo | Significado | Valores
0 | Gregoriano - abreviado | Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez
1 | Gregoriano | Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro
2 | "Julian" - abreviado | Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez
3 | "Julian" | Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro
4 | Judeu | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | Republicano Francês | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Anterior | Principal | Próxima
JDDayOfWeek | Acima | JDToFrench


JDToFrench

(PHP 3, PHP 4 , PHP 5)

JDToFrench -- Converte do calendário "Julian Day Count" para o calendário Republicano Francês

Descrição

string jdtofrench ( int juliandaycount)

Converte do calendário "Julian Day Count" para o calendário Republicano Francês

Anterior | Principal | Próxima
JDMonthName | Acima | JDToGregorian


JDToGregorian

(PHP 3, PHP 4 , PHP 5)

JDToGregorian -- Converte uma data no formato "Julian Day Count" para o formato Gregoriano

Descrição

string jdtogregorian ( int julianday)

Converte "Julian Day Count" para uma "string" contendo a data em formato Gregoriano "mês/dia/ano".

Anterior | Principal | Próxima
JDToFrench | Acima | jdtojewish


jdtojewish

(PHP 3, PHP 4 , PHP 5)

jdtojewish -- Convete uma data do calendário "Julian Day Count" para o calendário Judaico

Descrição

string jdtojewish ( int juliandaycount [, bool hebrew [, int fl]])

Convete uma data do calendário "Julian Day Count" para o calendário Judaico

Os parâmetros hebrew e fl são opcionais e estarão disponíveis na versão do PHP 5.0.0

Se o parâmetro hebrew for TRUE, o parâmetro fl a "string" de saída de dados é baseada no formato "hebrew". Os formatos disponíveis são: CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM, CAL_JEWISH_ADD_GERESHAYIM.

Exemplo 1. jdtojewish() Exemplo

<?php
echo jdtojewish(gregoriantojd(10,8,2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

Anterior | Principal | Próxima
JDToGregorian | Acima | JDToJulian


JDToJulian

(PHP 3, PHP 4 , PHP 5)

JDToJulian -- Converte uma data do calendário "Julian Day Count" para o calendário "Julian"

Descrição

string jdtojulian ( int julianday)

Converte "Julian Day Count" para uma "string" contendo a data do calendário "Julian" no formato "mês/dia/ano".

Anterior | Principal | Próxima
jdtojewish | Acima | jdtounix


jdtounix

(PHP 4 , PHP 5)

jdtounix -- Converte do formato "Julain Day" para o formato de datas do sistema UNIX ("timestamp")

Descrição

int jdtounix ( int jday)

Esta função irá retorna a data do sistema UNIX correspondente ao "Julian Day" especificado no parâmetro jday ou FALSE se jday não está dentre a escala de datas UNIX (Anos Gregorianos entre 1970 e 2037 ou 2440588 <= jday <= 2465342). A hora retornada é a hora local (e não a GMT).

Veja também unixtojd().

Anterior | Principal | Próxima
JDToJulian | Acima | JewishToJD


JewishToJD

(PHP 3, PHP 4 , PHP 5)

JewishToJD -- Converte uma data do calendário Judaico para o calendário "Julian Day Count".

Descrição

int jewishtojd ( int mês, int dia, int ano)

Entretanto esta função suporta datas anteriores ao ano 1 (3761 A.C.), porém tal uso não faz sentido. O calendário Judaico vem sendo usado por centenas de anos, porém os primeiros dias não tem uma fórmula que determina qual é o começo do mês. Um novo mês começa quando uma lua nova é vista.

Anterior | Principal | Próxima
jdtounix | Acima | JulianToJD


JulianToJD

(PHP 3, PHP 4 , PHP 5)

JulianToJD -- Converte datas no formato "Julian" para o formato "Julian Day Count"

Descrição

int juliantojd ( int mês, int dia, int ano)

O Calendário "Julian" vai de 4713 A.C. até 9999 D.C.

Entretanto esta função trabalha com datas anteriores à 4713 A.C, porém tal uso não faz muito sentido. O calendário foi criado em 46 A.C., mas os detalhes não foram padronizados até o ano 8 D.C., e talvez mais tarde no 4º século. Além disso, o começo do ano variou de uma cultura para outra - nem todas aceitaram o Janeiro como sendo o primeiro mês.

Cuidado

Lembre-se, o sistema atual de calendário que é usado mundialmente é o Gregoriano. A função gregoriantojd() pode ser usada para converter datas no formato Gregoriano para o formato "Julian Day Count".

Anterior | Principal | Próxima
JewishToJD | Acima | unixtojd


unixtojd

(PHP 4 , PHP 5)

unixtojd -- Converte datas do sistema UNIX para o "Julian Day"

Descrição

int unixtojd ( [int timestamp])

Retorna o "Julian Day" para um UNIX timestamp (segundos desde 1.1.1970), ou para o dia atual se nenhum timestamp for especificado.

Veja também jdtounix().

Anterior | Principal | Próxima
JulianToJD | Acima | CCVS API Functions [deprecated]


CCVS API Functions [deprecated]

Manual do PHP
Anterior Próxima

VII. CCVS API Functions [deprecated]

Introdução

These functions interface the CCVS API, allowing you to work directly with CCVS from your PHP scripts. CCVS is RedHat's solution to the "middle-man" in credit card processing. It lets you directly address the credit card clearing houses via your *nix box and a modem. Using the CCVS module for PHP, you can process credit cards directly through CCVS via your PHP Scripts. The following references will outline the process.

Nota: CCVS has been discontinued by Red Hat and there are no plans to issue further keys or support contracts. Those looking for a replacement can consider MCVE by Main Street Softworks as a potential replacement. It is similar in design and has documented PHP support!

This extension has been removed from PHP and is no longer available as of PHP 4.3.0. If you want to use credit card processing features you can use MCVE instead.

Instalação

To enable CCVS Support in PHP, first verify your CCVS installation directory. You will then need to configure PHP with the --with-ccvs option. If you use this option without specifying the path to your CCVS installation, PHP will attempt to look in the default CCVS Install location (/usr/local/ccvs). If CCVS is in a non-standard location, run configure with: --with-ccvs=[DIR], where DIR is the path to your CCVS installation. Please note that CCVS support requires that DIR/lib and DIR/include exist, and include cv_api.h under the include directory and libccvs.a under the lib directory.

Additionally, a ccvsd process will need to be running for the configurations you intend to use in your PHP scripts. You will also need to make sure the PHP Processes are running under the same user as your CCVS was installed as (e.g. if you installed CCVS as user 'ccvs', your PHP processes must run as 'ccvs' as well.)

Veja Também

RedHat has discontinued support for CCVS; however, a slightly outdated manual is still available at http://redhat.com/docs/manuals/ccvs/.

Índice
ccvs_add -- Add data to a transaction
ccvs_auth -- Perform credit authorization test on a transaction
ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API
ccvs_count -- Find out how many transactions of a given type are stored in the system
ccvs_delete -- Delete a transaction
ccvs_done -- Terminate CCVS engine and do cleanup work
ccvs_init -- Initialize CCVS for use
ccvs_lookup -- Look up an item of a particular type in the database #
ccvs_new -- Create a new, blank transaction
ccvs_report -- Return the status of the background communication process
ccvs_return -- Transfer funds from the merchant to the credit card holder
ccvs_reverse -- Perform a full reversal on an already-processed authorization
ccvs_sale -- Transfer funds from the credit card holder to the merchant
ccvs_status -- Check the status of an invoice
ccvs_textvalue -- Get text return value for previous function call
ccvs_void -- Perform a full reversal on a completed transaction

Anterior | Principal | Próxima
unixtojd | Acima | ccvs_add


ccvs_add

(4.0.2 - 4.2.3 only)

ccvs_add -- Add data to a transaction

Description

string ccvs_add ( string session, string invoice, string argtype, string argval)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
CCVS API Functions [deprecated] | Acima | ccvs_auth


ccvs_auth

(4.0.2 - 4.2.3 only)

ccvs_auth -- Perform credit authorization test on a transaction

Description

string ccvs_auth ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_add | Acima | ccvs_command


ccvs_command

(4.0.2 - 4.2.3 only)

ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API

Description

string ccvs_command ( string session, string type, string argval)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_auth | Acima | ccvs_count


ccvs_count

(4.0.2 - 4.2.3 only)

ccvs_count -- Find out how many transactions of a given type are stored in the system

Description

int ccvs_count ( string session, string type)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_command | Acima | ccvs_delete


ccvs_delete

(4.0.2 - 4.2.3 only)

ccvs_delete -- Delete a transaction

Description

string ccvs_delete ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_count | Acima | ccvs_done


ccvs_done

(4.0.2 - 4.2.3 only)

ccvs_done -- Terminate CCVS engine and do cleanup work

Description

string ccvs_done ( string sess)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_delete | Acima | ccvs_init


ccvs_init

(4.0.2 - 4.2.3 only)

ccvs_init -- Initialize CCVS for use

Description

string ccvs_init ( string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_done | Acima | ccvs_lookup


ccvs_lookup

(4.0.2 - 4.2.3 only)

ccvs_lookup -- Look up an item of a particular type in the database #

Description

string ccvs_lookup ( string session, string invoice, int inum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_init | Acima | ccvs_new


ccvs_new

(4.0.2 - 4.2.3 only)

ccvs_new -- Create a new, blank transaction

Description

string ccvs_new ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_lookup | Acima | ccvs_report


ccvs_report

(4.0.2 - 4.2.3 only)

ccvs_report -- Return the status of the background communication process

Description

string ccvs_report ( string session, string type)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_new | Acima | ccvs_return


ccvs_return

(4.0.2 - 4.2.3 only)

ccvs_return -- Transfer funds from the merchant to the credit card holder

Description

string ccvs_return ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_report | Acima | ccvs_reverse


ccvs_reverse

(4.0.2 - 4.2.3 only)

ccvs_reverse -- Perform a full reversal on an already-processed authorization

Description

string ccvs_reverse ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_return | Acima | ccvs_sale


ccvs_sale

(4.0.2 - 4.2.3 only)

ccvs_sale -- Transfer funds from the credit card holder to the merchant

Description

string ccvs_sale ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_reverse | Acima | ccvs_status


ccvs_status

(4.0.2 - 4.2.3 only)

ccvs_status -- Check the status of an invoice

Description

string ccvs_status ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_sale | Acima | ccvs_textvalue


ccvs_textvalue

(4.0.2 - 4.2.3 only)

ccvs_textvalue -- Get text return value for previous function call

Description

string ccvs_textvalue ( string session)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_status | Acima | ccvs_void


ccvs_void

(4.0.2 - 4.2.3 only)

ccvs_void -- Perform a full reversal on a completed transaction

Description

string ccvs_void ( string session, string invoice)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ccvs_textvalue | Acima | COM support functions for Windows


COM support functions for Windows

Manual do PHP
Anterior Próxima

VIII. COM support functions for Windows

Introdução

COM is a technology which allows the reuse of code written in any language (by any language) using a standard calling convention and hiding behind APIs the implementation details such as what machine the Component is stored on and the executable which houses it. It can be thought of as a super Remote Procedure Call (RPC) mechanism with some basic object roots. It separates implementation from interface.

COM encourages versioning, separation of implementation from interface and hiding the implementation details such as executable location and the language it was written in.

Requisitos

COM functions are only available on the Windows version of PHP.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Com configuration options

Name | Default | Changeable
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CLSCTX_INPROC_SERVER (integer)

CLSCTX_INPROC_HANDLER (integer)

CLSCTX_LOCAL_SERVER (integer)

CLSCTX_REMOTE_SERVER (integer)

CLSCTX_SERVER (integer)

CLSCTX_ALL (integer)

VT_NULL (integer)

VT_EMPTY (integer)

VT_UI1 (integer)

VT_I2 (integer)

VT_I4 (integer)

VT_R4 (integer)

VT_R8 (integer)

VT_BOOL (integer)

VT_ERROR (integer)

VT_CY (integer)

VT_DATE (integer)

VT_BSTR (integer)

VT_DECIMAL (integer)

VT_UNKNOWN (integer)

VT_DISPATCH (integer)

VT_VARIANT (integer)

VT_I1 (integer)

VT_UI2 (integer)

VT_UI4 (integer)

VT_INT (integer)

VT_UINT (integer)

VT_ARRAY (integer)

VT_BYREF (integer)

CP_ACP (integer)

CP_MACCP (integer)

CP_OEMCP (integer)

CP_UTF7 (integer)

CP_UTF8 (integer)

CP_SYMBOL (integer)

CP_THREAD_ACP (integer)

Veja Também

For further information on COM read the COM specification or perhaps take a look at Don Box's Yet Another COM Library (YACL)

Índice
COM -- COM class
VARIANT -- VARIANT class
com_addref -- Increases the components reference counter.
com_get -- Gets the value of a COM Component's property
com_invoke -- Calls a COM component's method.
com_isenum -- Grabs an IEnumVariant
com_load_typelib -- Loads a Typelib
com_load -- Creates a new reference to a COM component
com_propget -- Alias of com_get()
com_propput -- Alias of com_set()
com_propset -- Alias of com_set()
com_release -- Decreases the components reference counter.
com_set -- Assigns a value to a COM component's property

Anterior | Principal | Próxima
ccvs_void | Acima | COM


COM

(no version information, might be only in CVS)

COM -- COM class

Sinopse

$obj = new COM("server.object")

Description

The COM class provides a framework to integrate (D)COM components into your PHP scripts.

Methods

string COM::COM ( string module_name [, string server_name [, int codepage]])

COM class constructor. Parameters:

module_name

name or class-id of the requested component.

server_name

name of the DCOM server from which the component should be fetched. If NULL, localhost is assumed. To allow DCOM com.allow_dcom has to be set to TRUE in php.ini.

codepage

specifies the codepage that is used to convert php-strings to unicode-strings and vice versa. Possible values are CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 and CP_UTF8.

Exemplo 1. COM example (1)

<?php
// starting word
$word = new COM("word.application") or die("Unable to instanciate Word");
echo "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word->Release();
$word = null;
?>

Exemplo 2. COM example (2)

<?php

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_columns; $i++) {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs->Release();
$conn->Release();

$rs = null;
$conn = null;

?>

Anterior | Principal | Próxima
COM support functions for Windows | Acima | VARIANT


VARIANT

(no version information, might be only in CVS)

VARIANT -- VARIANT class

Sinopse

$vVar = new VARIANT($var)

Description

A simple container to wrap variables into VARIANT structures.

Methods

string VARIANT::VARIANT ( [mixed value [, int type [, int codepage]]])

VARIANT class constructor. Parameters:

value

initial value. if omitted an VT_EMPTY object is created.

type

specifies the content type of the VARIANT object. Possible values are VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_R8, VT_INT, VT_UINT, VT_BOOL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DECIMAL, VT_UNKNOWN, VT_DISPATCH and VT_VARIANT. These values are mutual exclusive, but they can be combined with VT_BYREF to specify being a value. If omitted, the type of value is used. Consult the MSDN library for additional information.

codepage

specifies the codepage that is used to convert php-strings to unicode-strings and vice versa. Possible values are CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 and CP_UTF8.

Anterior | Principal | Próxima
COM | Acima | com_addref


com_addref

(PHP 4 >= 4.1.0)

com_addref -- Increases the components reference counter.

Description

void com_addref ( void )

Increases the components reference counter.

Anterior | Principal | Próxima
VARIANT | Acima | com_get


com_get

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_get -- Gets the value of a COM Component's property

Description

mixed com_get ( resource com_object, string property)

Returns the value of the property of the COM component referenced by com_object. Returns FALSE on error.

Anterior | Principal | Próxima
com_addref | Acima | com_invoke


com_invoke

(PHP 3>= 3.0.3)

com_invoke -- Calls a COM component's method.

Description

mixed com_invoke ( resource com_object, string function_name [, mixed function parameters, ...])

com_invoke() invokes a method of the COM component referenced by com_object. Returns FALSE on error, returns the function_name's return value on success.

Anterior | Principal | Próxima
com_get | Acima | com_isenum


com_isenum

(PHP 4 >= 4.1.0)

com_isenum -- Grabs an IEnumVariant

Description

void com_isenum ( object com_module)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
com_invoke | Acima | com_load_typelib


com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelib -- Loads a Typelib

Description

void com_load_typelib ( string typelib_name [, int case_insensitive])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
com_isenum | Acima | com_load


com_load

(PHP 3>= 3.0.3)

com_load -- Creates a new reference to a COM component

Description

string com_load ( string module_name [, string server_name [, int codepage]])

com_load() creates a new COM component and returns a reference to it. Returns FALSE on failure. Possible values for codepage are: CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7, and CP_UTF8.

Anterior | Principal | Próxima
com_load_typelib | Acima | com_propget


com_propget

com_propget -- Alias of com_get()

Description

This function is an alias for com_get().

Anterior | Principal | Próxima
com_load | Acima | com_propput


com_propput

com_propput -- Alias of com_set()

Description

This function is an alias for com_set().

Anterior | Principal | Próxima
com_propget | Acima | com_propset


com_propset

com_propset -- Alias of com_set()

Description

This function is an alias for com_set().

Anterior | Principal | Próxima
com_propput | Acima | com_release


com_release

(PHP 4 >= 4.1.0)

com_release -- Decreases the components reference counter.

Description

void com_release ( void )

Decreases the components reference counter.

Anterior | Principal | Próxima
com_propset | Acima | com_set


com_set

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_set -- Assigns a value to a COM component's property

Description

void com_set ( resource com_object, string property, mixed value)

Sets the value of the property of the COM component referenced by com_object. Returns the newly set value if succeeded, FALSE on error.

Anterior | Principal | Próxima
com_release | Acima | Classes e Objetos


Classes e Objetos

Manual do PHP
Anterior Próxima

IX. Classes e Objetos

Introdução

Estas funções te permitem obter informações sobre classes e instâncias de objetos. Você pode obter o nome da classe ao qual um objeto pertence, bem como suas propriedades e métodos. Usando estas funções, você pode descobrir não apenas a classe de um objeto, mas também seu parentesco (no caso, que classe este objeto de classe se estende).

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Neste exemplo, nós primeiramente definiremos uma classe base e uma extensão da classe. A classe base descreve um vegetal comum, que é comestível ou não e que tem sua cor. A sub-classe Espinafre adiciona um método para cozinhá-lo e outro para descobrir se ele está cozido.

Exemplo 1. classes.inc

<?php

// Classe base com propriedades e métodos de membros
class Vegetal {

    var $comestivel;
    var $cor;

    function Vegetal( $comestivel, $cor="verde" ) {
        $this->comestivel = $comestivel;
        $this->cor = $cor;
    }

    function is_comestivel() {
        return $this->comestivel;
    }

    function qual_cor() {
        return $this->cor;
    }

} // Fim da classe Vegetal

// estender a classe base
class Espinafre estende Vegetal {

    var $cozido = false;

    function Espinafre() {
        $this->Vegetal( true, "verde" );
    }

    function cozinhe() {
        $this->cozido = true;
    }

    function esta_cozido() {
        return $this->cozido;
    }

} // Fim da classe Espinafre

?>

Nós instânciamos 2 objetos destas classes e exibimos informações sobre elas, incluindo o parentesco de suas classes. Nós também definimos algumas funções úteis, principalmente para ter uma boa saída de variáveis.

Exemplo 2. test_script.php

<pre>
<?php

include "classes.inc";

// Funções utilitárias

function print_vars($obj) {
    $arr = get_object_vars($obj);
    while (list($prop, $val) = each($arr))
        echo "\t$prop = $val\n";
}

function print_methods($obj) {
    $arr = get_class_methods(get_class($obj));
    foreach ($arr as $method)
        echo "\tfunction $method()\n";
}

function class_parentesco($obj, $class) {
    if (is_subclass_of($$obj, $class)) {
        echo "Objeto $obj pertence à classe ".get_class($$obj);
        echo " uma subclasse de $class\n";
    } else {
        echo "Objeto $obj não pertence a uma subclasse de $class\n";
    }
}

// instanciar 2 objetos

$vegetariano = new Vegetal(true, "azul");
$folheado = new Espinafre();

// Exibe informação sobre os objetos
echo "vegetariano: CLASS " . get_class($vegetariano) . "\n";
echo "folheado: CLASS " . get_class($folheado);
echo ", PARENTE " . get_parent_class($folheado) . "\n";

// Mostra as propriedades de vegetariano
echo "\nvegetariano: Propriedades\n";
print_vars($vegetariano);

// e os métodos de folheado
echo "\nfolheado: Métodos\n";
print_methods($folheado);

echo "\nParentesco:\n";
class_parentesco("folheado", "Espinafre");
class_parentesco("folheado", "Vegetal");
?>
</pre>

Uma coisa importante para se notar no exemplo acima é que o objeto $folheado é uma instância da classe Espinafre que é uma subclasse de Vegetal, então a última parte do script acima exibirá:

[...]
Parentesco:
Objeto folheado não pertence a uma subclasse de Espinafre
Object folheado pertence à classe Espinafre uma subclasse de Vegetal

Índice
call_user_method_array -- Chama métodos de usuário dado uma matriz de parâmetros [obsoleto]
call_user_method -- Chama um método de usuário num objeto específico [obsoleto]
class_exists -- Checa se uma classe foi definida
get_class_methods -- Retorna uma matriz associativa com nomes de métodos da classe
get_class_vars -- Retorna uma matriz das propriedades padrão da classe
get_class -- Retorna o nome da classe de um objeto
get_declared_classes -- Retorna uma matriz com os nomes das classes definidas
get_declared_interfaces -- Returns an array of all declared interfaces.
get_object_vars -- Retorna uma matriz associativa com as propriedades do objeto
get_parent_class -- Devolve o nome da classe pai para o objeto ou classe
is_a -- Retorna TRUE se o objeto é desta classe ou tem esta classe como sua classe pai.
is_subclass_of -- Retorna TRUE se o objeto tem esta classe como uma de suas classes pai
method_exists -- Checa se o método da classe existe

Anterior | Principal | Próxima
com_set | Acima | call_user_method_array


call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array -- Chama métodos de usuário dado uma matriz de parâmetros [obsoleto]

Descrição

mixed call_user_method_array ( string method_name, object obj [, array paramarr])

Atenção

A funçãocall_user_method_array() é obsoleta a partir do PHP 4.1.0. Utilize a variante call_user_func_array() com a sintaxe array(&$obj, "method_name").

Chama o método method_name do objeto de usuáro obj, usando os parâmetros em paramarr.

Veja também call_user_func_array() e call_user_func().

Anterior | Principal | Próxima
Classes e Objetos | Acima | call_user_method


call_user_method

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

call_user_method -- Chama um método de usuário num objeto específico [obsoleto]

Descrição

mixed call_user_method ( string method_name, object obj [, mixed parameter [, mixed ...]])

Atenção

A função call_user_method() é obsoleta desde o PHP 4.1.0, portanto utilize a variante call_user_func() com a sintaxe array(&$obj, "method_name").

Chama o método method_name do objeto de usuário obj. Um exemplo de seu uso segue abaixo, onde nós definimos uma classe, instanciamos um objeto e usamos call_user_method() para chamar indiretamente seu método print_info.

<?php
class Country {
    var $NAME;
    var $TLD;

    function Country($name, $tld)
    {
        $this->NAME = $name;
        $this->TLD = $tld;
    }

    function print_info($prestr = "")
    {
        echo $prestr . "Country: " . $this->NAME . "\n";
        echo $prestr . "Top Level Domain: " . $this->TLD . "\n";
    }
}

$cntry = new Country("Peru", "pe");

echo "* Chamando o método diretamente\n";
$cntry->print_info();

echo "\n* Chamando o método indiretamente\n";
call_user_method("print_info", $cntry, "\t");
?>

Veja também call_user_func_array(), e call_user_func().

Anterior | Principal | Próxima
call_user_method_array | Acima | class_exists


class_exists

(PHP 4 , PHP 5)

class_exists -- Checa se uma classe foi definida

Descrição

bool class_exists ( string class_name)

Esta função retorna TRUE se a classe dada por class_name foi definida, caso contrário retorna FALSE.

Veja também get_declared_classes().

Anterior | Principal | Próxima
call_user_method | Acima | get_class_methods


get_class_methods

(PHP 4 , PHP 5)

get_class_methods -- Retorna uma matriz associativa com nomes de métodos da classe

Descrição

array get_class_methods ( mixed class_name)

Esta função retorna uma matriz com nomes dos métodos definidos para a classe especificada por class_name.

Nota: A partir do PHP 4.0.6, você pode especificar o próprio objeto em vez do nome da classe em class_name. Por exemplo:

<?php
$class_methods = get_class_methods($my_class); // veja um exemplo completo abaixo
?>

Exemplo 1. Exemploget_class_methods()

<?php

class myclass {
    // constructor
    function myclass()
    {
        return(true);
    }

    // method 1
    function myfunc1()
    {
        return(true);
    }

    // method 2
    function myfunc2()
    {
        return(true);
    }
}

$my_object = new myclass();

$class_methods = get_class_methods(get_class($my_object));

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

Produzirá:

myclass
myfunc1
myfunc2

Veja também get_class_vars() e get_object_vars().

Anterior | Principal | Próxima
class_exists | Acima | get_class_vars


get_class_vars

(PHP 4 , PHP 5)

get_class_vars -- Retorna uma matriz das propriedades padrão da classe

Descrição

array get_class_vars ( string class_name)

Esta função retornará uma matriz associativa com as propriedades padrão da classe. Os elementos resultantes da matriz estão na forma nome_variavel => valor.

Nota: Em versões anteriores ao PHP 4.2.0, variáveis de classe não iniciadas não serão exibidos por get_class_vars().

Exemplo 1. Exemplo get_class_vars()

<?php

class myclass {

    var $var1; // esta não tem valor default...
    var $var2 = "xyz";
    var $var3 = 100;

    // construtor
    function myclass() {
        // mudar algumas propriedades
          $this->var1 = "foo";
          $this->var2 = "bar";
          return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

Produzirá:

// Anteriormente ao PHP 4.2.0
var2 : xyz
var3 : 100

// Apartir do PHP 4.2.0
var1 :
var2 : xyz
var3 : 100

Veja também get_class_methods() e get_object_vars()

Anterior | Principal | Próxima
get_class_methods | Acima | get_class


get_class

(PHP 4 , PHP 5)

get_class -- Retorna o nome da classe de um objeto

Descrição

string get_class ( object obj)

Esta função retorna o nome da classe da qual o objeto obj é instância. Retorna FALSE se obj não é um objeto.

Nota: get_class() retorna um nome de uma classe definida pelo usuário em minúsculas. Uma classe definida em uma extensão do PHP é retornada em sua notação original.

Exemplo 1. Usando get_class()

<?php

class foo {
    function foo()
    {
    // implements some logic
    }

    function name()
    {
        echo "Meu nome é " , get_class($this) , "\n";
    }
}

// create an object
$bar = new foo();

// external call
echo "Its name is " , get_class($bar) , "\n";

// internal call
$bar->name();

?>

A saída é:

Its name is foo
My name is foo

Veja também get_parent_class(),
gettype(), e
is_subclass_of().

Anterior | Principal | Próxima
get_class_vars | Acima | get_declared_classes


get_declared_classes

(PHP 4 , PHP 5)

get_declared_classes -- Retorna uma matriz com os nomes das classes definidas

Descrição

array get_declared_classes ( void )

Esta função retorna uma matriz com os nomes das classes declaradas no script em execução.

Nota: A partir do PHP 4.0.1pl2, três classes extras são retornadas no início da matriz: stdClass (definida em Zend/zend.c), OverloadedTestClass (definida em ext/standard/basic_functions.c) e Directory (definida em ext/standard/dir.c).

Note também que, dependendo de quais bibliotecas você tenha compilado no PHP, classes adicionais poderão estar presentes. Isto significa que você não será capaz de distinguir suas próprias classes usando estes nomes. Há uma lista de classes predefinidas na seção Classes Predefinidas dos apêndices.

Veja também: class_exists().

Anterior | Principal | Próxima
get_class | Acima | get_declared_interfaces


get_declared_interfaces

(PHP 5)

get_declared_interfaces -- Returns an array of all declared interfaces.

Description

array get_declared_interfaces ( void )

This function returns an array of the names of the declared interfaces in the current script.

Exemplo 1. get_declared_interfaces() example

<?php
print_r(get_declared_interfaces());
?>

The above example will output something similar to: :

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Anterior | Principal | Próxima
get_declared_classes | Acima | get_object_vars


get_object_vars

(PHP 4 , PHP 5)

get_object_vars -- Retorna uma matriz associativa com as propriedades do objeto

Descrição

array get_object_vars ( object obj)

Esta função retorna uma matriz associativa com as propriedades definidas do objeto informado em obj.

Nota: Em versões anteriores ao PHP 4.2.0, se as variáveis declaradas na classe de qual obj é uma instância e que não tenham valores assimilados, esses não serão retornados na matriz. Apartir do PHP 4.2.0, ela terá o valor NULL.

Exemplo 1. Uso de get_object_vars()

<?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y)
    {
        $this->x = $x;
        $this->y = $y;
    }

    function setLabel($label)
    {
        $this->label = $label;
    }

    function getPoint()
    {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}

// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));

$p1->setLabel("point #1");
print_r(get_object_vars($p1));

?>

A saída do programa acima será:

Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )

 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )

Veja também get_class_methods() e get_class_vars().

Anterior | Principal | Próxima
get_declared_interfaces | Acima | get_parent_class


get_parent_class

(PHP 4 , PHP 5)

get_parent_class -- Devolve o nome da classe pai para o objeto ou classe

Descrição

string get_parent_class ( mixed obj)

Se obj é um objeto, retorna o nome da classe pai da classe da qual o obj é uma instância.

Seobj é uma string, retorna o nome da classe pai da classe com aquele nome. Esta funcionalidade foi adicionada no PHP 4.0.5.

Exemplo 1. Usando get_parent_class()

<?php

class dad {
    function dad()
    {
    // implemente alguma lógica
    }
}

class child extends dad {
    function child()
    {
        echo "Eu sou " , get_parent_class($this) , "'s filho\n";
    }
}

class child2 extends dad {
    function child2()
    {
        echo "Eu sou " , get_parent_class('child2') , "'s filho também\n";
    }
}

$foo = new child();
$bar = new child2();

?>

A saída é:

I'm dad's son
I'm dad's son too

Veja também get_class() e is_subclass_of().

Anterior | Principal | Próxima
get_object_vars | Acima | is_a


is_a

(PHP 4 >= 4.2.0, PHP 5)

is_a -- Retorna TRUE se o objeto é desta classe ou tem esta classe como sua classe pai.

Descrição

bool is_a ( object object, string class_name)

Esta função retorna TRUE se o objeto é desta classe ou tem esta classe como uma de suas classes pai, caso contrário retorna FALSE.

Veja também get_class(),
get_parent_class(), e
is_subclass_of().

Anterior | Principal | Próxima
get_parent_class | Acima | is_subclass_of


is_subclass_of

(PHP 4 , PHP 5)

is_subclass_of -- Retorna TRUE se o objeto tem esta classe como uma de suas classes pai

Descrição

bool is_subclass_of ( object object, string class_name)

Esta função retorna TRUE se o objeto object, pertence a uma classe que é uma sub-classe de class_name, caso contrário retorna FALSE.

Veja também get_class(),
get_parent_class() e
is_a().

Anterior | Principal | Próxima
is_a | Acima | method_exists


method_exists

(PHP 4 , PHP 5)

method_exists -- Checa se o método da classe existe

Descrição

bool method_exists ( object object, string method_name)

Esta função retorma TRUE se o método dado pelo method_name foi definido para o dado object, caso contrário FALSE.

Anterior | Principal | Próxima
is_subclass_of | Acima | ClibPDF Functions


ClibPDF Functions

Manual do PHP
Anterior Próxima

X. ClibPDF Functions

Introdução

ClibPDF lets you create PDF documents with PHP. ClibPDF functionality and API are similar to PDFlib. This documentation should be read alongside the ClibPDF manual since it explains the library in much greater detail.

Many functions in the native ClibPDF and the PHP module, as well as in PDFlib, have the same name. All functions except for cpdf_open() take the handle for the document as their first parameter.

Currently this handle is not used internally since ClibPDF does not support the creation of several PDF documents at the same time. Actually, you should not even try it, the results are unpredictable. I can't oversee what the consequences in a multi threaded environment are. According to the author of ClibPDF this will change in one of the next releases (current version when this was written is 1.10). If you need this functionality use the pdflib module.

A nice feature of ClibPDF (and PDFlib) is the ability to create the pdf document completely in memory without using temporary files. It also provides the ability to pass coordinates in a predefined unit length. (This feature can also be simulated by pdf_translate() when using the PDFlib functions.)

Another nice feature of ClibPDF is the fact that any page can be modified at any time even if a new page has been already opened. The function cpdf_set_current_page() allows to leave the current page and presume modifying an other page.

Most of the functions are fairly easy to use. The most difficult part is probably creating a very simple PDF document at all. The following example should help you to get started. It creates a document with one page. The page contains the text "Times-Roman" in an outlined 30pt font. The text is underlined.

Nota: If you're interested in alternative free PDF generators that do not utilize external PDF libraries, see this related FAQ.

Requisitos

In order to use the ClibPDF functions you need to install the ClibPDF package. It is available for download from FastIO, but requires that you purchase a license for commercial use. PHP requires that you use cpdflib >= 2.

Instalação

To get these functions to work, you have to compile PHP with --with-cpdflib[=DIR]. DIR is the cpdflib install directory, defaults to /usr. In addition you can specify the jpeg library and the tiff library for ClibPDF to use. To do so add to your configure line the options --with-jpeg-dir[=DIR] --with-tiff-dir[=DIR].

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CPDF_PM_NONE (integer)

CPDF_PM_OUTLINES (integer)

CPDF_PM_THUMBS (integer)

CPDF_PM_FULLSCREEN (integer)

CPDF_PL_SINGLE (integer)

CPDF_PL_1COLUMN (integer)

CPDF_PL_2LCOLUMN (integer)

CPDF_PL_2RCOLUMN (integer)

Exemplos

Exemplo 1. Simple ClibPDF Example

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 740);
cpdf_lineto($cpdf, 330, 740);
cpdf_stroke($cpdf);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

The pdflib distribution contains a more complex example which creates a series of pages with an analog clock. Here is that example converted into PHP using the ClibPDF extension:

Exemplo 2. pdfclock example from pdflib 2.0 distribution

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Analog Clock");

while ($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */

  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6) {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
  }

  cpdf_restore($pdf);
  cpdf_save($pdf);

  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30) {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

Veja Também

See also the PDFlib extension documentation.

Índice
cpdf_add_annotation -- Adds annotation
cpdf_add_outline -- Adds bookmark for current page
cpdf_arc -- Draws an arc
cpdf_begin_text -- Starts text section
cpdf_circle -- Draw a circle
cpdf_clip -- Clips to current path
cpdf_close -- Closes the pdf document
cpdf_closepath_fill_stroke -- Close, fill and stroke current path
cpdf_closepath_stroke -- Close path and draw line along path
cpdf_closepath -- Close path
cpdf_continue_text -- Output text in next line
cpdf_curveto -- Draws a curve
cpdf_end_text -- Ends text section
cpdf_fill_stroke -- Fill and stroke current path
cpdf_fill -- Fill current path
cpdf_finalize_page -- Ends page
cpdf_finalize -- Ends document
cpdf_global_set_document_limits -- Sets document limits for any pdf document
cpdf_import_jpeg -- Opens a JPEG image
cpdf_lineto -- Draws a line
cpdf_moveto -- Sets current point
cpdf_newpath -- Starts a new path
cpdf_open -- Opens a new pdf document
cpdf_output_buffer -- Outputs the pdf document in memory buffer
cpdf_page_init -- Starts new page
cpdf_place_inline_image -- Places an image on the page
cpdf_rect -- Draw a rectangle
cpdf_restore -- Restores formerly saved environment
cpdf_rlineto -- Draws a line
cpdf_rmoveto -- Sets current point
cpdf_rotate_text -- Sets text rotation angle
cpdf_rotate -- Sets rotation
cpdf_save_to_file -- Writes the pdf document into a file
cpdf_save -- Saves current environment
cpdf_scale -- Sets scaling
cpdf_set_action_url -- Sets hyperlink
cpdf_set_char_spacing -- Sets character spacing
cpdf_set_creator -- Sets the creator field in the pdf document
cpdf_set_current_page -- Sets current page
cpdf_set_font_directories -- Sets directories to search when using external fonts
cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts
cpdf_set_font -- Select the current font face and size
cpdf_set_horiz_scaling -- Sets horizontal scaling of text
cpdf_set_keywords -- Sets the keywords field of the pdf document
cpdf_set_leading -- Sets distance between text lines
cpdf_set_page_animation -- Sets duration between pages
cpdf_set_subject -- Sets the subject field of the pdf document
cpdf_set_text_matrix -- Sets the text matrix
cpdf_set_text_pos -- Sets text position
cpdf_set_text_rendering -- Determines how text is rendered
cpdf_set_text_rise -- Sets the text rise
cpdf_set_title -- Sets the title field of the pdf document
cpdf_set_viewer_preferences -- How to show the document in the viewer
cpdf_set_word_spacing -- Sets spacing between words
cpdf_setdash -- Sets dash pattern
cpdf_setflat -- Sets flatness
cpdf_setgray_fill -- Sets filling color to gray value
cpdf_setgray_stroke -- Sets drawing color to gray value
cpdf_setgray -- Sets drawing and filling color to gray value
cpdf_setlinecap -- Sets linecap parameter
cpdf_setlinejoin -- Sets linejoin parameter
cpdf_setlinewidth -- Sets line width
cpdf_setmiterlimit -- Sets miter limit
cpdf_setrgbcolor_fill -- Sets filling color to rgb color value
cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
cpdf_setrgbcolor -- Sets drawing and filling color to rgb color value
cpdf_show_xy -- Output text at position
cpdf_show -- Output text at current position
cpdf_stringwidth -- Returns width of text in current font
cpdf_stroke -- Draw line along path
cpdf_text -- Output text with parameters
cpdf_translate -- Sets origin of coordinate system

Anterior | Principal | Próxima
method_exists | Acima | cpdf_add_annotation


cpdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

cpdf_add_annotation -- Adds annotation

Description

bool cpdf_add_annotation ( int pdf_document, float llx, float lly, float urx, float ury, string title, string content [, int mode])

The cpdf_add_annotation() adds a note with the lower left corner at (llx, lly) and the upper right corner at (urx, ury). Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

Anterior | Principal | Próxima
ClibPDF Functions | Acima | cpdf_add_outline


cpdf_add_outline

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_add_outline -- Adds bookmark for current page

Description

int cpdf_add_outline ( int pdf_document, int lastoutline, int sublevel, int open, int pagenr, string text)

The cpdf_add_outline() function adds a bookmark with text text that points to the current page.

Exemplo 1. Adding a page outline

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
// ...
// some drawing
// ...
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Anterior | Principal | Próxima
cpdf_add_annotation | Acima | cpdf_arc


cpdf_arc

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_arc -- Draws an arc

Description

bool cpdf_arc ( int pdf_document, float x-coor, float y-coor, float radius, float start, float end [, int mode])

The cpdf_arc() function draws an arc with center at point (x-coor, y-coor) and radius radius, starting at angle start and ending at angle end. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_circle().

Anterior | Principal | Próxima
cpdf_add_outline | Acima | cpdf_begin_text


cpdf_begin_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_begin_text -- Starts text section

Description

bool cpdf_begin_text ( int pdf_document)

The cpdf_begin_text() function starts a text section. Retorna TRUE em caso de sucesso ou FALSE em falhas. The created text section must be ended with cpdf_end_text().

Exemplo 1. Text output

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf)
?>

See also cpdf_end_text().

Anterior | Principal | Próxima
cpdf_arc | Acima | cpdf_circle


cpdf_circle

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_circle -- Draw a circle

Description

bool cpdf_circle ( int pdf_document, float x-coor, float y-coor, float radius [, int mode])

The cpdf_circle() function draws a circle with center at point (x-coor, y-coor) and radius radius. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_arc().

Anterior | Principal | Próxima
cpdf_begin_text | Acima | cpdf_clip


cpdf_clip

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_clip -- Clips to current path

Description

bool cpdf_clip ( int pdf_document)

The cpdf_clip() function clips all drawing to the current path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_circle | Acima | cpdf_close


cpdf_close

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_close -- Closes the pdf document

Description

bool cpdf_close ( int pdf_document)

The cpdf_close() function closes the pdf document. Retorna TRUE em caso de sucesso ou FALSE em falhas. This should be the last function even after cpdf_finalize(), cpdf_output_buffer() and cpdf_save_to_file().

See also cpdf_open().

Anterior | Principal | Próxima
cpdf_clip | Acima | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath_fill_stroke -- Close, fill and stroke current path

Description

bool cpdf_closepath_fill_stroke ( int pdf_document)

The cpdf_closepath_fill_stroke() function closes, fills the interior of the current path with the current fill color and draws current path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Anterior | Principal | Próxima
cpdf_close | Acima | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath_stroke -- Close path and draw line along path

Description

bool cpdf_closepath_stroke ( int pdf_document)

The cpdf_closepath_stroke() function is a
combination of cpdf_closepath() and
cpdf_stroke(). Then clears the path.
Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_closepath() and cpdf_stroke().

Anterior | Principal | Próxima
cpdf_closepath_fill_stroke | Acima | cpdf_closepath


cpdf_closepath

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath -- Close path

Description

bool cpdf_closepath ( int pdf_document)

The cpdf_closepath() function closes the current path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_closepath_stroke | Acima | cpdf_continue_text


cpdf_continue_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_continue_text -- Output text in next line

Description

bool cpdf_continue_text ( int pdf_document, string text)

The cpdf_continue_text() function outputs the string in text in the next line. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_show_xy(),
cpdf_text(),
cpdf_set_leading() and
cpdf_set_text_pos().

Anterior | Principal | Próxima
cpdf_closepath | Acima | cpdf_curveto


cpdf_curveto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_curveto -- Draws a curve

Description

bool cpdf_curveto ( int pdf_document, float x1, float y1, float x2, float y2, float x3, float y3 [, int mode])

The cpdf_curveto() function draws a Bezier curve from the current point to the point (x3, y3) using (x1, y1) and (x2, y2) as control points. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_moveto(),
cpdf_rmoveto(),
cpdf_rlineto() and
cpdf_lineto().

Anterior | Principal | Próxima
cpdf_continue_text | Acima | cpdf_end_text


cpdf_end_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_end_text -- Ends text section

Description

bool cpdf_end_text ( int pdf_document)

The cpdf_end_text() function ends a text section which was started with cpdf_begin_text(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Text output

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf)
?>

See also cpdf_begin_text().

Anterior | Principal | Próxima
cpdf_curveto | Acima | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_fill_stroke -- Fill and stroke current path

Description

bool cpdf_fill_stroke ( int pdf_document)

The cpdf_fill_stroke() function fills the interior of the current path with the current fill color and draws current path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Anterior | Principal | Próxima
cpdf_end_text | Acima | cpdf_fill


cpdf_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_fill -- Fill current path

Description

bool cpdf_fill ( int pdf_document)

The cpdf_fill() function fills the interior of the current path with the current fill color. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Anterior | Principal | Próxima
cpdf_fill_stroke | Acima | cpdf_finalize_page


cpdf_finalize_page

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

cpdf_finalize_page -- Ends page

Description

bool cpdf_finalize_page ( int pdf_document, int page_number)

The cpdf_finalize_page() function ends the page with page number page_number. Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function is only for saving memory. A finalized page takes less memory but cannot be modified anymore.

See also cpdf_page_init().

Anterior | Principal | Próxima
cpdf_fill | Acima | cpdf_finalize


cpdf_finalize

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_finalize -- Ends document

Description

bool cpdf_finalize ( int pdf_document)

The cpdf_finalize() function ends the document. You still have to call cpdf_close(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_close().

Anterior | Principal | Próxima
cpdf_finalize_page | Acima | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4 , PHP 5)

cpdf_global_set_document_limits -- Sets document limits for any pdf document

Description

bool cpdf_global_set_document_limits ( int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects)

The cpdf_global_set_document_limits() function sets several document limits. This function has to be called before cpdf_open() to take effect. It sets the limits for any document open afterwards. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_open().

Anterior | Principal | Próxima
cpdf_finalize | Acima | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_import_jpeg -- Opens a JPEG image

Description

int cpdf_import_jpeg ( int pdf_document, string file_name, float x-coor, float y-coor, float angle, float width, float height, float x-scale, float y-scale, int gsave [, int mode])

The cpdf_import_jpeg() function opens an image stored in the file with the name file_name. The format of the image has to be jpeg. The image is placed on the current page at position (x-coor, y-coor). The image is rotated by angle degrees. gsave should be non-zero to allow this function to operate correctly.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_place_inline_image().

Anterior | Principal | Próxima
cpdf_global_set_document_limits | Acima | cpdf_lineto


cpdf_lineto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_lineto -- Draws a line

Description

bool cpdf_lineto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_lineto() function draws a line from the current point to the point with coordinates (x-coor, y-coor). Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_moveto(),
cpdf_rmoveto() and
cpdf_curveto().

Anterior | Principal | Próxima
cpdf_import_jpeg | Acima | cpdf_moveto


cpdf_moveto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_moveto -- Sets current point

Description

bool cpdf_moveto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_moveto() function set the current point to the coordinates x-coor and y-coor. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

Anterior | Principal | Próxima
cpdf_lineto | Acima | cpdf_newpath


cpdf_newpath

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_newpath -- Starts a new path

Description

bool cpdf_newpath ( int pdf_document)

The cpdf_newpath() starts a new path on the document given by the pdf_document parameter. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_moveto | Acima | cpdf_open


cpdf_open

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_open -- Opens a new pdf document

Description

int cpdf_open ( int compression [, string filename])

The cpdf_open() function opens a new pdf document. The first parameter turns document compression on if it is unequal to 0. The second optional parameter sets the file in which the document is written. If it is omitted the document is created in memory and can either be written into a file with the cpdf_save_to_file() or written to standard output with cpdf_output_buffer().

Nota: The return value will be needed in further versions of ClibPDF as the first parameter in all other functions which are writing to the pdf document.

The ClibPDF library takes the filename "-" as a synonym for stdout. If PHP is compiled as an apache module this will not work because the way ClibPDF outputs to stdout does not work with apache. You can solve this problem by skipping the filename and using cpdf_output_buffer() to output the pdf document.

See also cpdf_close() and cpdf_output_buffer().

Anterior | Principal | Próxima
cpdf_newpath | Acima | cpdf_output_buffer


cpdf_output_buffer

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_output_buffer -- Outputs the pdf document in memory buffer

Description

bool cpdf_output_buffer ( int pdf_document)

The cpdf_output_buffer() function outputs the pdf document to stdout. The document has to be created in memory which is the case if cpdf_open() has been called with no filename parameter. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_open().

Anterior | Principal | Próxima
cpdf_open | Acima | cpdf_page_init


cpdf_page_init

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_page_init -- Starts new page

Description

bool cpdf_page_init ( int pdf_document, int page_number, int orientation, float height, float width [, float unit])

The cpdf_page_init() function starts a new page with height height and width width. Retorna TRUE em caso de sucesso ou FALSE em falhas. The page has number page_number and orientation orientation. orientation can be 0 for portrait and 1 for landscape. The last optional parameter unit sets the unit for the coordinate system. The value should be the number of postscript points per unit. Since one inch is equal to 72 points, a value of 72 would set the unit to one inch. The default is also 72.

See also cpdf_set_current_page().

Anterior | Principal | Próxima
cpdf_output_buffer | Acima | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_place_inline_image -- Places an image on the page

Description

bool cpdf_place_inline_image ( int pdf_document, int image, float x-coor, float y-coor, float angle, float width, float height [, int mode])

The cpdf_place_inline_image() function places an image created with the PHP image functions on the page at position (x-coor, y-coor). The image can be scaled at the same time. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_import_jpeg().

Anterior | Principal | Próxima
cpdf_page_init | Acima | cpdf_rect


cpdf_rect

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_rect -- Draw a rectangle

Description

bool cpdf_rect ( int pdf_document, float x-coor, float y-coor, float width, float height [, int mode])

The cpdf_rect() function draws a rectangle with its lower left corner at point (x-coor, y-coor). This width is set to width. This height is set to height. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

Exemplo 1. Drawing a rectangle

<?php

$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);

// set the fill color to red
cpdf_setrgbcolor($cpdf, 1, 0, 0);

// draw a (180 * 100) rectangle
cpdf_rect($cpdf, 645, 400, 180, 100);

// fill the rectangle
cpdf_fill($cpdf);

cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);

?>

Anterior | Principal | Próxima
cpdf_place_inline_image | Acima | cpdf_restore


cpdf_restore

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_restore -- Restores formerly saved environment

Description

bool cpdf_restore ( int pdf_document)

The cpdf_restore() function restores the environment saved with cpdf_save(). It works like the postscript command grestore. Very useful if you want to translate or rotate an object without effecting other objects. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Save/Restore

<?php
cpdf_save($pdf);
// do all kinds of rotations, transformations, ...
cpdf_restore($pdf)
?>

See also cpdf_save().

Anterior | Principal | Próxima
cpdf_rect | Acima | cpdf_rlineto


cpdf_rlineto

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rlineto -- Draws a line

Description

bool cpdf_rlineto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_rlineto() function draws a line from the current point to the relative point with coordinates (x-coor, y-coor). Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_moveto(),
cpdf_rmoveto() and
cpdf_curveto().

Anterior | Principal | Próxima
cpdf_restore | Acima | cpdf_rmoveto


cpdf_rmoveto

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rmoveto -- Sets current point

Description

bool cpdf_rmoveto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_rmoveto() function set the current point relative to the coordinates x-coor and y-coor. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_moveto().

Anterior | Principal | Próxima
cpdf_rlineto | Acima | cpdf_rotate_text


cpdf_rotate_text

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rotate_text -- Sets text rotation angle

Description

bool cpdf_rotate_text ( int pdfdoc, float angle)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cpdf_rmoveto | Acima | cpdf_rotate


cpdf_rotate

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_rotate -- Sets rotation

Description

bool cpdf_rotate ( int pdf_document, float angle)

The cpdf_rotate() function set the rotation in degrees to angle. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_rotate_text | Acima | cpdf_save_to_file


cpdf_save_to_file

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_save_to_file -- Writes the pdf document into a file

Description

bool cpdf_save_to_file ( int pdf_document, string filename)

The cpdf_save_to_file() function outputs the pdf document into a file if it has been created in memory. Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function is not needed if the pdf document has been open by specifying a filename as a parameter of cpdf_open().

See also cpdf_output_buffer() and cpdf_open().

Anterior | Principal | Próxima
cpdf_rotate | Acima | cpdf_save


cpdf_save

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_save -- Saves current environment

Description

bool cpdf_save ( int pdf_document)

The cpdf_save() function saves the current environment. It works like the postscript command gsave. Very useful if you want to translate or rotate an object without effecting other objects. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_restore().

Anterior | Principal | Próxima
cpdf_save_to_file | Acima | cpdf_scale


cpdf_scale

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_scale -- Sets scaling

Description

bool cpdf_scale ( int pdf_document, float x-scale, float y-scale)

The cpdf_scale() function set the scaling factor in both directions. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_save | Acima | cpdf_set_action_url


cpdf_set_action_url

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_action_url -- Sets hyperlink

Description

bool cpdf_set_action_url ( int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cpdf_scale | Acima | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_char_spacing -- Sets character spacing

Description

bool cpdf_set_char_spacing ( int pdf_document, float space)

The cpdf_set_char_spacing() function sets the spacing between characters. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_set_word_spacing() and cpdf_set_leading().

Anterior | Principal | Próxima
cpdf_set_action_url | Acima | cpdf_set_creator


cpdf_set_creator

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_creator -- Sets the creator field in the pdf document

Description

bool cpdf_set_creator ( int pdf_document, string creator)

The cpdf_set_creator() function sets the creator of a pdf document. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_set_subject(),
cpdf_set_title() and
cpdf_set_keywords().

Anterior | Principal | Próxima
cpdf_set_char_spacing | Acima | cpdf_set_current_page


cpdf_set_current_page

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_current_page -- Sets current page

Description

bool cpdf_set_current_page ( int pdf_document, int page_number)

The cpdf_set_current_page() function set the page on which all operations are performed. One can switch between pages until a page is finished with cpdf_finalize_page(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_finalize_page().

Anterior | Principal | Próxima
cpdf_set_creator | Acima | cpdf_set_font_directories


cpdf_set_font_directories

(PHP 4 >= 4.0.6, PHP 5)

cpdf_set_font_directories -- Sets directories to search when using external fonts

Description

bool cpdf_set_font_directories ( int pdfdoc, string pfmdir, string pfbdir)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cpdf_set_current_page | Acima | cpdf_set_font_map_file


cpdf_set_font_map_file

(PHP 4 >= 4.0.6, PHP 5)

cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts

Description

bool cpdf_set_font_map_file ( int pdfdoc, string filename)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cpdf_set_font_directories | Acima | cpdf_set_font


cpdf_set_font

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_font -- Select the current font face and size

Description

bool cpdf_set_font ( int pdf_document, string font_name, float size, string encoding)

The cpdf_set_font() function sets the current font face, font size and encoding. Currently only the standard postscript fonts are supported. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The last parameter encoding can take the following values: "MacRomanEncoding", "MacExpertEncoding", "WinAnsiEncoding", and "NULL". "NULL" stands for the font's built-in encoding.

See the ClibPDF Manual for more information, especially how to support Asian fonts.

Anterior | Principal | Próxima
cpdf_set_font_map_file | Acima | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_horiz_scaling -- Sets horizontal scaling of text

Description

bool cpdf_set_horiz_scaling ( int pdf_document, float scale)

The cpdf_set_horiz_scaling() function sets the horizontal scaling to scale percent. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_set_font | Acima | cpdf_set_keywords


cpdf_set_keywords

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_keywords -- Sets the keywords field of the pdf document

Description

bool cpdf_set_keywords ( int pdf_document, string keywords)

The cpdf_set_keywords() function sets the keywords of a pdf document. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_set_title(),
cpdf_set_creator() and
cpdf_set_subject().

Anterior | Principal | Próxima
cpdf_set_horiz_scaling | Acima | cpdf_set_leading


cpdf_set_leading

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_leading -- Sets distance between text lines

Description

bool cpdf_set_leading ( int pdf_document, float distance)

The cpdf_set_leading() function sets the distance between text lines. This will be used if text is output by cpdf_continue_text(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_continue_text().

Anterior | Principal | Próxima
cpdf_set_keywords | Acima | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_page_animation -- Sets duration between pages

Description

bool cpdf_set_page_animation ( int pdf_document, int transition, float duration)

The cpdf_set_page_animation() function set the transition between following pages. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The value of transition can be

0 for none,
1 for two lines sweeping across the screen reveal the page,
2 for multiple lines sweeping across the screen reveal the page,
3 for a box reveals the page,
4 for a single line sweeping across the screen reveals the page,
5 for the old page dissolves to reveal the page,
6 for the dissolve effect moves from one screen edge to another,
7 for the old page is simply replaced by the new page (default)

The value of duration is the number of seconds between page flipping.

Anterior | Principal | Próxima
cpdf_set_leading | Acima | cpdf_set_subject


cpdf_set_subject

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_subject -- Sets the subject field of the pdf document

Description

bool cpdf_set_subject ( int pdf_document, string subject)

The cpdf_set_subject() function sets the subject of a pdf document. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_set_title(),
cpdf_set_creator() and
cpdf_set_keywords().

Anterior | Principal | Próxima
cpdf_set_page_animation | Acima | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_matrix -- Sets the text matrix

Description

bool cpdf_set_text_matrix ( int pdf_document, array matrix)

The cpdf_set_text_matrix() function sets a matrix which describes a transformation applied on the current text font. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_set_subject | Acima | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_pos -- Sets text position

Description

bool cpdf_set_text_pos ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_set_text_pos() function sets the position of text for the next cpdf_show() function call. Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

See also cpdf_show() and cpdf_text().

Anterior | Principal | Próxima
cpdf_set_text_matrix | Acima | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_rendering -- Determines how text is rendered

Description

bool cpdf_set_text_rendering ( int pdf_document, int rendermode)

The cpdf_set_text_rendering() function determines how text is rendered. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The possible values for rendermode are 0=fill text, 1=stroke text, 2=fill and stroke text, 3=invisible, 4=fill text and add it to clipping path, 5=stroke text and add it to clipping path, 6=fill and stroke text and add it to clipping path, 7=add it to clipping path.

Anterior | Principal | Próxima
cpdf_set_text_pos | Acima | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_rise -- Sets the text rise

Description

bool cpdf_set_text_rise ( int pdf_document, float value)

The cpdf_set_text_rise() function sets the text rising to value units. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_set_text_rendering | Acima | cpdf_set_title


cpdf_set_title

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_title -- Sets the title field of the pdf document

Description

bool cpdf_set_title ( int pdf_document, string title)

The cpdf_set_title() function sets the title of a pdf document. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_set_subject(),
cpdf_set_creator() and
cpdf_set_keywords().

Anterior | Principal | Próxima
cpdf_set_text_rise | Acima | cpdf_set_viewer_preferences


cpdf_set_viewer_preferences

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_viewer_preferences -- How to show the document in the viewer

Description

bool cpdf_set_viewer_preferences ( int pdfdoc, array preferences)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cpdf_set_title | Acima | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_word_spacing -- Sets spacing between words

Description

bool cpdf_set_word_spacing ( int pdf_document, float space)

The cpdf_set_word_spacing() function sets the spacing between words. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_set_char_spacing() and cpdf_set_leading().

Anterior | Principal | Próxima
cpdf_set_viewer_preferences | Acima | cpdf_setdash


cpdf_setdash

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setdash -- Sets dash pattern

Description

bool cpdf_setdash ( int pdf_document, float white, float black)

The cpdf_setdash() function set the dash pattern white white units and black black units. If both are 0 a solid line is set. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_set_word_spacing | Acima | cpdf_setflat


cpdf_setflat

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setflat -- Sets flatness

Description

bool cpdf_setflat ( int pdf_document, float value)

The cpdf_setflat() function set the flatness to a value between 0 and 100. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_setdash | Acima | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray_fill -- Sets filling color to gray value

Description

bool cpdf_setgray_fill ( int pdf_document, float value)

The cpdf_setgray_fill() function sets the current gray value to fill a path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_setrgbcolor_fill().

Anterior | Principal | Próxima
cpdf_setflat | Acima | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray_stroke -- Sets drawing color to gray value

Description

bool cpdf_setgray_stroke ( int pdf_document, float gray_value)

The cpdf_setgray_stroke() function sets the current drawing color to the given gray value. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_setrgbcolor_stroke().

Anterior | Principal | Próxima
cpdf_setgray_fill | Acima | cpdf_setgray


cpdf_setgray

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray -- Sets drawing and filling color to gray value

Description

bool cpdf_setgray ( int pdf_document, float gray_value)

The cpdf_setgray() function sets the current drawing and filling color to the given gray value. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor_fill().

Anterior | Principal | Próxima
cpdf_setgray_stroke | Acima | cpdf_setlinecap


cpdf_setlinecap

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinecap -- Sets linecap parameter

Description

bool cpdf_setlinecap ( int pdf_document, int value)

The cpdf_setlinecap() function set the linecap parameter between a value of 0 and 2. 0 = butt end, 1 = round, 2 = projecting square. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_setgray | Acima | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinejoin -- Sets linejoin parameter

Description

bool cpdf_setlinejoin ( int pdf_document, int value)

The cpdf_setlinejoin() function set the linejoin parameter between a value of 0 and 2. 0 = miter, 1 = round, 2 = bevel. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_setlinecap | Acima | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinewidth -- Sets line width

Description

bool cpdf_setlinewidth ( int pdf_document, float width)

The cpdf_setlinewidth() function set the line width to width. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_setlinejoin | Acima | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setmiterlimit -- Sets miter limit

Description

bool cpdf_setmiterlimit ( int pdf_document, float value)

The cpdf_setmiterlimit() function set the miter limit to a value greater or equal than 1. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
cpdf_setlinewidth | Acima | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor_fill -- Sets filling color to rgb color value

Description

bool cpdf_setrgbcolor_fill ( int pdf_document, float red_value, float green_value, float blue_value)

The cpdf_setrgbcolor_fill() function sets the current rgb color value to fill a path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor().

Anterior | Principal | Próxima
cpdf_setmiterlimit | Acima | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

bool cpdf_setrgbcolor_stroke ( int pdf_document, float red_value, float green_value, float blue_value)

The cpdf_setrgbcolor_stroke() function sets the current drawing color to the given rgb color value. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_fill() and cpdf_setrgbcolor().

Anterior | Principal | Próxima
cpdf_setrgbcolor_fill | Acima | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

bool cpdf_setrgbcolor ( int pdf_document, float red_value, float green_value, float blue_value)

The cpdf_setrgbcolor() function sets the current drawing and filling color to the given rgb color value. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor_fill().

Anterior | Principal | Próxima
cpdf_setrgbcolor_stroke | Acima | cpdf_show_xy


cpdf_show_xy

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_show_xy -- Output text at position

Description

bool cpdf_show_xy ( int pdf_document, string text, float x-coor, float y-coor [, int mode])

The cpdf_show_xy() function outputs the string text at position with coordinates (x-coor, y-coor). Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

Nota: The function cpdf_show_xy() is identical to cpdf_text() without the optional parameters.

See also cpdf_text().

Anterior | Principal | Próxima
cpdf_setrgbcolor | Acima | cpdf_show


cpdf_show

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_show -- Output text at current position

Description

bool cpdf_show ( int pdf_document, string text)

The cpdf_show() function outputs the string in text at the current position. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_text(),
cpdf_begin_text() and
cpdf_end_text().

Anterior | Principal | Próxima
cpdf_show_xy | Acima | cpdf_stringwidth


cpdf_stringwidth

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_stringwidth -- Returns width of text in current font

Description

float cpdf_stringwidth ( int pdf_document, string text)

The cpdf_stringwidth() function returns the width of the string in text. It requires a font to be set before.

See also cpdf_set_font().

Anterior | Principal | Próxima
cpdf_show | Acima | cpdf_stroke


cpdf_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_stroke -- Draw line along path

Description

bool cpdf_stroke ( int pdf_document)

The cpdf_stroke() function draws a line along current path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also cpdf_closepath() and cpdf_closepath_stroke().

Anterior | Principal | Próxima
cpdf_stringwidth | Acima | cpdf_text


cpdf_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_text -- Output text with parameters

Description

bool cpdf_text ( int pdf_document, string text, float x-coor, float y-coor [, int mode [, float orientation [, int alignmode]]])

The cpdf_text() function outputs the string text at position with coordinates (x-coor, y-coor). Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

The optional parameter orientation is the rotation of the text in degree.

The optional parameter alignmode determines how the text is aligned.

See the ClibPDF documentation for possible values.

See also cpdf_show_xy().

Anterior | Principal | Próxima
cpdf_stroke | Acima | cpdf_translate


cpdf_translate

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_translate -- Sets origin of coordinate system

Description

bool cpdf_translate ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_translate() function set the origin of coordinate system to the point (x-coor, y-coor). Retorna TRUE em caso de sucesso ou FALSE em falhas.

O parâmetro opcional mode determina a unidade de tamanho. Se é 0 ou omitida, o valor padrão de uniddade para a página é utilizada. Caso contrário, as coordenadas são medidas em postscript points independentemente da unidade atual

Anterior | Principal | Próxima
cpdf_text | Acima | Crack, funções de teste de senha


Crack, funções de teste de senha

Manual do PHP
Anterior Próxima

XI. Crack, funções de teste de senha

Introdução

Estas funções permitem a você usar a biblioteca CrackLib para testar a 'força' de uma senha. A 'força' de uma senha é testada pelo seu tamanho, uso de letras maiúsculas e minúsculas, e conferido em um dicionário CrackLib especificado. CrackLib irá também dar mensagens de diagnóstico utéis que irão ajudar a 'fortalecer' a sua senha.

Requisitos

Maiores informações sobre a biblioteca CrackLib podem ser encontradas em http://www.crypticide.org/users/alecm/.

Instalação

Para utilizar estas funções, você deverá compilar o PHP com suporte a Crack usando a opção de configuração --with-crack[=DIR].

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração Crack

Nome | Padrão | Modificável
crack.default_dictionary | NULL | PHP_INI_SYSTEM
Para maiores detalhes e definição das constantes PHP_INI_* veja ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

This example shows how to open a CrackLib dictionary, test a given password, retrieve any diagnostic messages, and close the dictionary.

Exemplo 1. CrackLib example

<?php
// Open CrackLib Dictionary
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Perform password check
$check = crack_check($dictionary, 'gx9A2s0x');

// Retrieve messages
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Close dictionary
crack_closedict($dictionary);
?>

Nota: If crack_check() returns TRUE, crack_getlastmessage() will return 'strong password'.

Índice
crack_check -- Faz uma conferencia obscura com a senha indicada
crack_closedict -- Fecha um dicionário CrackLib aberto
crack_getlastmessage -- Retorna a mensagem do último teste de senha
crack_opendict -- Abre um novo dicionário CrackLib

Anterior | Principal | Próxima
cpdf_translate | Acima | crack_check


crack_check

(PHP 4 >= 4.0.5)

crack_check -- Faz uma conferencia obscura com a senha indicada

Description

bool crack_check ( [resource dictionary, string password])

Retorna TRUE se password é forte, ou FALSE se não.

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

crack_check() faz uma conferencia obscura com o password no dictionary especificado. Se dictionary não for especificado, o último dicionário aberto é usado.

Anterior | Principal | Próxima
Crack, funções de teste de senha | Acima | crack_closedict


crack_closedict

(PHP 4 >= 4.0.5)

crack_closedict -- Fecha um dicionário CrackLib aberto

Descrição

bool crack_closedict ( [resource dictionary])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

crack_closedict() fecha o dictionary especificado. Se dictionary não for especificado, o dicionário atual é fechado.

Anterior | Principal | Próxima
crack_check | Acima | crack_getlastmessage


crack_getlastmessage

(PHP 4 >= 4.0.5)

crack_getlastmessage -- Retorna a mensagem do último teste de senha

Descrição

string crack_getlastmessage ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

crack_getlastmessage() retorna a mensagem do último teste de senha.

Anterior | Principal | Próxima
crack_closedict | Acima | crack_opendict


crack_opendict

(PHP 4 >= 4.0.5)

crack_opendict -- Abre um novo dicionário CrackLib

Descrição

resource crack_opendict ( string dictionary)

Retorna um identificador de recurso de dicionário em caso de sucesso, ou FALSE em caso de falha.

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

crack_opendict() abre o dictionary CrackLib especificado para usar com a função crack_check().

Nota: Apenas um dicionário pode estar aberto de cada vez.

Veja também: crack_check() e crack_closedict().

Anterior | Principal | Próxima
crack_getlastmessage | Acima | CURL, Client URL Library Functions


CURL, Client URL Library Functions

Manual do PHP
Anterior Próxima

XII. CURL, Client URL Library Functions

Introdução

PHP supports libcurl, a library created by Daniel Stenberg, that allows you to connect and communicate to many different types of servers with many different types of protocols. libcurl currently supports the http, https, ftp, gopher, telnet, dict, file, and ldap protocols. libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading (this can also be done with PHP's ftp extension), HTTP form based upload, proxies, cookies, and user+password authentication.

These functions have been added in PHP 4.0.2.

Requisitos

In order to use the CURL functions you need to install the CURL package. PHP requires that you use CURL 7.0.2-beta or higher. PHP will not work with any version of CURL below version 7.0.2-beta. In PHP 4.2.3, you will need CURL version 7.9.0 or higher. From PHP 4.3.0, you will need a CURL version that's 7.9.8 or higher. PHP 5.0.0 will most likely require a CURL version greater than 7.10.5

Instalação

To use PHP's CURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories. In the "include" directory there should be a folder named "curl" which should contain the easy.h and curl.h files. There should be a file named libcurl.a located in the "lib" directory. Beginning with PHP 4.3.0 you can configure PHP to use CURL for URL streams --with-curlwrappers.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy libeay32.dll and ssleay32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your Windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM)

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CURLOPT_PORT (integer)

CURLOPT_FILE (integer)

CURLOPT_INFILE (integer)

CURLOPT_INFILESIZE (integer)

CURLOPT_URL (integer)

CURLOPT_PROXY (integer)

CURLOPT_VERBOSE (integer)

CURLOPT_HEADER (integer)

CURLOPT_HTTPHEADER (integer)

CURLOPT_NOPROGRESS (integer)

CURLOPT_NOBODY (integer)

CURLOPT_FAILONERROR (integer)

CURLOPT_UPLOAD (integer)

CURLOPT_POST (integer)

CURLOPT_FTPLISTONLY (integer)

CURLOPT_FTPAPPEND (integer)

CURLOPT_NETRC (integer)

CURLOPT_FOLLOWLOCATION (integer)

CURLOPT_FTPASCII (integer)

CURLOPT_PUT (integer)

CURLOPT_MUTE (integer)

CURLOPT_USERPWD (integer)

CURLOPT_PROXYUSERPWD (integer)

CURLOPT_RANGE (integer)

CURLOPT_TIMEOUT (integer)

CURLOPT_POSTFIELDS (integer)

CURLOPT_REFERER (integer)

CURLOPT_USERAGENT (integer)

CURLOPT_FTPPORT (integer)

CURLOPT_LOW_SPEED_LIMIT (integer)

CURLOPT_LOW_SPEED_TIME (integer)

CURLOPT_RESUME_FROM (integer)

CURLOPT_COOKIE (integer)

CURLOPT_SSLCERT (integer)

CURLOPT_SSLCERTPASSWD (integer)

CURLOPT_WRITEHEADER (integer)

CURLOPT_SSL_VERIFYHOST (integer)

CURLOPT_COOKIEFILE (integer)

CURLOPT_SSLVERSION (integer)

CURLOPT_TIMECONDITION (integer)

CURLOPT_TIMEVALUE (integer)

CURLOPT_CUSTOMREQUEST (integer)

CURLOPT_STDERR (integer)

CURLOPT_TRANSFERTEXT (integer)

CURLOPT_RETURNTRANSFER (integer)

CURLOPT_QUOTE (integer)

CURLOPT_POSTQUOTE (integer)

CURLOPT_INTERFACE (integer)

CURLOPT_KRB4LEVEL (integer)

CURLOPT_HTTPPROXYTUNNEL (integer)

CURLOPT_FILETIME (integer)

CURLOPT_WRITEFUNCTION (integer)

CURLOPT_READFUNCTION (integer)

CURLOPT_PASSWDFUNCTION (integer)

CURLOPT_HEADERFUNCTION (integer)

CURLOPT_MAXREDIRS (integer)

CURLOPT_MAXCONNECTS (integer)

CURLOPT_CLOSEPOLICY (integer)

CURLOPT_FRESH_CONNECT (integer)

CURLOPT_FORBID_REUSE (integer)

CURLOPT_RANDOM_FILE (integer)

CURLOPT_EGDSOCKET (integer)

CURLOPT_CONNECTTIMEOUT (integer)

CURLOPT_SSL_VERIFYPEER (integer)

CURLOPT_CAINFO (integer)

CURLOPT_COOKIEJAR (integer)

CURLOPT_SSL_CIPHER_LIST (integer)

CURLOPT_BINARYTRANSFER (integer)

CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)

CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)

CURLCLOSEPOLICY_SLOWEST (integer)

CURLCLOSEPOLICY_CALLBACK (integer)

CURLCLOSEPOLICY_OLDEST (integer)

CURLINFO_EFFECTIVE_URL (integer)

CURLINFO_HTTP_CODE (integer)

CURLINFO_HEADER_SIZE (integer)

CURLINFO_REQUEST_SIZE (integer)

CURLINFO_TOTAL_TIME (integer)

CURLINFO_NAMELOOKUP_TIME (integer)

CURLINFO_CONNECT_TIME (integer)

CURLINFO_PRETRANSFER_TIME (integer)

CURLINFO_SIZE_UPLOAD (integer)

CURLINFO_SIZE_DOWNLOAD (integer)

CURLINFO_SPEED_DOWNLOAD (integer)

CURLINFO_SPEED_UPLOAD (integer)

CURLINFO_FILETIME (integer)

CURLINFO_SSL_VERIFYRESULT (integer)

CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)

CURLINFO_CONTENT_LENGTH_UPLOAD (integer)

CURLE_OK (integer)

CURLE_UNSUPPORTED_PROTOCOL (integer)

CURLE_FAILED_INIT (integer)

CURLE_URL_MALFORMAT (integer)

CURLE_URL_MALFORMAT_USER (integer)

CURLE_COULDNT_RESOLVE_PROXY (integer)

CURLE_COULDNT_RESOLVE_HOST (integer)

CURLE_COULDNT_CONNECT (integer)

CURLE_FTP_WEIRD_SERVER_REPLY (integer)

CURLE_FTP_ACCESS_DENIED (integer)

CURLE_FTP_USER_PASSWORD_INCORRECT (integer)

CURLE_FTP_WEIRD_PASS_REPLY (integer)

CURLE_FTP_WEIRD_USER_REPLY (integer)

CURLE_FTP_WEIRD_PASV_REPLY (integer)

CURLE_FTP_WEIRD_227_FORMAT (integer)

CURLE_FTP_CANT_GET_HOST (integer)

CURLE_FTP_CANT_RECONNECT (integer)

CURLE_FTP_COULDNT_SET_BINARY (integer)

CURLE_PARTIAL_FILE (integer)

CURLE_FTP_COULDNT_RETR_FILE (integer)

CURLE_FTP_WRITE_ERROR (integer)

CURLE_FTP_QUOTE_ERROR (integer)

CURLE_HTTP_NOT_FOUND (integer)

CURLE_WRITE_ERROR (integer)

CURLE_MALFORMAT_USER (integer)

CURLE_FTP_COULDNT_STOR_FILE (integer)

CURLE_READ_ERROR (integer)

CURLE_OUT_OF_MEMORY (integer)

CURLE_OPERATION_TIMEOUTED (integer)

CURLE_FTP_COULDNT_SET_ASCII (integer)

CURLE_FTP_PORT_FAILED (integer)

CURLE_FTP_COULDNT_USE_REST (integer)

CURLE_FTP_COULDNT_GET_SIZE (integer)

CURLE_HTTP_RANGE_ERROR (integer)

CURLE_HTTP_POST_ERROR (integer)

CURLE_SSL_CONNECT_ERROR (integer)

CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)

CURLE_FILE_COULDNT_READ_FILE (integer)

CURLE_LDAP_CANNOT_BIND (integer)

CURLE_LDAP_SEARCH_FAILED (integer)

CURLE_LIBRARY_NOT_FOUND (integer)

CURLE_FUNCTION_NOT_FOUND (integer)

CURLE_ABORTED_BY_CALLBACK (integer)

CURLE_BAD_FUNCTION_ARGUMENT (integer)

CURLE_BAD_CALLING_ORDER (integer)

CURLE_HTTP_PORT_FAILED (integer)

CURLE_BAD_PASSWORD_ENTERED (integer)

CURLE_TOO_MANY_REDIRECTS (integer)

CURLE_UNKNOWN_TELNET_OPTION (integer)

CURLE_TELNET_OPTION_SYNTAX (integer)

CURLE_OBSOLETE (integer)

CURLE_SSL_PEER_CERTIFICATE (integer)

Exemplos

Once you've compiled PHP with CURL support, you can begin using the CURL functions. The basic idea behind the CURL functions is that you initialize a CURL session using the curl_init(), then you can set all your options for the transfer via the curl_setopt(), then you can execute the session with the curl_exec() and then you finish off your session using the curl_close(). Here is an example that uses the CURL functions to fetch the example.com homepage into a file:

Exemplo 1. Using PHP's CURL module to fetch the example.com homepage

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Índice
curl_close -- Close a CURL session
curl_errno -- Return the last error number
curl_error -- Return a string containing the last error for the current session
curl_exec -- Perform a CURL session
curl_getinfo -- Get information regarding a specific transfer
curl_init -- Initialize a CURL session
curl_multi_add_handle -- Add a normal cURL handle to a cURL multi handle
curl_multi_close -- Close a set of cURL handles
curl_multi_exec -- Run the sub-connections of the current cURL handle
curl_multi_getcontent -- Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
curl_multi_info_read -- Get information about the current transfers
curl_multi_init -- Returns a new cURL multi handle
curl_multi_remove_handle -- Remove a multi handle from a set of cURL handles
curl_multi_select -- Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt -- Set an option for a CURL transfer
curl_version -- Return the current CURL version

Anterior | Principal | Próxima
crack_opendict | Acima | curl_close


curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_close -- Close a CURL session

Description

void curl_close ( resource ch)

This function closes a CURL session and frees all resources. The CURL handle, ch, is also deleted.

Exemplo 1. Initializing a new CURL session and fetching a webpage

<?php
// create a new curl resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close curl resource, and free up system resources
curl_close($ch);
?>

See also: curl_init().

Anterior | Principal | Próxima
CURL, Client URL Library Functions | Acima | curl_errno


curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errno -- Return the last error number

Description

int curl_errno ( resource ch)

Returns the error number for the last cURL operation on the resource ch, or 0 (zero) if no error occurred.

See also curl_error() and Curl error codes.

Anterior | Principal | Próxima
curl_close | Acima | curl_error


curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_error -- Return a string containing the last error for the current session

Description

string curl_error ( resource ch)

Returns a clear text error message for the last cURL operation on the resource ch, or '' (the empty string) if no error occurred.

See also curl_errno() and Curl error codes.

Anterior | Principal | Próxima
curl_errno | Acima | curl_exec


curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_exec -- Perform a CURL session

Description

mixed curl_exec ( resource ch)

This function should be called after you initialize a CURL session and all the options for the session are set. Its purpose is simply to execute the predefined CURL session (given by the ch).

Exemplo 1. Initializing a new CURL session and fetching a webpage

<?php
// create a new curl resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close curl resource, and free up system resources
curl_close($ch);
?>

Nota: If you want to have the result returned instead of it being printed to the browser directly, use the CURLOPT_RETURNTRANSFER option of curl_setopt().

Anterior | Principal | Próxima
curl_error | Acima | curl_getinfo


curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfo -- Get information regarding a specific transfer

Description

string curl_getinfo ( resource ch [, int opt])

Returns information about the last transfer, opt may be one of the following:

  • "CURLINFO_EFFECTIVE_URL" - Last effective URL

  • "CURLINFO_HTTP_CODE" - Last received HTTP code

  • "CURLINFO_FILETIME" - Remote time of the retrieved document, if -1 is returned the time of the document is unknown

  • "CURLINFO_TOTAL_TIME" - Total transaction time in seconds for last transfer

  • "CURLINFO_NAMELOOKUP_TIME" - Time in seconds until name resolving was complete

  • "CURLINFO_CONNECT_TIME" - Time in seconds it took to establish the connection

  • "CURLINFO_PRETRANSFER_TIME" - Time in seconds from start until just before file transfer begins

  • "CURLINFO_STARTTRANSFER_TIME" - Time in seconds until the first byte is about to be transferred

  • "CURLINFO_REDIRECT_TIME" - Time in seconds of all redirection steps before final transaction was started

  • "CURLINFO_SIZE_UPLOAD" - Total number of bytes uploaded

  • "CURLINFO_SIZE_DOWNLOAD" - Total number of bytes downloaded

  • "CURLINFO_SPEED_DOWNLOAD" - Average download speed

  • "CURLINFO_SPEED_UPLOAD" - Average upload speed

  • "CURLINFO_HEADER_SIZE" - Total size of all headers received

  • "CURLINFO_REQUEST_SIZE" - Total size of issued requests, currently only for HTTP requests

  • "CURLINFO_SSL_VERIFYRESULT" - Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER

  • "CURLINFO_CONTENT_LENGTH_DOWNLOAD" - content-length of download, read from Content-Length: field

  • "CURLINFO_CONTENT_LENGTH_UPLOAD" - Specified size of upload

  • "CURLINFO_CONTENT_TYPE" - Content-type of downloaded object, NULL indicates server did not send valid Content-Type: header

If called without the optional parameter opt an associative array is returned with the following array elements which correspond to opt options:

  • "url"

  • "content_type"

  • "http_encode"

  • "header_size"

  • "request_size"

  • "filetime"

  • "ssl_verify_result"

  • "redirect_count"

  • "total_time"

  • "namelookup_time"

  • "connect_time"

  • "pretransfer_time"

  • "size_upload"

  • "size_download"

  • "speed_download"

  • "speed_upload"

  • "download_content_length"

  • "upload_content_length"

  • "starttransfer_time"

  • "redirect_time"

Anterior | Principal | Próxima
curl_exec | Acima | curl_init


curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init -- Initialize a CURL session

Description

resource curl_init ( [string url])

The curl_init() will initialize a new session and return a CURL handle for use with the curl_setopt(), curl_exec(), and curl_close() functions. If the optional url parameter is supplied then the CURLOPT_URL option will be set to the value of the parameter. You can manually set this using the curl_setopt() function.

Exemplo 1. Initializing a new CURL session and fetching a webpage

<?php
// create a new curl resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close curl resource, and free up system resources
curl_close($ch);
?>

See also: curl_close(), curl_setopt()

Anterior | Principal | Próxima
curl_getinfo | Acima | curl_multi_add_handle


curl_multi_add_handle

(PHP 5)

curl_multi_add_handle -- Add a normal cURL handle to a cURL multi handle

Description

int curl_multi_add_handle ( resource mh, resource ch)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also
curl_multi_init(),
curl_init(), and
curl_multi_remove_handle().

Anterior | Principal | Próxima
curl_init | Acima | curl_multi_close


curl_multi_close

(PHP 5)

curl_multi_close -- Close a set of cURL handles

Description

void curl_multi_close ( resource mh)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also curl_multi_init() and curl_close().

Anterior | Principal | Próxima
curl_multi_add_handle | Acima | curl_multi_exec


curl_multi_exec

(PHP 5)

curl_multi_exec -- Run the sub-connections of the current cURL handle

Description

int curl_multi_exec ( resource mh)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also curl_multi_init() and curl_exec().

Anterior | Principal | Próxima
curl_multi_close | Acima | curl_multi_getcontent


curl_multi_getcontent

(PHP 5)

curl_multi_getcontent -- Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set

Description

string curl_multi_getcontent ( resource ch)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also curl_multi_init().

Anterior | Principal | Próxima
curl_multi_exec | Acima | curl_multi_info_read


curl_multi_info_read

(PHP 5)

curl_multi_info_read -- Get information about the current transfers

Description

array curl_multi_info_read ( resource mh)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also curl_multi_init().

Anterior | Principal | Próxima
curl_multi_getcontent | Acima | curl_multi_init


curl_multi_init

(PHP 5)

curl_multi_init -- Returns a new cURL multi handle

Description

resource curl_multi_init ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also curl_init() and curl_multi_close().

Anterior | Principal | Próxima
curl_multi_info_read | Acima | curl_multi_remove_handle


curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handle -- Remove a multi handle from a set of cURL handles

Description

int curl_multi_remove_handle ( resource mh, resource ch)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also
curl_multi_init(),
curl_init(), and
curl_multi_add_handle().

Anterior | Principal | Próxima
curl_multi_init | Acima | curl_multi_select


curl_multi_select

(PHP 5)

curl_multi_select -- Get all the sockets associated with the cURL extension, which can then be "selected"

Description

int curl_multi_select ( resource mh [, float timeout])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also curl_multi_init().

Anterior | Principal | Próxima
curl_multi_remove_handle | Acima | curl_setopt


curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Set an option for a CURL transfer

Description

bool curl_setopt ( resource ch, string option, mixed value)

The curl_setopt() function will set options for a CURL session identified by the ch parameter. The option parameter is the option you want to set, and the value is the value of the option given by the option.

The value should be a long for the following options (specified in the option parameter):

  • CURLOPT_INFILESIZE: When you are uploading a file to a remote site, this option should be used to tell PHP what the expected size of the infile will be.

  • CURLOPT_VERBOSE: Set this option to a non-zero value if you want CURL to report everything that is happening.

  • CURLOPT_HEADER: Set this option to a non-zero value if you want the header to be included in the output.

  • CURLOPT_NOPROGRESS: Set this option to a non-zero value if you don't want PHP to display a progress meter for CURL transfers.

    Nota: PHP automatically sets this option to a non-zero parameter, this should only be changed for debugging purposes.

  • CURLOPT_NOBODY: Set this option to a non-zero value if you don't want the body included with the output.

  • CURLOPT_FAILONERROR: Set this option to a non-zero value if you want PHP to fail silently if the HTTP code returned is greater than 300. The default behavior is to return the page normally, ignoring the code.

  • CURLOPT_UPLOAD: Set this option to a non-zero value if you want PHP to prepare for an upload.

  • CURLOPT_POST: Set this option to a non-zero value if you want PHP to do a regular HTTP POST. This POST is a normal application/x-www-form-urlencoded kind, most commonly used by HTML forms.

  • CURLOPT_FTPLISTONLY: Set this option to a non-zero value and PHP will just list the names of an FTP directory.

  • CURLOPT_FTPAPPEND: Set this option to a non-zero value and PHP will append to the remote file instead of overwriting it.

  • CURLOPT_NETRC: Set this option to a non-zero value and PHP will scan your ~./netrc file to find your username and password for the remote site that you're establishing a connection with.

  • CURLOPT_FOLLOWLOCATION: Set this option to a non-zero value to follow any "Location: " header that the server sends as a part of the HTTP header (note this is recursive, PHP will follow as many "Location: " headers that it is sent.)

  • CURLOPT_PUT: Set this option to a non-zero value to HTTP PUT a file. The file to PUT must be set with the CURLOPT_INFILE and CURLOPT_INFILESIZE.

  • CURLOPT_MUTE: Set this option to a non-zero value and PHP will be completely silent with regards to the CURL functions.

  • CURLOPT_TIMEOUT: Pass a long as a parameter that contains the maximum time, in seconds, that you'll allow the CURL functions to take.

  • CURLOPT_LOW_SPEED_LIMIT: Pass a long as a parameter that contains the transfer speed in bytes per second that the transfer should be below during CURLOPT_LOW_SPEED_TIME seconds for PHP to consider too slow and abort.

  • CURLOPT_LOW_SPEED_TIME: Pass a long as a parameter that contains the time in seconds that the transfer should be below the CURLOPT_LOW_SPEED_LIMIT for PHP to consider it too slow and abort.

  • CURLOPT_RESUME_FROM: Pass a long as a parameter that contains the offset, in bytes, that you want the transfer to start from.

  • CURLOPT_CAINFO: Pass a filename of a file holding one or more certificates to verify the peer with. This only makes sense when used in combination with the CURLOPT_SSL_VERIFYPEER option.

  • CURLOPT_SSL_VERIFYPEER: Pass a long that is set to a zero value to stop curl from verifying the peer's certificate (curl 7.10 starting setting this option to TRUE by default). Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option (added in curl 7.9.8) or a certificate directory can be specified with the CURLOPT_CAPATH option. As of curl 7.10, curl installs a default bundle. CURLOPT_SSL_VERIFYHOST may also need to be set to 1 or 0 if CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2).

  • CURLOPT_SSLVERSION: Pass a long as a parameter that contains the SSL version (2 or 3) to use. By default PHP will try and determine this by itself, although, in some cases you must set this manually.

  • CURLOPT_SSL_VERIFYHOST: Pass a long if CURL should verify the Common name of the peer certificate in the SSL handshake. A value of 1 denotes that we should check for the existence of the common name, a value of 2 denotes that we should make sure it matches the provided hostname.

  • CURLOPT_TIMECONDITION: Pass a long as a parameter that defines how the CURLOPT_TIMEVALUE is treated. You can set this parameter to TIMECOND_IFMODSINCE or TIMECOND_ISUNMODSINCE. This is a HTTP-only feature.

  • CURLOPT_TIMEVALUE: Pass a long as a parameter that is the time in seconds since January 1st, 1970. The time will be used as specified by the CURLOPT_TIMECONDITION option, or by default the TIMECOND_IFMODSINCE will be used.

  • CURLOPT_RETURNTRANSFER: Pass a non-zero value if you want CURL to directly return the transfer instead of printing it out directly.

The value parameter should be a string for the following values of the option parameter:

  • CURLOPT_URL: This is the URL that you want PHP to fetch. You can also set this option when initializing a session with the curl_init() function.

  • CURLOPT_USERPWD: Pass a string formatted in the [username]:[password] manner, for PHP to use for the connection.

  • CURLOPT_PROXYUSERPWD: Pass a string formatted in the [username]:[password] format for connection to the HTTP proxy.

  • CURLOPT_RANGE: Pass the specified range you want. It should be in the "X-Y" format, where X or Y may be left out. The HTTP transfers also support several intervals, separated with commas as in X-Y,N-M.

  • CURLOPT_POSTFIELDS: Pass a string containing the full data to post in an HTTP "POST" operation.

  • CURLOPT_REFERER: Pass a string containing the "referer" header to be used in an HTTP request.

  • CURLOPT_USERAGENT: Pass a string containing the "user-agent" header to be used in an HTTP request.

  • CURLOPT_FTPPORT: Pass a string containing the value which will be used to get the IP address to use for the ftp "POST" instruction. The POST instruction tells the remote server to connect to our specified IP address. The string may be a plain IP address, a hostname, a network interface name (under Unix), or just a plain '-' to use the systems default IP address.

  • CURLOPT_COOKIE: Pass a string containing the content of the cookie to be set in the HTTP header.

  • CURLOPT_SSLCERT: Pass a string containing the filename of PEM formatted certificate.

  • CURLOPT_SSLCERTPASSWD: Pass a string containing the password required to use the CURLOPT_SSLCERT certificate.

  • CURLOPT_COOKIEFILE: Pass a string containing the name of the file containing the cookie data. The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file.

  • CURLOPT_CUSTOMREQUEST: Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing DELETE or other, more obscure, HTTP requests. Valid values are things like GET, POST, and so on; i.e. do not enter a whole HTTP request line here. For instance, entering 'GET /index.html HTTP/1.0\r\n\r\n' would be incorrect.

    Nota: Don't do this without making sure your server supports the command first.

  • CURLOPT_PROXY: Give the name of the HTTP proxy to tunnel requests through.

  • CURLOPT_INTERFACE: Pass the name of the outgoing network interface to use. This can be an interface name, an IP address or a host name.

  • CURLOPT_KRB4LEVEL: Pass the KRB4 (Kerberos 4) security level. Any of the following values (in order from least to most powerful) are valid: 'clear', 'safe', 'confidential', 'private'. If the string does not match one of these, then 'private' is used. Setting this Option to NULL, will disable KRB4 security. Currently KRB4 security only works with FTP transactions.

  • CURLOPT_HTTPHEADER: Pass an array of HTTP header fields to set.

  • CURLOPT_QUOTE: Pass an array of FTP commands to perform on the server prior to the FTP request.

  • CURLOPT_POSTQUOTE: Pass an array of FTP commands to execute on the server, after the FTP request has been performed.

The following options expect a file descriptor that is obtained by using the fopen() function:

  • CURLOPT_FILE: The file where the output of your transfer should be placed, the default is STDOUT.

  • CURLOPT_INFILE: The file where the input of your transfer comes from.

  • CURLOPT_WRITEHEADER: The file to write the header part of the output into.

  • CURLOPT_STDERR: The file to write errors to instead of stderr.

Exemplo 1. Initializing a new CURL session and fetching a webpage

<?php
// create a new curl resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close curl resource, and free up system resources
curl_close($ch);
?>

Anterior | Principal | Próxima
curl_multi_select | Acima | curl_version


curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_version -- Return the current CURL version

Description

string curl_version ( void )

The curl_version() function returns a string containing the current CURL version.

Anterior | Principal | Próxima
curl_setopt | Acima | Cybercash Payment Functions


Cybercash Payment Functions

Manual do PHP
Anterior Próxima

XIII. Cybercash Payment Functions

Instalação

These functions are only available if the interpreter has been compiled with the --with-cybercash=[DIR].

This extension has been moved from PHP as of PHP 4.3.0 and now CyberCash lives in PECL.

If you have questions as to the latest status of CyberCash then the following CyberCash Faq will be helpful. In short, CyberCash was bought out by VeriSign and although the CyberCash service continues to exist, VeriSign encourages users to switch. See the above faq and PECL link for details.

Índice
cybercash_base64_decode -- base64 decode data for Cybercash
cybercash_base64_encode -- base64 encode data for Cybercash
cybercash_decr -- Cybercash decrypt
cybercash_encr -- Cybercash encrypt

Anterior | Principal | Próxima
curl_version | Acima | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 <= 4.2.3)

cybercash_base64_decode -- base64 decode data for Cybercash

Description

string cybercash_base64_decode ( string inbuff)

Anterior | Principal | Próxima
Cybercash Payment Functions | Acima | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 <= 4.2.3)

cybercash_base64_encode -- base64 encode data for Cybercash

Description

string cybercash_base64_encode ( string inbuff)

Anterior | Principal | Próxima
cybercash_base64_decode | Acima | cybercash_decr


cybercash_decr

(PHP 4 <= 4.2.3)

cybercash_decr -- Cybercash decrypt

Description

array cybercash_decr ( string wmk, string sk, string inbuff)

The function returns an associative array with the elements "errcode" and, if "errcode" is FALSE, "outbuff" (string), "outLth" (long) and "macbuff" (string).

Anterior | Principal | Próxima
cybercash_base64_encode | Acima | cybercash_encr


cybercash_encr

(PHP 4 <= 4.2.3)

cybercash_encr -- Cybercash encrypt

Description

array cybercash_encr ( string wmk, string sk, string inbuff)

The function returns an associative array with the elements "errcode" and, if "errcode" is FALSE, "outbuff" (string), "outLth" (long) and "macbuff" (string).

Anterior | Principal | Próxima
cybercash_decr | Acima | Cyrus IMAP administration Functions


Cyrus IMAP administration Functions

Manual do PHP
Anterior Próxima

XIV. Cyrus IMAP administration Functions

Introdução

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Esta extensão não está disponível na plataforma Windows.

Instalação

To enable Cyrus IMAP support and to use these functions you have to compile PHP with the --with-cyrus option.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CYRUS_CONN_NONSYNCLITERAL (integer)

CYRUS_CONN_INITIALRESPONSE (integer)

CYRUS_CALLBACK_NUMBERED (integer)

CYRUS_CALLBACK_NOLITERAL (integer)

Índice
cyrus_authenticate -- Authenticate against a Cyrus IMAP server
cyrus_bind -- Bind callbacks to a Cyrus IMAP connection
cyrus_close -- Close connection to a Cyrus IMAP server
cyrus_connect -- Connect to a Cyrus IMAP server
cyrus_query -- Send a query to a Cyrus IMAP server
cyrus_unbind -- Unbind ...

Anterior | Principal | Próxima
cybercash_encr | Acima | cyrus_authenticate


cyrus_authenticate

(PHP 4 >= 4.1.0)

cyrus_authenticate -- Authenticate against a Cyrus IMAP server

Description

bool cyrus_authenticate ( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf]]]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Cyrus IMAP administration Functions | Acima | cyrus_bind


cyrus_bind

(PHP 4 >= 4.1.0)

cyrus_bind -- Bind callbacks to a Cyrus IMAP connection

Description

bool cyrus_bind ( resource connection, array callbacks)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cyrus_authenticate | Acima | cyrus_close


cyrus_close

(PHP 4 >= 4.1.0)

cyrus_close -- Close connection to a Cyrus IMAP server

Description

bool cyrus_close ( resource connection)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cyrus_bind | Acima | cyrus_connect


cyrus_connect

(PHP 4 >= 4.1.0)

cyrus_connect -- Connect to a Cyrus IMAP server

Description

resource cyrus_connect ( [string host [, string port [, int flags]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cyrus_close | Acima | cyrus_query


cyrus_query

(PHP 4 >= 4.1.0)

cyrus_query -- Send a query to a Cyrus IMAP server

Description

bool cyrus_query ( resource connection, string query)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cyrus_connect | Acima | cyrus_unbind


cyrus_unbind

(PHP 4 >= 4.1.0)

cyrus_unbind -- Unbind ...

Description

bool cyrus_unbind ( resource connection, string trigger_name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
cyrus_query | Acima | Character Type Functions


Character Type Functions

Manual do PHP
Anterior Próxima

XV. Character Type Functions

Introdução

The functions provided by this extension check whether a character or string falls into a certain character class according to the current locale (see also setlocale()).

When called with an integer argument these functions behave exactly like their C counterparts from ctype.h.

When called with a string argument they will check every character in the string and will only return TRUE if every character in the string matches the requested criteria. When called with an empty string the result will always be TRUE.

Passing anything else but a string or integer will return FALSE immediately.

Requisitos

None besides functions from the standard C library which are always available.

Instalação

Beginning with PHP 4.2.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-ctype. You can disable ctype support with --disable-ctype.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Nota: Builtin support for ctype is available with PHP 4.3.0.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
ctype_alnum -- Check for alphanumeric character(s)
ctype_alpha -- Check for alphabetic character(s)
ctype_cntrl -- Check for control character(s)
ctype_digit -- Check for numeric character(s)
ctype_graph -- Check for any printable character(s) except space
ctype_lower -- Check for lowercase character(s)
ctype_print -- Check for printable character(s)
ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character
ctype_space -- Check for whitespace character(s)
ctype_upper -- Check for uppercase character(s)
ctype_xdigit -- Check for character(s) representing a hexadecimal digit

Anterior | Principal | Próxima
cyrus_unbind | Acima | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnum -- Check for alphanumeric character(s)

Description

bool ctype_alnum ( string text)

Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise. In the standard C locale letters are just [A-Za-z] and the function is equivalent to preg_match('/^[a-z0-9]*$/i', $text).

Exemplo 1. A ctype_alnum() example (using the default locale)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "The string $testcase consists of all letters or digits.\n";
    } else {
        echo "The string $testcase does not consist of all letters or digits.\n";
    }
}
?>

This example will output :

The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consists of all letters or digits.

See also ctype_alpha(), ctype_digit(), and setlocale().

Anterior | Principal | Próxima
Character Type Functions | Acima | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alpha -- Check for alphabetic character(s)

Description

bool ctype_alpha ( string text)

Returns TRUE if every character in text is a letter from the current locale, FALSE otherwise. In the standard C locale letters are just [A-Za-z] and ctype_alpha() is equivalent to (ctype_upper($text) || ctype_lower($text)) if $text is just a single character, but other languages have letters that are considered neither upper nor lower case.

Exemplo 1. A ctype_alpha() example (using the default locale)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
    if (ctype_alpha($testcase)) {
        echo "The string $testcase consists of all letters.\n";
    } else {
        echo "The string $testcase does not consist of all letters.\n";
    }
}
?>

This example will output :

The string KjgWZC consists of all letters.
The string arf12 does not consists of all letters.

See also ctype_upper(),
ctype_lower(), and
setlocale().

Anterior | Principal | Próxima
ctype_alnum | Acima | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrl -- Check for control character(s)

Description

bool ctype_cntrl ( string text)

Returns TRUE if every character in text has a special control function, FALSE otherwise. Control characters are e.g. line feed, tab, esc.

Exemplo 1. A ctype_cntrl() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
    if (ctype_cntrl($testcase)) {
        echo "The string '$name' consists of all control characters.\n";
    } else {
        echo "The string '$name' does not consist of all control characters.\n";
    }
}
?>

This example will output :

The string 'string1' consists of all control characters.
The string 'string2' does not consists of all control characters.

Anterior | Principal | Próxima
ctype_alpha | Acima | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digit -- Check for numeric character(s)

Description

bool ctype_digit ( string text)

Returns TRUE if every character in text is a decimal digit, FALSE otherwise.

Exemplo 1. A ctype_digit() example

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "The string $testcase consists of all digits.\n";
    } else {
        echo "The string $testcase does not consist of all digits.\n";
    }
}
?>

This example will output :

The string 1820.20 does not consists of all digits.
The string 10002 consists of all digits.
The string wsl!12 does not consists of all digits.

See also ctype_alnum() and ctype_xdigit().

Anterior | Principal | Próxima
ctype_cntrl | Acima | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graph -- Check for any printable character(s) except space

Description

bool ctype_graph ( string text)

Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.

Exemplo 1. A ctype_graph() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_graph($testcase)) {
        echo "The string '$name' consists of all (visibly) printable characters.\n";
    } else {
        echo "The string '$name' does not consist of all (visibly) printable characters.\n";
    }
}
?>

This example will output :

The string 'string1' does not consist of all printable characters.
The string 'string2' consists of all printable characters.
The string 'string3' consists of all printable characters.

See also ctype_alnum(), ctype_print(), and ctype_punct().

Anterior | Principal | Próxima
ctype_digit | Acima | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lower -- Check for lowercase character(s)

Description

bool ctype_lower ( string text)

Returns TRUE if every character in text is a lowercase letter in the current locale.

Exemplo 1. A ctype_lower() example (using the default locale)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
    if (ctype_lower($testcase)) {
        echo "The string $testcase consists of all lowercase letters.\n";
    } else {
        echo "The string $testcase does not consist of all lowercase letters.\n";
    }
}
?>

This example will output :

The string aac123 does not consist of all lowercase letters.
The string qiutoas consists of all lowercase letters.
The string QASsdks does not consist of all lowercase letters.

See also ctype_alpha(), ctype_upper(), and setlocale().

Anterior | Principal | Próxima
ctype_graph | Acima | ctype_print


ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print -- Check for printable character(s)

Description

bool ctype_print ( string text)

Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.

Exemplo 1. A ctype_print() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_print($testcase)) {
        echo "The string '$name' consists of all printable characters.\n";
    } else {
        echo "The string '$name' does not consist of all printable characters.\n";
    }
}
?>

This example will output :

The string 'string1' does not consist of all printable characters.
The string 'string2' consists of all printable characters.
The string 'string3' consists of all printable characters.

See also ctype_cntrl(), ctype_graph(), and ctype_punct().

Anterior | Principal | Próxima
ctype_lower | Acima | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character

Description

bool ctype_punct ( string text)

Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.

Exemplo 1. A ctype_punct() example

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
    if (ctype_punct($testcase)) {
        echo "The string $testcase consists of all punctuation.\n";
    } else {
        echo "The string $testcase does not consist of all punctuation.\n";
    }
}
?>

This example will output :

The string ABasdk!@!$# does not consist of all punctuation.
The string !@ # $ does not consist of all punctuation.
The string *&$() consists of all punctuation.

See also ctype_cntrl() and ctype_graph().

Anterior | Principal | Próxima
ctype_print | Acima | ctype_space


ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_space -- Check for whitespace character(s)

Description

bool ctype_space ( string text)

Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.

Exemplo 1. A ctype_space() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "The string '$name' consists of all whitespace characters.\n";
    } else {
        echo "The string '$name' does not consist of all whitespace characters.\n";
    }
}
?>

This example will output :

The string 'string1' consists of all whitespace characters.
The string 'string2' does not consist of all whitespace characters.
The string 'string3' does not consist of all whitespace characters.

See also ctype_cntrl(), ctype_graph(), and ctype_punct().

Anterior | Principal | Próxima
ctype_punct | Acima | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upper -- Check for uppercase character(s)

Description

bool ctype_upper ( string text)

Returns TRUE if every character in text is an uppercase letter in the current locale.

Exemplo 1. A ctype_upper() example (using the default locale)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
    if (ctype_upper($testcase)) {
        echo "The string $testcase consists of all uppercase letters.\n";
    } else {
        echo "The string $testcase does not consist of all uppercase letters.\n";
    }
}
?>

This example will output :

The string AKLWC139 does not consist of all uppercase letters.
The string LMNSDO consists of all uppercase letters.
The string akwSKWsm does not consist of all uppercase letters.

See also ctype_alpha(), ctype_lower(), and setlocale().

Anterior | Principal | Próxima
ctype_space | Acima | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit -- Check for character(s) representing a hexadecimal digit

Description

bool ctype_xdigit ( string text)

Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.

Exemplo 1. A ctype_xdigit() example

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
    if (ctype_xdigit($testcase)) {
        echo "The string $testcase consists of all hexadecimal digits.\n";
    } else {
        echo "The string $testcase does not consist of all hexadecimal digits.\n";
    }
}
?>

This example will output :

The string AB10BC99 consists of all hexadecimal digits.
The string AR1012 does not consist of all hexadecimal digits.
The string ab12bc99 consists of all hexadecimal digits.

See also ctype_digit().

Anterior | Principal | Próxima
ctype_upper | Acima | Database (dbm-style) Abstraction Layer Functions


Database (dbm-style) Abstraction Layer Functions

Manual do PHP
Anterior Próxima

XVI. Database (dbm-style) Abstraction Layer Functions

Introdução

These functions build the foundation for accessing Berkeley DB style databases.

This is a general abstraction layer for several file-based databases. As such, functionality is limited to a common subset of features supported by modern databases such as Sleepycat Software's DB2. (This is not to be confused with IBM's DB2 software, which is supported through the ODBC functions.)

Requisitos

The behaviour of various aspects depends on the implementation of the underlying database. Functions such as dba_optimize() and dba_sync() will do what they promise for one database and will do nothing for others. You have to download and install supported dba-Handlers.

Tabela 1. List of DBA handlers

Handler | Notes
dbm | Dbm is the oldest (original) type of Berkeley DB style databases. You should avoid it, if possible. We do not support the compatibility functions built into DB2 and gdbm, because they are only compatible on the source code level, but cannot handle the original dbm format.
ndbm | Ndbm is a newer type and more flexible than dbm. It still has most of the arbitrary limits of dbm (therefore it is deprecated).
gdbm | Gdbm is the GNU database manager.
db2 | DB2 is Sleepycat Software's DB2. It is described as "a programmatic toolkit that provides high-performance built-in database support for both standalone and client/server applications.
db3 | DB3 is Sleepycat Software's DB3.
db4 | DB4 is Sleepycat Software's DB4. This is available since PHP 4.3.2.
cdb | Cdb is "a fast, reliable, lightweight package for creating and reading constant databases." It is from the author of qmail and can be found at http://cr.yp.to/cdb.html. Since it is constant, we support only reading operations. And since PHP 4.3.0 we support writing (not updating) through the internal cdb library.
cdb_make | Since PHP 4.3.0 we support creation (not updating) of cdb files when the bundled cdb library is used.
flatfile | This is available since PHP 4.3.0 for compatibility with the deprecated dbm extension only and should be avoided. However you may use this where files were created in this format. That happens when configure could not find any external library.
inifile | This is available since PHP 4.3.3 to be able to modify php.ini files from within PHP scripts. When working with ini files you can pass arrays of the form array(0=>group,1=>value_name) or strings of the form "[group]value_name" where group is optional. As the functions dba_firstkey() and dba_nextkey() return string representations of the key there is a new function dba_key_split() available since PHP 5 which allows to convert the string keys into array keys without loosing FALSE.
qdbm | This is available since PHP 5.0.0. The qdbm library can be loaded from http://qdbm.sourceforge.net.

When invoking the dba_open() or dba_popen() functions, one of the handler names must be supplied as an argument. The actually available list of handlers is displayed by invoking phpinfo() or dba_handlers().

Instalação

By using the --enable-dba=shared configuration option you can build a dynamic loadable module to enable PHP for basic support of dbm-style databases. You also have to add support for at least one of the following handlers by specifying the --with-XXXX configure switch to your PHP configure line.

Atenção

After configuring and compiling PHP you must execute the following test from commandline: php run-tests.php ext/dba. This shows whether your combination of handlers works. Most problematic are dbm and ndbm which conflict with many installations. The reason for this is that on several systems these libraries are part of more than one other library. The configuration test only prevents you from configuring malfaunctioning single handlers but not combinations.

Tabela 2. Supported DBA handlers

Handler | Configure Switch
dbm To enable support for dbm add --with-dbm[=DIR].

Nota: dbm normally is a wrapper which often results in failures. This means you should only use dbm if you are sure it works and if you really need this format.

ndbm To enable support for ndbm add --with-ndbm[=DIR].

Nota: ndbm normally is a wrapper which often results in failures. This means you should only use ndbm if you are sure it works and if you really need this format.

gdbm | To enable support for gdbm add --with-gdbm[=DIR].
db2 To enable support for db2 add --with-db2[=DIR].

Nota: db2 conflicts with db3 and db4.

db3 To enable support for db3 add --with-db3[=DIR].

Nota: db3 conflicts with db2 and db4.

db4 To enable support for db4 add --with-db4[=DIR].

Nota: db4 conflicts with db2 and db3.

Nota: This was added in PHP 4.3.2. In earlier versions of PHP you need to use --with-db3=DIR with DIR being the path to db4 library. It is not possible to use db versions starting from 4.1 with PHP prior to version 4.3.0. Also, the db libraries with versions 4.1 through 4.1.24 cannot be used in any PHP version.

cdb To enable support for cdb add --with-cdb[=DIR].

Nota: Since PHP 4.3.0 you can omit DIR to use the bundled cdb library that adds the cdb_make handler which allows creation of cdb files and allows to access cdb files on the network using PHP's streams.

flatfile To enable support for flatfile add --with-flatfile.

Nota: This was added in PHP 4.3.0 to add compatibility with deprecated dbm extension. Use this handler only when you cannot install one of the libraries required by the other handlers and when you cannot use bundled cdb handler.

inifile To enable support for inifile add --with-inifile.

Nota: This was added in PHP 5.0.0 and allows to read and set microsoft style ini files (like the php.ini file).

qdbm To enable support for qdbm add --with-qdbm[=DIR].

Nota: qdbm conflicts with dbm and gdbm.

Nota: This was added in PHP 5.0.0. The qdbm library can be loaded from http://qdbm.sourceforge.net.

Nota: Up to PHP 4.3.0 you are able to add both db2 and db3 handler but only one of them can be used internally. That means that you cannot have both file formats. Starting with PHP 5.0.0 there is a configuration check avoid such missconfigurations.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

The functions dba_open() and dba_popen() return a handle to the specified database file to access which is used by all other dba-function calls.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Exemplo 1. DBA example

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open failed\n";
    exit;
}

dba_replace("key", "This is an example!", $id);

if (dba_exists("key", $id)) {
    echo dba_fetch("key", $id);
    dba_delete("key", $id);
}

dba_close($id);
?>

DBA is binary safe and does not have any arbitrary limits. However, it inherits all limits set by the underlying database implementation.

All file-based databases must provide a way of setting the file mode of a new created database, if that is possible at all. The file mode is commonly passed as the fourth argument to dba_open() or dba_popen().

You can access all entries of a database in a linear way by using the dba_firstkey() and dba_nextkey() functions. You may not change the database while traversing it.

Exemplo 2. Traversing a database

<?php

// ...open database...

$key = dba_firstkey($id);

while ($key != false) {
    if (true) {          // remember the key to perform some action later
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

for ($i = 0; $i < count($handle_later); $i++) {
    dba_delete($handle_later[$i], $id);
}

?>

Índice
dba_close -- Close database
dba_delete -- Delete entry specified by key
dba_exists -- Check whether key exists
dba_fetch -- Fetch data specified by key
dba_firstkey -- Fetch first key
dba_handlers -- List handlers available
dba_insert -- Insert entry
dba_key_split -- Splits a key in string representation into array representation
dba_list -- List all open database files
dba_nextkey -- Fetch next key
dba_open -- Open database
dba_optimize -- Optimize database
dba_popen -- Open database persistently
dba_replace -- Replace or insert entry
dba_sync -- Synchronize database

Anterior | Principal | Próxima
ctype_xdigit | Acima | dba_close


dba_close

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_close -- Close database

Description

void dba_close ( resource handle)

dba_close() closes the established database and frees all resources specified by handle.

handle is a database handle returned by dba_open().

dba_close() does not return any value.

See also: dba_open() and dba_popen()

Anterior | Principal | Próxima
Database (dbm-style) Abstraction Layer Functions | Acima | dba_delete


dba_delete

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_delete -- Delete entry specified by key

Description

bool dba_delete ( string key, resource handle)

dba_delete() deletes the entry specified by key from the database specified with handle.

key is the key of the entry which is deleted.

handle is a database handle returned by dba_open().

dba_delete() returns TRUE or FALSE, if the entry is deleted or not deleted, respectively.

See also: dba_exists(),
dba_fetch(), dba_insert(),
and dba_replace().

Anterior | Principal | Próxima
dba_close | Acima | dba_exists


dba_exists

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_exists -- Check whether key exists

Description

bool dba_exists ( string key, resource handle)

dba_exists() checks whether the specified key exists in the database specified by handle.

Key is the key the check is performed for.

Handle is a database handle returned by dba_open().

dba_exists() returns TRUE or FALSE, if the key is found or not found, respectively.

See also: dba_fetch(),
dba_delete(), dba_insert(),
and dba_replace().

Anterior | Principal | Próxima
dba_delete | Acima | dba_fetch


dba_fetch

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_fetch -- Fetch data specified by key

Description

string dba_fetch ( string key, resource handle)

string dba_fetch ( string key, int skip, resource handle)

dba_fetch() fetches the data specified by key from the database specified with handle.

Key is the key the data is specified by.

Skip is the number of key-value pairs to ignore when using cdb databases. This value is ignored for all other databases which do not support multiple keys with the same name.

Handle is a database handle returned by dba_open().

dba_fetch() returns the associated string or FALSE, if the key/data pair is found or not found, respectively.

See also: dba_exists(),
dba_delete(), dba_insert(),
dba_replace() and dba_key_split().

Nota: The skip parameter is available since PHP 4.3 to support cdb's capability of multiple keys having the same name.

Nota: When working with inifiles this function accepts arrays as keys where index 0 is the group and index 1 is the value name. See: dba_key_split().

Anterior | Principal | Próxima
dba_exists | Acima | dba_firstkey


dba_firstkey

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_firstkey -- Fetch first key

Description

string dba_firstkey ( resource handle)

dba_firstkey() returns the first key of the database specified by handle and resets the internal key pointer. This permits a linear search through the whole database.

Handle is a database handle returned by dba_open().

dba_firstkey() returns the key or FALSE depending on whether it succeeds or fails, respectively.

See also: dba_firstkey(), dba_key_split() and example 2 in the DBA examples

Anterior | Principal | Próxima
dba_fetch | Acima | dba_handlers


dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlers -- List handlers available

Description

array dba_handlers ( void )

dba_handlers() returns an array with all handlers supported by this extension.

When the internal cdb library is used you will see 'cdb' and 'cdb_make'.

Anterior | Principal | Próxima
dba_firstkey | Acima | dba_insert


dba_insert

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_insert -- Insert entry

Description

bool dba_insert ( string key, string value, resource handle)

dba_insert() inserts the entry described with key and value into the database specified by handle. It fails, if an entry with the same key already exists.

key is the key of the entry to be inserted.

value is the value to be inserted.

handle is a database handle returned by dba_open().

dba_insert() returns TRUE or FALSE, depending on whether it succeeds of fails, respectively.

See also:
dba_exists()
dba_delete()
dba_fetch()
dba_replace()

Anterior | Principal | Próxima
dba_handlers | Acima | dba_key_split


dba_key_split

(PHP 5)

dba_key_split -- Splits a key in string representation into array representation

Description

mixed dba_key_split ( mixed key)

dba_key_split() returns an array of the form array(0=>group,1=>value_name). This function will return FALSE if key is NULL or FALSE.

key is the key in string representation.

See also
dba_firstkey(),
dba_nextkey() and
dba_fetch().

Anterior | Principal | Próxima
dba_insert | Acima | dba_list


dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_list -- List all open database files

Description

array dba_list ( void )

dba_list() returns an associative array with all open database files. This array is in the form: resourceid=>filename.

Anterior | Principal | Próxima
dba_key_split | Acima | dba_nextkey


dba_nextkey

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_nextkey -- Fetch next key

Description

string dba_nextkey ( resource handle)

dba_nextkey() returns the next key of the database specified by handle and advances the internal key pointer.

handle is a database handle returned by dba_open().

dba_nextkey() returns the key or FALSE depending on whether it succeeds or fails, respectively.

See also: dba_firstkey(), dba_key_split() and example 2 in the DBA examples

Anterior | Principal | Próxima
dba_list | Acima | dba_open


dba_open

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_open -- Open database

Description

resource dba_open ( string path, string mode, string handler [, ...])

dba_open() establishes a database instance for path with mode using handler.

path is commonly a regular path in your filesystem.

mode is "r" for read access, "w" for read/write access to an already existing database, "c" for read/write access and database creation if it doesn't currently exist, and "n" for create, truncate and read/write access. Additional you can set the database lock method with the next char. Use "l" to lock the database with an .lck file or "d" to lock the databasefile itself. It is important that all of your applications do this consistently. If you want to test the access and do not want to wait for the lock you can add "t" as third character. When you are absolutely sure that you do not require database locking you can do so by using "-" instead of "l" or "d". When none of "d", "l" or "-" is used dba will lock on the database file as it would with "d".

handler is the name of the handler which shall be used for accessing path. It is passed all optional parameters given to dba_open() and can act on behalf of them.

dba_open() returns a positive handle or FALSE, in the case the database was opened successfull or fails, respectively.

Nota: There can only be one writer for one database file. When you use dba on a webserver and more than one request requires write operations they can only be done one after another. Also read during write is not allowed. The dba extension uses locks to prevent this. See the following table:

Tabela 1. DBA locking

already open | mode = "rl" | mode = "rlt" | mode = "wl" | mode = "wlt" | mode = "rd" | mode = "rdt" | mode = "wd" | mode = "wdt"
not open | ok | ok | ok | ok | ok | ok | ok | ok
mode = "rl" | ok | ok | wait | false | illegal | illegal | illegal | illegal
mode = "wl" | wait | false | wait | false | illegal | illegal | illegal | illegal
mode = "rd" | illegal | illegal | illegal | illegal | ok | ok | wait | false
mode = "wd" | illegal | illegal | illegal | illegal | wait | false | wait | false

ok: the second call will be successfull.
wait: the second call waits until dba_close() is called for the first.
false: the second call returns false.
illegal: you must not mix "l" and "d" modifiers for mode parameter.

Nota: Since PHP 4.3.0 it is possible to open database files over network connection. However in cases a socket connection will be used (as with http or ftp) the connection will be locked instead of the resource itself. This is important to know since in such cases locking is simply ignored on the resource and other solutions have to be found.

Nota: Locking and the mode modifiers "l", "d", "-" and "t" were added in PHP 4.3.0. In PHP versions before PHP 4.3.0 you must use semaphores to guard against simultaneous database access for any database handler with the exception of GDBM. See System V semaphore support.

Nota: Up to PHP 4.3.5 open mode 'c' is broken for several internal handlers and truncates the database instead of appending data to an existant database. Also dbm and ndbm fail on mode 'c' in typical configurations (this cannot be fixed).

See also: dba_popen() dba_close()

Anterior | Principal | Próxima
dba_nextkey | Acima | dba_optimize


dba_optimize

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_optimize -- Optimize database

Description

bool dba_optimize ( resource handle)

dba_optimize() optimizes the underlying database specified by handle.

handle is a database handle returned by dba_open().

dba_optimize() returns TRUE or FALSE, if the optimization succeeds or fails, respectively.

See also: dba_sync()

Anterior | Principal | Próxima
dba_open | Acima | dba_popen


dba_popen

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_popen -- Open database persistently

Description

resource dba_popen ( string path, string mode, string handler [, ...])

dba_popen() establishes a persistent database instance for path with mode using handler.

path is commonly a regular path in your filesystem.

mode is "r" for read access, "w" for read/write access to an already existing database, "c" for read/write access and database creation if it doesn't currently exist, and "n" for create, truncate and read/write access.

handler is the name of the handler which shall be used for accessing path. It is passed all optional parameters given to dba_popen() and can act on behalf of them.

dba_popen() returns a positive handle or FALSE, in the case the open is successful or fails, respectively.

See also: dba_open() dba_close()

Anterior | Principal | Próxima
dba_optimize | Acima | dba_replace


dba_replace

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_replace -- Replace or insert entry

Description

bool dba_replace ( string key, string value, resource handle)

dba_replace() replaces or inserts the entry described with key and value into the database specified by handle.

key is the key of the entry to be inserted.

value is the value to be inserted.

handle is a database handle returned by dba_open().

dba_replace() returns TRUE or FALSE, depending on whether it succeeds of fails, respectively.

See also: dba_exists(),
dba_delete(), dba_fetch(),
and dba_insert().

Anterior | Principal | Próxima
dba_popen | Acima | dba_sync


dba_sync

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_sync -- Synchronize database

Description

bool dba_sync ( resource handle)

dba_sync() synchronizes the database specified by handle. This will probably trigger a physical write to disk, if supported.

handle is a database handle returned by dba_open().

dba_sync() returns TRUE or FALSE, if the synchronization succeeds or fails, respectively.

See also: dba_optimize()

Anterior | Principal | Próxima
dba_replace | Acima | Data e hora


Data e hora

Manual do PHP
Anterior Próxima

XVII. Data e hora

Introdução

Estas funções te permitem conseguir a data e a hora do servidor onde o PHP está rodando. Você pode usar estas funções para formatar a saída de data e hora de muitas maneiras diferentes.

Nota: Por favor mantenha em mente que estas funções dependem das configurações locais do servidor. Considerar especialmente horário-de-verão e anos bissextos quando trabalhar com estas funções.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
checkdate -- Validar uma data Gregoriana
date -- Formata a data e a hora local
getdate -- Consegue informações data/hora
gettimeofday -- Obtém a hora local
gmdate -- Formata uma data/hora GMT/CUT
gmmktime -- Obtém um timestamp Unix para uma data GMT
gmstrftime -- Formata uma hora/data GMT/CUT de acordo com as configurações locais
localtime -- Obtém a hora local
microtime -- Retorna um timestamp Unix com microsegundos
mktime -- Obtém um timestamp Unix para uma data
strftime -- Formata uma hora/data de acordo com as configurações locais
strtotime -- Analisa qualquer descrição em texto em inglês de data hora em timestamp Unix
time -- Retorna o timestamp Unix atual

Anterior | Principal | Próxima
dba_sync | Acima | checkdate


checkdate

(PHP 3, PHP 4 , PHP 5)

checkdate -- Validar uma data Gregoriana

Descrição

bool checkdate ( int mês, int dia, int ano)

Retorna TRUE se a data dada é válida; caso contrário retorna FALSE. Checa a validade da data formada pelos argumentos. Uma data é considerada válida se:

  • O ano está entre 1 e 32767

  • O mês está entre 1 e 12

  • dia deve estar dentro do número de dias permitidos para o dado mês. anos bissextos são levados em consideração.

Exemplo 1. checkdate() exemplo

<?php
      var_dump(checkdate(12, 31, 2000));
      var_dump(checkdate(2, 29, 2001));
      ?>

O exemplo acima exibirá:

bool(true)
      bool(false)

Veja também mktime() e strtotime().

Anterior | Principal | Próxima
Data e hora | Acima | date


date

(PHP 3, PHP 4 , PHP 5)

date -- Formata a data e a hora local

Descrição

string date ( string format [, int timestamp])

Retorna uma string de acordo com a string format dada usando o inteiro timestamp dado ou a hora atual local se nenhum timestamp é dado. Em outras palavras, timestamp é opcional e o padrão para o valor de time().

Nota: A linha válida de um timestamp é tipicamente de Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (Estas são as datas que correspodem aos mínimos e máximos valores para um inteiro de 32-bit definido). No windows esta linha é limitada de 01-01-1970 para 19-01-2038.

Nota: Para gerar um timestamp a partir de uma representação de string da data, você deve ser capaz de usar strtotime(). Adicionalmente, alguns bancos de dados têm funções para converter suas datas em timestamps (tais como a função do MySQL UNIX_TIMESTAMP).

Tabela 1. Os seguintes caracteres são reconhecidos no format parameter string

format character | Descrição | Exemplo de valores retornados
a | Lowercase Ante meridiem and Post meridiem | am or pm
A | Uppercase Ante meridiem and Post meridiem | AM ou PM
B | Swatch Internet time | 000 até 999
d | Dia do mês, 2 digitos com leading zeros | 01 to 31
D | Uma representação textual de um dia, três letras | Mon through Sun
F | Uma representação textual de um mês, tal como janeiro ou Março | Janeiro a Dezembro
g | 12-hour formato de hora sem leading zeros | 1 a 12
G | 24-hour formato de hora sem leading zeros | 0 a 23
h | 12-hour formato de hora com leading zeros | 01 a 12
H | 24-hour formato de hora com leading zeros | 00 a 23
i | Minutos com leading zeros | 00 para 59
I (i maiúsculo) | Se a data está ou não em horário de verão | 1 Horário de Verão, 0 sem Horário de Verão.
j | Dia do mês sem leading zeros | 1 to 31
l ('L' minúsculo) | Uma representação completa textual de um dia da semana | Domingo a Sábado
L | Se é ano bissexto | 1 ano bissexto, 0 ano não bissexto.
m | Representação numérica de um mês, com leading zeros | 01 a 12
M | Uma representação textual curta de um mês, três letras | Jan a Dec
n | Representação numérica de um mês, sem leading zeros | 1 a 12
O | Diferença ao horário de Greenwich (GMT) em horas | Exemplo: +0200
r | RFC 2822 formatted date | Exemplo: Thu, 21 Dec 2000 16:01:07 +0200
s | Segundos, com leading zeros | 00 a 59
S | Sufixo ordinal inglês para o dia do mês, 2 caracteres | st, nd, rd ou th. Funciona bem com j
t | Número de dias do dado mês | 28 a 31
T | Timezone setting of this machine | Examples: EST, MDT ...
U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time()
w | Representação numérica do dia da semana | 0 (para Domingo) a 6 (para Sábado)
W | Número da semana do ano ISO-8601, semanas começadas na segunda-feira (adicionado no PHP 4.1.0) | Exemplo: 42 (a 42nd (quadragésima segunda) semana do ano)
Y | Uma representação completa do ano, 4 dígitos | Examples: 1999 ou 2003
y | Representação do ano em dois dígitos | Examples: 99 ou 03
z | O dia do ano (começando de 0) | 0 a 365
Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200 até 43200

Caracteres não reconhecidos no formato de serão impressos como são. O formato Z será sempre retornado 0 quando usar gmdate().

Exemplo 1. date() exemplos

<?php
// Prints something like: Wednesday
echo date("l");

// Prints something like: Wednesday 15th of January 2003 05:51:38 AM
echo date("l dS of F Y h:i:s A");

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
?>

Você pode prevenir um caracter conhecido no formato de string de um existente escapando-o com uma barra invertida antes dele. Se o caracter com a barra invertida já é uma sequência especial, você pode precisar também escapar a barra invertida.

Exemplo 2. Caracteres de escape em date()

<?php
// exibe algo como: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

É possível utilizar date() e mktime() juntos para encontrar datas no futuro ou no passado.

Exemplo 3. date() e mktime() exemplo

<?php
$tomorrow  = mktime (0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime (0, 0, 0, date("m")-1, date("d"),  date("Y"));
$nextyear  = mktime (0, 0, 0, date("m"),  date("d"),  date("Y")+1);
?>

Nota: Esta pode ser mais confiável do que simplesmente adicionar ou subtrair o número de segundos em um dia ou mês para um timestamp devido ao horário de verão.

Alguns exemplos de formatação de date(). Note que você poderia escapar qualquer outro caracter, como algum que atualmente tenha um significado especial produzirá resultados indesejáveis, e outros caracteres poderiam assumir significados em futuras versões do PHP. Quando usar escape, certifique o uso de aspas simples para evitar caracteres como \n próprio para novas linhas.

Exemplo 4. Formatação de date()

<?php
// Assumindo que hoje é: March 10th, 2001, 5:16:18 pm

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
?>

Para formatar datas em outras línguas, você usaria as funções setlocale() e strftime() functions.

Veja também getlastmod(), gmdate(),
mktime(), strftime()
e time().

Anterior | Principal | Próxima
checkdate | Acima | getdate


getdate

(PHP 3, PHP 4 , PHP 5)

getdate -- Consegue informações data/hora

Description

array getdate ( [int timestamp])

Retorna um array associativo contendo a informação da data do timestamp, ou a hora corrente local se nenhum timestamp é dado,como a seguintes elementos do array:

Tabela 1. Elementos chave de retorno do array associativo

Chave | Descrição | Exemplo dos valores retornados
"seconds" | Representação numérica dos segundos | 0 a 59
"minutes" | Representação numérica dos minutos | 0 a 59
"hours" | Representação numérica das horas | 0 a 23
"mday" | Representação numérica do dia do mês | 1 a 31
"wday" | Representação numérica do dia da semana | 0 (para Sunday) a 6 (para Saturday)
"mon" | Representação numérica de um mês | 1 a 12
"year" | Representação numérica completa do ano, 4 digitos | Exemples: 1999 ou 2003
"yday" | Numeric representation of the day of the year | 0 a 366
"weekday" | Representação textual completa do dia da semana | Sunday a Saturday
"month" | Representação textual completa de um mês, tal como January ou March | January a December
0 | Segundos desde a época UNIX, similar aos valores retornados por by time() e usados por date(). | System Dependent, tipicamente de -2147483648 a 2147483647.

Exemplo 1. getdate() exemplo

<?php
$today = getdate();
print_r($today);
?>

A saída será similar a:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

Veja também date(),
time(), e
setlocale().

Anterior | Principal | Próxima
date | Acima | gettimeofday


gettimeofday

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

gettimeofday -- Obtém a hora local

Descrição

array gettimeofday ( void )

Esta é uma interface para gettimeofday(2). Esta retorna um array contendo o dado retornado da comunicação com o sistema.

  • "sec" - segundos

  • "usec" - microsegundos

  • "minuteswest" - minutos a oeste de Greenwich

  • "dsttime" - tipo de correção dst

Exemplo 1. Exemplo de gettimeofday()

<?php
      print_r(gettimeofday());
      ?>

A saída será similar a:

Array
      (
          [sec] => 1073504408
          [usec] => 238215
          [minuteswest] => 0
          [dsttime] => 1
      )

Anterior | Principal | Próxima
getdate | Acima | gmdate


gmdate

(PHP 3, PHP 4 , PHP 5)

gmdate -- Formata uma data/hora GMT/CUT

Descrição

string gmdate ( string format [, int timestamp])

Idêntico a função date() exceto que o tempo está em Greenwich Mean Time (GMT). Por exemplo, quando execulta ma Finlândia (GMT +0200), a primeira linha abaixo imprime "Jan 01 1998 00:00:00", enquando a segunda imprime "Dec 31 1997 22:00:00".

Exemplo 1. gmdate() exemplo

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Nota: Nas séries de sistemas operacionais Microsoft Windows pois bibliotecas de sistema implementando esta função estão quebradas, então gmdate() não suporta valores negativos para o timestamp. Para mais detalhes veja bugs reportados: #22620, #22457, and #14391.

Este problema não ocorre em SO Unix/Linux, onde as bibliotecas de sistema comportam se como esperado.

PHP não pode consertar bibliotecas de sistema quebradas. Contate fornecedor de SO para consertar este e problemas similares.

Veja também date(), mktime(), gmmktime() e strftime().

Anterior | Principal | Próxima
gettimeofday | Acima | gmmktime


gmmktime

(PHP 3, PHP 4 , PHP 5)

gmmktime -- Obtém um timestamp Unix para uma data GMT

Descrição

int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])

Idêntico ao mktime() exceto que os parâmetros passados representam uma data GMT.

Como em mktime(), os argumentos podem ser omitidos da direita para esquerda, com qualquer argumento omitido sendo definido para o valor GMT correspondente.

Anterior | Principal | Próxima
gmdate | Acima | gmstrftime


gmstrftime

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

gmstrftime -- Formata uma hora/data GMT/CUT de acordo com as configurações locais

Descrição

string gmstrftime ( string format [, int timestamp])

Mesmo comportamento que strftime() exceto que o tempo retornado é Greenwich Mean Time (GMT). Por exemplo, quando roda no Padrão de tempo Oriental (GMT -0500), a primeira linha abaixo imprime "Dec 31 1998 20:00:00", enquanto a segunda linha imprime "Jan 01 1999 01:00:00".

Exemplo 1. gmstrftime() exemplo

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

Veja também strftime().

Anterior | Principal | Próxima
gmmktime | Acima | localtime


localtime

(PHP 4 , PHP 5)

localtime -- Obtém a hora local

Descrição

array localtime ( [int timestamp [, bool is_associative]])

A função localtime() retorna uma matriz idêntica àquela da estrutura retornada pela chamada de uma função em C. O primeiro argumento para localtime() é o timestamp, se este não é dado, a hora atual retornada de time() é usada. O segundo argumento para localtime() é o is_associative, se este é definido como 0 ou não fornecido então a matriz é retornada como uma matriz normal, matriz com indices numéricos. Se o argumento é definido como 1 então localtime() é um array associativo contendo todos os diferentes elementos da estrutura retornados pela chamada da função C para o localtime. Os nomes das diferentes chaves do array associativo são as seguintes:

  • "tm_sec" - Segundos

  • "tm_min" - Minutos

  • "tm_hour" - Hora

  • "tm_mday" - Dia do mês

  • "tm_mon" - Mês do ano, começa com 0 para Janeiro

  • "tm_year" - Anos desde 1900

  • "tm_wday" - Dia da semana

  • "tm_yday" - Dia do ano

  • "tm_isdst" - Se está em horário de verão

Anterior | Principal | Próxima
gmstrftime | Acima | microtime


microtime

(PHP 3, PHP 4 , PHP 5)

microtime -- Retorna um timestamp Unix com microsegundos

Descrição

mixed microtime ( [bool get_as_float])

A microtime() retorna o timestamp atual com microsegundos. Esta função está apenas disponível em sistemas operacionais que suportam o chamda do sistema gettimeofday().

Quando chamada sem o argumento opcional, esta função retorna a string "msec sec" onde sec é o a hora atual medida em segundos desde a era UNIX (0:00:00 January 1, 1970 GMT), e msec é a parte em microsegundos. Ambas porções de string são retornadas em segundos.

Quando get_as_float é dado, e avalia para TRUE, microtime() retornará um tipo float.

Nota: O parâmetro get_as_float foi adicionado no PHP 5.0.0.

Exemplo 1. microtime() exemplo

<?php
function getmicrotime()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = getmicrotime();

for ($i=0; $i < 1000; $i++){
    //do nothing, 1000 times
    }

$time_end = getmicrotime();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";

// with PHP 5 you can do the same this way:

      $time_start = microtime(1);

      for ($i=0; $i < 1000; $i++){
           // do nothing, 1000 times
      }

      $time_end = microtime(1);
      $time = $time_end - $time_start;

      echo "Did nothing in $time seconds\n";
?>

Veja também time().

Anterior | Principal | Próxima
localtime | Acima | mktime


mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- Obtém um timestamp Unix para uma data

Descrição

int mktime ( [int hora [, int minuto [, int second [, int mes [, int dia [, int ano [, int is_dst]]]]]]])

Atenção: Note a estranha ordem dos argumentos, que diferem da ordem dos argumentos em uma chamada regular da UNIX mktime() e que não combina bem omitir os parâmetros da direita para a esquerda (veja abaixo). É um erro comum misturar estes valores acima em um script.

Retorna o timestamp Unix correspondente para os argumentos dados. Este timestamp é um longo inteiro contendo o número de segundos entre a Era Unix (January 1 1970) e o tempo especificado.

Argumentos podem ser omitidos da direita para esquerda; quaisquer argumentos assim omitidos serão definidos para o valor atual de acordo com a data e a hora local.

is_dst pode ser definido para 1 se está durante o horário de verão, 0 se não estiver, ou -1 (o padrão) se não se sabe se está em horário de verão ou não. Se é desconhecido, o PHP tenta calcular. Isto pode causar resultados inesperados (mas não incorretos).

Nota: is_dst adicionado no PHP 3.0.10.

mktime() é útil durante a aritmética e validação de data, enquanto ela calculará automaticamente o valor correto para a entrada out-of-range. Por exemplo, cada uma das seguintes linhas produzirá a string "Jan-01-1998".

Exemplo 1. mktime() exemplo

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
Ano pode ser com 2 ou 4 dígitos, com valores entre 0-69 mapeando para 2000-2069 e 70-99 para 1970-1999 (em sistemas onde time_t é um inteiro marcado de 32bit, como a maioria de hoje, uma linha válida Ano é qualquer coisa entre 1901 e 2038).

Windows: Timestamp Negativos não são suportados dentro de uma versão conhecida de Windows. Portanto a faixa de anos válidos inclui apenas 1970 a 2038.

O último dia de um mês dado pode ser expressado como o dia "0" do mês seguinte, não o dia -1. Os dois exemplos seguintes produzirão a string "The last day in Feb 2000 is: 29".

Exemplo 2. Último dia do próximo mês

<?php
$lastday = mktime (0,0,0,3,0,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);

$lastday = mktime (0,0,0,4,-31,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);
?>

Data com ano, mês e dia igual a zero é considerado ilegal (de outra forma ele é considerado como 30.11.1999, que poderia ser um comportamento estranho).

Veja também date() e time().

Anterior | Principal | Próxima
microtime | Acima | strftime


strftime

(PHP 3, PHP 4 , PHP 5)

strftime -- Formata uma hora/data de acordo com as configurações locais

Descrição

string strftime ( string format [, int timestamp])

Retorna uma string formatada de acordo com o formato dado em timestamp ou o horário corrente se nenhum timestamp é dado. Nomes de mês e dia da semana e outras strings dependentes de linguagens respeitam o a localidade definida com setlocale().

As seguintes conversões especificadoras são conhecidas no formato de string:

  • %a - dia da semana abreviado de acordo com a localidade

  • %A - nome da semana completo de acordo com a localidade

  • %b - nome do mês abreviado de acordo com a localidade

  • %B - nome do mês completo de acordo com a localidade

  • %c - representação da data e hora preferida pela a localidade

  • %C - número do século (o ano dividido por 100 e truncado para um inteiro, de 00 até 99)

  • %d - dia do mês como um número decimal (de 01 até 31)

  • %D - mesmo que %m/%d/%y

  • %e - dia do mês como um número decimal, um simples dígito é precedido por espaço (de ' 1' até '31')

  • %g - como %G, mas sem o século.

  • %G - o 4-dígito do ano correspodendo as ISO week number (see %V). Este tem o mesmo formato e valor que %Y, exceto que se o ISO week number pertence ao prévio ou próximo ano, aquele ano é usado ao invés deste.

  • %h - mesmo que %b

  • %H - hora como um número decimal usando um relógio de 24-horas (de 00 até 23)

  • %I - hora como um número decimal usando um relógio de 12-hoas (de 01 até 12)

  • %j - dia do ano como número decimal (de 001 até 366)

  • %m - mês como número decimal (de 01 até 12)

  • %M - minuto como número decimal

  • %n - caracter novalinha

  • %p - um dos dois `am' ou `pm' de acordo com o valor da hora dada, ou as strings correspondentes para a localidade

  • %r - hora em a.m. e p.m. notação

  • %R - hora em notação de 24 horas

  • %S - segundo como um número decimal

  • %t - caracter tab

  • %T - hora corrente, igual a %H:%M:%S

  • %u - dia da semana como número decimal [1,7], com 1 representando Segunda-feira

    Atenção

    Sun Solaris parece iniciar o Domingo como 1 embora ISO 9889:1999 (o padrão C corrente) claramente especificados que ele poderia ser segunda-feira.

  • %U - dia da semana do ano corrente como número decimal, começando com o primeiro domingo como o primeiro dia da primeira semana

  • %V - O número da semana corrente ISO 8601:1988 do ano corrente como um número decimal, de 01 até 53, onde semana 1 é a primeira semana que tem pelo menos 4 dias no ano corrente, e com segunda-feira como o primeiro dia da semana. (Use %G ou %g para o componente anual que corresponde ao dia da semana para o para o timestamp especificado.)

  • %W - dia da semana do ano corrente como número decimal, começando com o a segunda-feira como o primeiro dia da primera semana

  • %w - dia da semana como número decimal, domingo sendo 0

  • %x - representação preferida para a data para a localidade corrente sem a hora

  • %X - representação preferida para a hora para a localidade corrente sem a data

  • %y - ano como número decimal sem o século (de 00 até 99)

  • %Y - ano como número decimal incluindo o século

  • %Z - time zone ou nome or abreviação

  • %% - a literal `%' character

Nota: Note que todas as conversões especificadas podem ser suportadas pela sua biblioteca C, em alguns casos elas não serão suportadas pelo PHP strftime(). Além disso, nem todas as plataformas suportam timestamps negativos, então sua faixa de datas não pode ser limitada mais cedo do que a época Unix. Isto significa e.g. %e, %T, %R e %D (e outras mais) e datas anteriores a Jan 1, 1970 não funcionarão em Windows, algumas distribuições Linux, e alguns outros sistemas operacionais. Para sistemas Windows um resumo completo dos especificadores de conversão suportados podem ser encontrados neste website MSDN .

Exemplo 1. strftime() exemplos locais

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>
Este exemplo trabalha se você tiver as respectivas localidades instaladas em seu sistema.

Nota: %G e %V, que são baseadas nos números de semana no ISO 8601:1988 pode ser dado resultados inesperados (embora corretos) se o sistema numérico não é perfeitamente entendido. Veja %V e o exemplo abaixo.

Exemplo 2. Exemplo de número de semana ISO 8601:1988

<?php
/*     December 2002 / January 2003
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     December 2004 / January 2005
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Veja também setlocale(), mktime(), e a especificação do Open Group specification de strftime().

Anterior | Principal | Próxima
mktime | Acima | strtotime


strtotime

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

strtotime -- Analisa qualquer descrição em texto em inglês de data hora em timestamp Unix

Descrição

int strtotime ( string time [, int now])

A função espera que seja dado uma string contendo um formato de data em inglês e tentará analisar esse formato dentro de um timestamp Unix relativo ao timestamp dado em now, ou a hora atual se nada é fornecido. Se fracassa, -1 é retornado.

Porque strtotime() comporta-se de acordo com a sintaxe de data GNU, procure na página do manual GNU Formatos de entrada de datas. Lá está descrito a sintaxe válida para o parâmetro time.

Exemplo 1. strtotime() exemplos

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Exemplo 2. Checando por falha

<?php
$str = 'Not Good';
if (($timestamp = strtotime($str)) === -1) {
    echo "The string ($str) is bogus";
} else {
    echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
}
}
?>

Nota: O intervalo válido de um timestamp é tipicamente de Fri, 13 Dec 1901 20:45:54 GMT até Tue, 19 Jan 2038 03:14:07 GMT. (Estas são datas que correspondem aos valores máximos e mínimos para um inteiro assinado de 32-bit.) Adicionalmente, nem todas as plataformas suportam timestamps negativos, então a faixa de sua data pode ser limitada antes de chegar na Era Unix. Isto significa que ex. datas antes de Jan 1, 1970 não trabalharão no Windows, nem em algumas distribuições do Linux, e num grupo de outros sistemas operacionais.

Anterior | Principal | Próxima
strftime | Acima | time


time

(PHP 3, PHP 4 , PHP 5)

time -- Retorna o timestamp Unix atual

Descrição

int time ( void )

Retorna a hora atual medida no número de segundos desde a Era Unix (January 1 1970 00:00:00 GMT).

Veja também date() e microtime().

Anterior | Principal | Próxima
strtotime | Acima | dBase


dBase

Manual do PHP
Anterior Próxima

XVIII. dBase

Introdução

Estas funções permitem acessar registros guardados em banco de dados no formato Dbase(dbf).

Não há suporte para índices ou campos memo. Não há suporte para travas também. Dois processos do servidor web comcorrentes modificando o mesmo banco de dados normalmente irá arruinar o banco de dados.

Arquivos dBase são arquivos simples em seqüencia de registros de tamanhos fixos. Os registros são incluidos no final do arquivo e registros excluidos são mantidos até que você chame dbase_pack().

Nós recomendamos que você não use seus arquivos dbase como seu banco de dados de produção. Escolha ao invés um servidor SQL real, MySQL ou Postgres são escolhas comuns com o php. O suporte ao Dbase esta aqui para permitir a você importar e exportar dados para e apartir do seu banco de dados web, porque o formato é normalmente entendido por planilhas e organizadores do Windows.

Instalação

Para ativar a biblioteca dbase e para usar estas funções, você deve compilar o PHP com a opção --enable-dbase.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
dbase_add_record -- Adiciona um registro a um banco de dados dBase
dbase_close -- Fecha um banco de dados dBase
dbase_create -- Cria um banco de dados dBase
dbase_delete_record -- Exclui um registro de um banco de dados dBase
dbase_get_header_info -- Retorna informações do cabeçalho de um banco de dados
dbase_get_record_with_names -- Obtem um registro apartir de um banco de dados dBase em uma matriz associativa
dbase_get_record -- Obtem um registro apartir de um banco de dados dBase
dbase_numfields -- Retorna quantos campos existem em um banco de dados dBase
dbase_numrecords -- Retorna quantos registros existem em um banco de dados dBase
dbase_open -- Abre um banco de dados dBase
dbase_pack -- Apaga permanentemente os registros do banco de dados dBase
dbase_replace_record -- Substitui um registro em um banco de dados dBase

Anterior | Principal | Próxima
time | Acima | dbase_add_record


dbase_add_record

(PHP 3, PHP 4 , PHP 5)

dbase_add_record -- Adiciona um registro a um banco de dados dBase

Descrição

bool dbase_add_record ( int dbase_identifier, array record)

Adiciona os dados em record no banco de dados. Se os itens no registro indicado não forem igual ao número de campos no banco de dados, a operação irá falhar e será retornado FALSE.

Exemplo 1. Exemplo dbase_add_record()

<?php
// nome do banco de dados
$dbname = "test.dbf";
if (!$db=dbase_open($dbname,2))
    print "<strong>Erro!</strong>";
$reg=array("20030912","Meu nome","23","example@example.com",False);
if(!dbase_add_record($db,$reg))
    print "<strong>Erro!</strong>";
?>

Anterior | Principal | Próxima
dBase | Acima | dbase_close


dbase_close

(PHP 3, PHP 4 , PHP 5)

dbase_close -- Fecha um banco de dados dBase

Descrição

bool dbase_close ( int dbase_identifier)

Fecha o banco de dados indicado por dbase_identifier.

Exemplo 1. Exemplo dbase_close()

<?php
// nome do banco de dados
$dbname = "test.dbf";

// Abre o banco de dados
if (!$db=dbase_open($dbname,2))
    print "<strong>Erro!</strong>";

// fecha o banco de dados
dbase_close($db);
?>

Anterior | Principal | Próxima
dbase_add_record | Acima | dbase_create


dbase_create

(PHP 3, PHP 4 , PHP 5)

dbase_create -- Cria um banco de dados dBase

Descrição

int dbase_create ( string filename, array fields)

dbase_create() cria um banco de dados dBase no arquivo filename, com os campos fields.

O parâmetro fields é uma matriz de matrizes, cada matriz descreve o formato de um campo no banco de dados. Cada campo consiste de um nome, um caractere indicando o tipo do campo, um tamanho e uma precisão.

Os tipos de campos disponíveis são:

L

Boleano. Estes não tem tamanho ou precisão.

M

Memorando. (Note que estes não são suportados pelo.) Estes não tem tamanho ou precisão.

D

Data (guardada com AAAAMMDD). Estes não tem tamanho ou precisão.

N

Número. Estes tem um tamanho e precisão (o número de digitos após o ponto decimal).

C

String.

Se for bem sucedida a criação do banco de dados, um dbase_identifier é retornado, se não é retornado FALSE.

Exemplo 1. Criando um arquivo de banco de dados dBase

<?php

// nome do banco de dados
$dbname = "/tmp/test.dbf";

// definição do banco de dados
$def =
    array(
        array("date",     "D"),
        array("name",     "C",  50),
        array("age",      "N",   3, 0),
        array("email",    "C", 128),
        array("ismember", "L")
    );

// criação
if (!dbase_create($dbname, $def))
    echo "<strong>Error!</strong>";

?>

Anterior | Principal | Próxima
dbase_close | Acima | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4 , PHP 5)

dbase_delete_record -- Exclui um registro de um banco de dados dBase

Descrição

bool dbase_delete_record ( int dbase_identifier, int record)

Marca record para ser excluido do banco de dados. Para remover o registro do banco de dados, você deve usar dbase_pack().

Exemplo 1. Exemplo dbase_delete_record()

<?php
// nome do banco de dados
$dbname = "test.dbf";

// Abre o banco de dados
if (!$db=dbase_open($dbname,2))
    print "<strong>Erro!</strong>";

// marca o registro como excluido
dbase_delete_record($db,1);
?>

Anterior | Principal | Próxima
dbase_create | Acima | dbase_get_header_info


dbase_get_header_info

(PHP 5)

dbase_get_header_info -- Retorna informações do cabeçalho de um banco de dados

Descrição

array dbase_get_header_info ( int dbase_identifier)

Retorna informações da estrutura de campos do banco de dados indicdo por dbase_identifier. Para cada campo no banco de dados há uma entrada na matriz indexada por números. O índice da matriz começa em 0. Cada elemento da matriz contém uma matriz associativa com informações do campo. Se o cabeçalho do arquivo não puder ser lido, é retornado FALSE.

Os elementos da matriz são:

name

O nome do campo

type

O tipo do campo em formato legível(ex. date, boolean, etc)

length

O número de bytes que o campo pode conter

precision

O número de digitos da precisão decimal do campo

format

Um especificador de formato sugerido do campo para a função printf()

offset

O índice do byte do campo apartir do inicio do registro

Exemplo 1. Mostrando informações do cabeçalho de um banco de dados dBase

<?php
// caminho para o banco de dados
$db_path = "/tmp/test.dbf";

// abre o banco de dados
$dbh = dbase_open($db_path)
    or die("Erro! Não foi possível abrir o arquivo do banco de dados '$db_path'.");

// obtem informação dos campos
$column_info = dbase_get_header_info($dbh);

// mostra a informação
print_r($column_info);
?>

Anterior | Principal | Próxima
dbase_delete_record | Acima | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

dbase_get_record_with_names -- Obtem um registro apartir de um banco de dados dBase em uma matriz associativa

Descrição

array dbase_get_record_with_names ( int dbase_identifier, int record)

Retorna os dados do record em uma matriz associativa. A matriz também inclui um membro associativo chamado 'deleted' o qual é definido como 1 se o registro foi marcado para exclusão (veja dbase_delete_record().

Cada campo é convertido para um tipo PHP apropriado, com a exceção de:

  • Datas são deixadas como strings

  • Inteiros que podem causar um overflow(> 32 bits) são retornados como strings

Anterior | Principal | Próxima
dbase_get_header_info | Acima | dbase_get_record


dbase_get_record

(PHP 3, PHP 4 , PHP 5)

dbase_get_record -- Obtem um registro apartir de um banco de dados dBase

Descrição

array dbase_get_record ( int dbase_identifier, int record)

Retorna dados do record em uma matriz. A matriz contém um índice que começa em 0, e inclui um membro associativo chamado 'deleted' o qual é definido como 1 se o registro foi marcado para exclusão (veja dbase_delete_record().

Cada campo é convertido para um tipo PHP apropriado, com a exceção de:

  • Datas são deixadas como strings

  • Inteiros que podem causar um overflow(> 32 bits) são retornados como strings

Anterior | Principal | Próxima
dbase_get_record_with_names | Acima | dbase_numfields


dbase_numfields

(PHP 3, PHP 4 , PHP 5)

dbase_numfields -- Retorna quantos campos existem em um banco de dados dBase

Descrição

int dbase_numfields ( int dbase_identifier)

Retorna o número de campos (colunas) no banco de dados especificado. Números de campo são entre 0 e dbase_numfields($db)-1, enquanto números de registro são entre 1 e dbase_numrecords($db).

Exemplo 1. Usando dbase_numfields()

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i=0; $i < $nf; $i++) {
    echo $rec[$i]."<br />\n";
}

?>

Anterior | Principal | Próxima
dbase_get_record | Acima | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4 , PHP 5)

dbase_numrecords -- Retorna quantos registros existem em um banco de dados dBase

Descrição

int dbase_numrecords ( int dbase_identifier)

Retorna o número de registros (linhas) no banco de dados indicado. Números de registro são entre 1 e dbase_numrecords($db), enquanto números de campo são entre 0 e dbase_numfields($db)-1.

Anterior | Principal | Próxima
dbase_numfields | Acima | dbase_open


dbase_open

(PHP 3, PHP 4 , PHP 5)

dbase_open -- Abre um banco de dados dBase

Descrição

int dbase_open ( string filename, int flags)

Retorna um dbase_identifier para o banco de dados aberto, ou FALSE se o banco de dados não puder ser aberto.

O parâmetro flags corresponde a aqueles para a chamada do sistema open() (Tipicamente 0 para somente leitura, 1 apenas para escrita e dois para escrita e leitura).

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Anterior | Principal | Próxima
dbase_numrecords | Acima | dbase_pack


dbase_pack

(PHP 3, PHP 4 , PHP 5)

dbase_pack -- Apaga permanentemente os registros do banco de dados dBase

Descrição

bool dbase_pack ( int dbase_identifier)

Apaga permanentemente todos os registros marcados para exclusão usando dbase_delete_record().

Anterior | Principal | Próxima
dbase_open | Acima | dbase_replace_record


dbase_replace_record

(PHP 3>= 3.0.11, PHP 4 , PHP 5)

dbase_replace_record -- Substitui um registro em um banco de dados dBase

Descrição

bool dbase_replace_record ( int dbase_identifier, array record, int dbase_record_number)

Substitui os dados de record_number com os dados de record no banco de dados. Se o número de itens fornecido não for igual ao número de campos no banco de dados, a operação irá falhar e será retornado FALSE.

dbase_record_number é um inteiro no intervalo de 1 até o número de registros no banco de dados (como retornado por dbase_numrecords()).

Anterior | Principal | Próxima
dbase_pack | Acima | DBM Functions [deprecated]


DBM Functions [deprecated]

Manual do PHP
Anterior Próxima

XIX. DBM Functions [deprecated]

Introdução

These functions allow you to store records stored in a dbm-style database. This type of database (supported by the Berkeley DB, GDBM, and some system libraries, as well as a built-in flatfile library) stores key/value pairs (as opposed to the full-blown records supported by relational databases).

Nota: However, dbm support is deprecated and you are encouraged to use the Database (dbm-style) abstraction layer functions instead.

Nota: Esta extensão foi movida a partir do PHP 5 para o repositório PECL.

Requisitos

To use this functions you have to compile PHP with support for an underlying database. See the list of supported Databases.

Instalação

In order to use these functions, you must compile PHP with dbm support by using the --with-db option. In addition you must ensure support for an underlying database or you can use some system libraries.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

The function dbmopen() returns an database identifier which is used by the other dbm-functions.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Exemplo 1. DBM example

<?php

$dbm = dbmopen("lastseen", "w");
if (dbmexists($dbm, $userid)) {
    $last_seen = dbmfetch($dbm, $userid);
} else {
    dbminsert($dbm, $userid, time());
}
do_stuff();
dbmreplace($dbm, $userid, time());
dbmclose($dbm);

?>

Índice
dblist -- Describes the DBM-compatible library being used
dbmclose -- Closes a dbm database
dbmdelete -- Deletes the value for a key from a DBM database
dbmexists -- Tells if a value exists for a key in a DBM database
dbmfetch -- Fetches a value for a key from a DBM database
dbmfirstkey -- Retrieves the first key from a DBM database
dbminsert -- Inserts a value for a key in a DBM database
dbmnextkey -- Retrieves the next key from a DBM database
dbmopen -- Opens a DBM database
dbmreplace -- Replaces the value for a key in a DBM database

Anterior | Principal | Próxima
dbase_replace_record | Acima | dblist


dblist

(PHP 3, PHP 4 )

dblist -- Describes the DBM-compatible library being used

Description

string dblist ( void )

Exemplo 1. Getting the information on the command line

[marcus@zaphod marcus]$ php -r 'echo dblist();'
This is GDBM version 1.8.0, as of May 19, 1999.

Anterior | Principal | Próxima
DBM Functions [deprecated] | Acima | dbmclose


dbmclose

(PHP 3, PHP 4 )

dbmclose -- Closes a dbm database

Description

bool dbmclose ( resource dbm_identifier)

Unlocks and closes the specified database.

Anterior | Principal | Próxima
dblist | Acima | dbmdelete


dbmdelete

(PHP 3, PHP 4 )

dbmdelete -- Deletes the value for a key from a DBM database

Description

bool dbmdelete ( resource dbm_identifier, string key)

Deletes the value for key in the database.

Returns FALSE if the key didn't exist in the database.

Anterior | Principal | Próxima
dbmclose | Acima | dbmexists


dbmexists

(PHP 3, PHP 4 )

dbmexists -- Tells if a value exists for a key in a DBM database

Description

bool dbmexists ( resource dbm_identifier, string key)

Returns TRUE if there is a value associated with the key.

Anterior | Principal | Próxima
dbmdelete | Acima | dbmfetch


dbmfetch

(PHP 3, PHP 4 )

dbmfetch -- Fetches a value for a key from a DBM database

Description

string dbmfetch ( resource dbm_identifier, string key)

Returns the value associated with key.

Anterior | Principal | Próxima
dbmexists | Acima | dbmfirstkey


dbmfirstkey

(PHP 3, PHP 4 )

dbmfirstkey -- Retrieves the first key from a DBM database

Description

string dbmfirstkey ( resource dbm_identifier)

Returns the first key in the database. Note that no particular order is guaranteed since the database may be built using a hash-table, which doesn't guarantee any ordering.

Anterior | Principal | Próxima
dbmfetch | Acima | dbminsert


dbminsert

(PHP 3, PHP 4 )

dbminsert -- Inserts a value for a key in a DBM database

Description

int dbminsert ( resource dbm_identifier, string key, string value)

Adds the value to the database with the specified key.

Returns -1 if the database was opened read-only, 0 if the insert was successful, and 1 if the specified key already exists. (To replace the value, use dbmreplace().)

Anterior | Principal | Próxima
dbmfirstkey | Acima | dbmnextkey


dbmnextkey

(PHP 3, PHP 4 )

dbmnextkey -- Retrieves the next key from a DBM database

Description

string dbmnextkey ( resource dbm_identifier, string key)

Returns the next key after key. By calling dbmfirstkey() followed by successive calls to dbmnextkey() it is possible to visit every key/value pair in the dbm database. For example:

Exemplo 1. Visiting every key/value pair in a DBM database

<?php

$key = dbmfirstkey($dbm_id);
while ($key) {
    echo "$key = " . dbmfetch($dbm_id, $key) . "\n";
    $key = dbmnextkey($dbm_id, $key);
}

?>

Anterior | Principal | Próxima
dbminsert | Acima | dbmopen


dbmopen

(PHP 3, PHP 4 )

dbmopen -- Opens a DBM database

Description

resource dbmopen ( string filename, string flags)

The first argument is the full-path filename of the DBM file to be opened and the second is the file open mode which is one of "r", "n", "c" or "w" for read-only, new (implies read-write, and most likely will truncate an already-existing database of the same name), create (implies read-write, and will not truncate an already-existing database of the same name) and read-write respectively.

Returns an identifier to be passed to the other DBM functions on success, or FALSE on failure.

If NDBM support is used, NDBM will actually create filename.dir and filename.pag files. GDBM only uses one file, as does the internal flat-file support, and Berkeley DB creates a filename.db file. Note that PHP does its own file locking in addition to any file locking that may be done by the DBM library itself. PHP does not delete the .lck files it creates. It uses these files simply as fixed inodes on which to do the file locking. For more information on DBM files, see your Unix man pages, or obtain GNU's GDBM.

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Anterior | Principal | Próxima
dbmnextkey | Acima | dbmreplace


dbmreplace

(PHP 3, PHP 4 )

dbmreplace -- Replaces the value for a key in a DBM database

Description

int dbmreplace ( resource dbm_identifier, string key, string value)

Replaces the value for the specified key in the database.

This will also add the key to the database if it didn't already exist.

Anterior | Principal | Próxima
dbmopen | Acima | funções dbx


funções dbx

Manual do PHP
Anterior Próxima

XX. funções dbx

Introdução

O módulo dbx é uma camada de banco de dados abstrata (db 'X', onde 'X' é o banco de dados suportado). As funções dbx permitem à você acessar todos os banco de dados suportados usando uma única convenção de chamada. As próprias funções-dbx não atuam diretamente com os bancos de dados, mas sim nos módulos que são usados para suportar estes banco de dados.

Requisitos

Para poder usar o banco de dados com o módulo-dbx, o módulo precisa estar linkado ou carregado no PHP, e o módulo do banco de dados precisa ser suportado pelo módulo-dbx. Atualmente, os seguintes banco de dados são suportados, mas haverão mais:

  • FrontBase (disponível à partir do PHP 4.1.0).

  • Microsoft SQL Server

  • MySQL

  • ODBC

  • PostgreSQL

  • Sybase-CT (disponível à partir do PHP 4.2.0).

  • Oracle (oci8) (disponível à partir do PHP 4.3.0).

  • SQLite (somente via cvs).

A documentação para adicionar suporte ao banco de dados no dbx pode ser encontrada em http://www.guidance.nl/php/dbx/doc/.

Instalação

Para ter estas funções disponíveis, você precisa compilar o PHP com suporte à dbx usando a opção --enable-dbx e todas as opções para o banco de dados que será usado, ex: para o MySQL você deve especificar --with-mysql=[DIR]. Para que outros banco de dados tenham suporte ao módulo-dbx consulte o manual do seu banco de dados.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de Configuração do DBX

Nome | Padrão | Changeable
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM
Para mais detalhes e definições das constantes PHP_INI_* veja ini_set().

Nota: Esta opção-ini está disponível à partir do PHP 4.3.0.

Breve descrição das diretivas de configuração.

dbx.colnames_case string

Os nomes das colunas podem ser retornados "inalterados" ou convertidos para "caixa alta" ou "caixa baixa". Esta diretiva pode ser sobreescrita alterando a "flag" de dbx_query().

Tipos Resource

Há dois tipos de recursos usados no módulo dbx. O primeiro é um link-objeto para a conexão com o banco de dados, e o segundo é o resultado-objeto que guarda o resultado da consulta.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

DBX_MYSQL (inteiro)

DBX_ODBC (inteiro)

DBX_PGSQL (inteiro)

DBX_MSSQL (inteiro)

DBX_FBSQL (inteiro)

DBX_OCI8 (inteiro) (disponível à partir do PHP 4.3.0)

DBX_SYBASECT (inteiro)

DBX_SQLITE (inteiro) (somente via cvs)

DBX_PERSISTENT (inteiro)

DBX_RESULT_INFO (inteiro)

DBX_RESULT_INDEX (inteiro)

DBX_RESULT_ASSOC (inteiro)

DBX_RESULT_UNBUFFERED (inteiro) (somente via CVS)

DBX_COLNAMES_UNCHANGED (inteiro) (disponível à partir do PHP 4.3.0)

DBX_COLNAMES_UPPERCASE (inteiro) (disponível à partir do PHP 4.3.0)

DBX_COLNAMES_LOWERCASE (inteiro) (disponível à partir do PHP 4.3.0)

DBX_CMP_NATIVE (inteiro)

DBX_CMP_TEXT (inteiro)

DBX_CMP_NUMBER (inteiro)

DBX_CMP_ASC (inteiro)

DBX_CMP_DESC (inteiro)

Índice
dbx_close -- Encera uma conexão/banco de dados
dbx_compare -- Compara duas linhas para finalidades de ordenação
dbx_connect -- Inicia uma conexão/banco de dados
dbx_error -- Mostra a mensagem de erro da última função chamada no módulo (não apenas na conexão).
dbx_escape_string -- Transforma uma string para que ela possa ser seguramente usada em comandos-sql.
dbx_fetch_row -- Lê as linhas do resultado de uma requisição que tem a flag DBX_RESULT_UNBUFFERED ligada
dbx_query -- Envia uma requisição e armazena todos os resultados (se houver)
dbx_sort -- Ordena um resultado de uma dbx_query usando uma função pré-definida

Anterior | Principal | Próxima
dbmreplace | Acima | dbx_close


dbx_close

(PHP 4 >= 4.0.6, PHP 5)

dbx_close -- Encera uma conexão/banco de dados

Descrição

bool dbx_close ( objeto link_identifier)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. dbx_close() exemplo

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "nome de usuário", "senha")
    or die ("Não foi possível conectar");

print("Conexão realizada com sucesso");
dbx_close($link);
?>

Nota: Sempre se referia à documentação do módulo-específico quando necessário.

Veja também dbx_connect().

Anterior | Principal | Próxima
funções dbx | Acima | dbx_compare


dbx_compare

(PHP 4 >= 4.1.0, PHP 5)

dbx_compare -- Compara duas linhas para finalidades de ordenação

Descrição

int dbx_compare ( array linha_a, array linha_b, string coluna_chave [, int flags])

A função dbx_compare() retorna 0 se linha_a[$coluna_chave] é igual à linha_b[$coluna_chave], e 1 ou -1 se o anterior for maior ou menor do que o último, respectivamente, ou vice-versa se o parâmetro flag está configurado para usar a constante DBX_CMP_DESC. A função dbx_compare() é uma mão na roda para a função dbx_sort() para facilitar o uso e manuseamente de uma função pré-definida (customizada).

O parâmetro flags pode ser configurado para comparações específicas:

  • DBX_CMP_ASC - ordem crescente

  • DBX_CMP_DESC - ordem decrescente

e os tipos de comparações mais adequadas:

  • DBX_CMP_NATIVE - sem conversão de tipo

  • DBX_CMP_TEXT - compara itens como sendo strings

  • DBX_CMP_NUMBER - compara os itens numéricamente

Uma das comparações e um dos tipos de constante podem ser combinados com o operador bitwise OR (|). O valor padrão para o parâmetro flags são as constantes DBX_CMP_ASC | DBX_CMP_NATIVE.

Exemplo 1. dbx_compare() exemplo

<?php
function reordenar_usuarios ($a, $b) {
    $rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
    if ( !$rv ) {
        $rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect (DBX_ODBC, "", "bd", "nome de usuário", "senha")
    or die ("Não foi possível conectar");

$resultado = dbx_query ($link, "SELECT id, parentid, descricao FROM tabela ORDER BY id");
    // dados em $resultado são agora ordenados pelo id

dbx_sort ($resultado, "reordenar_usuarios");
    // dados em $resultado são agora ordenados por parentid (decrescente), depois por id

dbx_close ($link);
?>

Veja também dbx_sort().

Anterior | Principal | Próxima
dbx_close | Acima | dbx_connect


dbx_connect

(PHP 4 >= 4.0.6, PHP 5)

dbx_connect -- Inicia uma conexão/banco de dados

Descrição

objeto dbx_connect ( mixed módulo, string servidor, string banco de dados, string nome de usuário, string senha [, int persistente])

A função dbx_connect() retorna um objeto quando realizada com sucesso ou FALSE ao falhar. Se uma conexão é realizada mas o banco de dados não foi selecionado, a conexão é fechada e retorna FALSE. O parâmetro persistente pode ser setado na constante DBX_PERSISTENT, caso isto seja feito, uma conexão persistente será criada automaticamente.

O parâmetro módulo pode ser uma "string" ou uma constante, apesar da segunda forma ser a mais adequada. Os possíveis valres são listados abaixo, mas tenha em mente que eles somente irão funcionar se o módulo atual está carregado.

  • DBX_MYSQL ou "mysql"

  • DBX_ODBC ou "odbc"

  • DBX_PGSQL ou "pgsql"

  • DBX_MSSQL ou "mssql"

  • DBX_FBSQL ou "fbsql" (disponível à partir do PHP 4.1.0)

  • DBX_SYBASECT ou "sybase_ct" (disponível à partir do PHP 4.2.0)

  • DBX_OCI8 ou "oci8" (disponível à partir do PHP 4.3.0)

  • DBX_SQLITE ou "sqlite" (somente no cvs)

O parâmetro servidor, banco de dados, nome de usuário e senha são necessários, porém nem sempre usados depedendo das funções de conexão do módulo selecionado.

O objeto retornado contém três propriedades:

banco de dados

É o nome do banco de dados selecionado.

evento

É um evento válido para o banco de dados conectado, e como tal pode ser usado nas funções do módulo-específico (se necessário).

<?php
$link = dbx_connect (DBX_MYSQL, "localhost", "bd", "nome de usuário", "senha");
mysql_close ($link->handle); // dbx_close($link) seria o mais apropiado
?>

módulo

É usado internamente pelo dbx, e é atualmente o número do módulo mencionado acima.

Exemplo 1. dbx_connect() exemplo

<?php
$link = dbx_connect (DBX_ODBC, "", "bd", "nome de usuário", "senha", DBX_PERSISTENT)
    or die ("Não foi possível conectar");

print ("Conexão realizada com sucesso.");
dbx_close ($link);
?>

Nota: Sempre se referia à documentação do módulo-específico quando necessário.

Veja também dbx_close().

Anterior | Principal | Próxima
dbx_compare | Acima | dbx_error


dbx_error

(PHP 4 >= 4.0.6, PHP 5)

dbx_error -- Mostra a mensagem de erro da última função chamada no módulo (não apenas na conexão).

Descrição

string dbx_error ( objeto identificador_do_link)

A função dbx_error() retorna uma string contendo a mensagem de erro da última função chamda no módulo (ex: módulo mysql). Se houver múltiplas conexões no mesmo módulo, apenas o último erro é retornado para o módulo especificado no parâmetro identificador_do_link.

Exemplo 1. dbx_error() exemplo

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "bd", "nome de usuário", "senha")
    or die ("Não foi possível conectar");

$resultado = dbx_query($link, "select id from tabela_inexistente");
if ( $resultado == 0 ) {
    echo dbx_error ($link);
}
dbx_close ($link);
?>

Nota: Sempre refira-se à documentação do módulo-específico quando necessário.

A mensagem de erro para o Microsoft SQL Server é atualmente o resultado da função mssql_get_last_message().

A mensagem de erro para o Oracle (oci8) não foi implementado (ainda).

Anterior | Principal | Próxima
dbx_connect | Acima | dbx_escape_string


dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5)

dbx_escape_string -- Transforma uma string para que ela possa ser seguramente usada em comandos-sql.

Descrição

string dbx_escape_string ( objeto identificador_do_link, string texto)

A função dbx_escape_string() retorna um texto, e o transforma (onde for necessário, ex: em aspas, barras invertidas, etc) em uma string válida para ser usado em comandos-sql. Ele retorna NULL ao falhar.

Exemplo 1. dbx_escape_string() exemplo

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "bd", "nome de usuário", "senha")
    or die ("Não foi possível conectar");

$texto = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$resultado = dbx_query($link, "insert into tabela (txt) values ('".$texto."')");
if ( $resultado == 0 ) {
    echo dbx_error ($link);
}
dbx_close ($link);
?>

Veja também dbx_query().

Anterior | Principal | Próxima
dbx_error | Acima | dbx_fetch_row


dbx_fetch_row

(PHP 5)

dbx_fetch_row -- Lê as linhas do resultado de uma requisição que tem a flag DBX_RESULT_UNBUFFERED ligada

Descrição

objeto dbx_fetch_row ( objeto identificador_do_resultado)

A função dbx_fetch_row() retorna uma linha em caso de sucesso ou 0 ao falhar (ex: quando não há mais linhas disponíveis). Quando a constante DBX_RESULT_UNBUFFERED não está ligada no momento da requisição, a função dbx_fetch_row() retornará erro bem como todas as linhas que já tenham sido lidas nos resultados da propriedade data.

Um dos efeitos colaterais, é que a propriedade rows será incrementada à cada objeto retornado com sucesso na chamada da função dbx_fetch_row().

Exemplo 1. Como tratar o valor retornado

<?php
$resultado = dbx_query ($link, 'SELECT id, parentid, descricao FROM tabela', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ( $linha = dbx_fetch_row($resultado) ) {
    echo "<tr>\n";
    foreach ( $linha as $campo ) {
        echo "<td>$campo</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

O parâmetro identificador_do_resultado é o objeto do resultado que é retornado na chamada da função dbx_query().

O array retornado contém a mesma informação que qualquer linha teria em um resultado da dbx_query da propriedade data, podendo ser acessada pelo seu índice ou nome do campo quando as flags para a dbx_query estiverem configuradas para que isso aconteça.

Veja também dbx_query().

Anterior | Principal | Próxima
dbx_escape_string | Acima | dbx_query


dbx_query

(PHP 4 >= 4.0.6, PHP 5)

dbx_query -- Envia uma requisição e armazena todos os resultados (se houver)

Descrição

objeto dbx_query ( objeto identificador_de_conexão, string comandos_sql [, int flags])

A função dbx_query() retorna um objeto ou o número 1 em caso de sucesso, e 0 se falhar. O resultado em forma de objeto somente é retornado, caso a requisição no parâmetro comandos_sql produzir este resultado (ex: um SELECT query, mesmo se o resultado retornado está vazio).

Exemplo 1. Como tratar os resultados retornados

<?php
$link   = dbx_connect(DBX_ODBC, "", "bd", "nome de usuário", "senha")
    or die("Não foi possível conectar");

$result = dbx_query($link, 'SELECT id, parentid, descricao FROM tabela');

if ( is_object($result) ) {
    // ... faz alguma coisa aqui, veja detalhes nos exemplos abaixo...
    // primeiro, imprima os nomes e tipos dos campos
    // depois, desenhar uma tabela contendo os valores dos campos
}
else {
    exit("Requisição falhou");
}

dbx_close($link);
?>

O parâmetro flags é usado para controlar a quantiodade de informação que é retornada. Estas informações podem ser qualquer combinação de uma das constantes abaixo usando o operador bitwise OR (|). As flags DBX_COLNAMES_* quando usadas, substituem as dbx.colnames_case configuradas no php.ini.

DBX_RESULT_INDEX

Está sempre ligada, isto é, o objeto retornado contém uma propriedade data, que é um array numérico indexado com 2 dimensões. Por exemplo, na expressão data[2][3] 2 é o número da coluna (ou registro) e 3 é o número da coluna (ou campo). A primeira linha e coluna estão no índice 0.

Se a constante DBX_RESULT_ASSOC estiver sendo especificada, o objeto retornado irá conter informações relacionadas à DBX_RESULT_INFO também, mesmo que isto não tenha sido especificado.

DBX_RESULT_INFO

Contém informações sobre colunas, assim como o nome e tipos dos campos.

DBX_RESULT_ASSOC

Esta constante torna possível o acesso aos valores dos campos e nomes das colunas respectivamente, ela é usada como chave para os objetos retornados na propriedade data.

Os resultados associados são atualmente referências aos dados numericamente posicionados, sendo assim, ao modificar data[0][0] causa a modificação de data[0]['nome_para_a_primeira_coluna'] também.

DBX_RESULT_UNBUFFERED (somente no CVS)

Esta flag não irá criar a propriedade data, e a propriedade rows irá iniciar à partir do 0. Use esta flag para grandes datasets, e use a função dbx_fetch_row() para obter os resultados linha à linha.

A função dbx_fetch_row() irá retornar as linhas que fazem parte das flags desta requisição. Incidentalmente, ela irá também atualizar a propriedade rows toda vez que for chamada.

DBX_COLNAMES_UNCHANGED (disponível à partir do PHP 4.3.0)

Os nomes das colunas retornadas não serão alterados.

DBX_COLNAMES_UPPERCASE (disponível à partir do PHP 4.3.0)

Os nomes das colunas retornadas serão todas alteradas para CAIXA ALTA.

DBX_COLNAMES_LOWERCASE (disponível à partir do PHP 4.3.0)

Os nomes das colunas retornadas serão todas alteradas para caixa baixa.

Note que a constante DBX_RESULT_INDEX é sempre usada, contendo o valor atual do parâmetro flags. Isto significa que somennte as seguintes combinaçõs surtem efeito:

  • DBX_RESULT_INDEX

  • DBX_RESULT_INDEX | DBX_RESULT_INFO

  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - este é o padrão, se o parâmetro flags não for especificado.

O objeto retornado contém quatro ou cinco propriedades dependendo do parâmetro flags:

handle

É um evento válido para a conexão com o banco de dados, e como tal pode ser usado nas funções do módulo específico (se necessário).

<?php
$result = dbx_query ($link, "SELECT id FROM tabela");
mysql_field_len ($result->handle, 0);
?>

cols e rows

Estas propriedades conte´m o número das colunas (ou campos) e das linhas (ou registros) respectivamente.

<?php
$result = dbx_query ($link, 'SELECT id FROM tabela');
echo $result->rows; // número de registros
echo $result->cols; // número de campos
?>

info (opcional)

É retornado somente se as constantes DBX_RESULT_INFO ou DBX_RESULT_ASSOC são especificados no parâmetro flags. Esta propriedade é um array de 2 dimensões, que contém duas linhas nomeadas (name e type) para obter informação da coluna.

Exemplo 2. lista cada nome e tipo de campo

<?php
$result = dbx_query ($link, 'SELECT id FROM tabela',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data

Esta propriedade contém os dados do resultado atual, possivelmente associado com os nomes das colunas depdnendo do parâmetro flags. Se a constante DBX_RESULT_ASSOC está ligada, é possível usar $result->data[2]["nome_do_campo"].

Exemplo 3. colocando o conteúdo da propriedade data em uma tabela HTML

<?php
$resultado = dbx_query ($link, 'SELECT id, parentid, descricao FROM tabela');

echo "<table>\n";
foreach ( $resultado->data as $linha ) {
    echo "<tr>\n";
    foreach ( $linha as $campo ) {
        echo "<td>$campo</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Exemplo 4. Como tratar requisições "UNBUFFERED"

$resultado = dbx_query ($link, 'SELECT id, parentid, descricao FROM tabela', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ( $linha = dbx_fetch_row($resultado) ) {
    echo "<tr>\n";
    foreach ( $linha as $campo ) {
        echo "<td>$campo</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

Nota: Sempre refira-se à documentação do módulo-específico quando necessário.

Os nomes das colunas em uma requisição de um banco de dados Oracle são retornados em caixa baixa.

Veja também dbx_escape_string(),
   dbx_fetch_row() e
   dbx_connect().

Anterior | Principal | Próxima
dbx_fetch_row | Acima | dbx_sort


dbx_sort

(PHP 4 >= 4.0.6, PHP 5)

dbx_sort -- Ordena um resultado de uma dbx_query usando uma função pré-definida

Descrição

bool dbx_sort ( objeto resultado, string função_de_comparação_do_usuário)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: É sempre melhor usar a cláusula ORDER BY do SQL ao invés da função dbx_sort(), caso isso seja possível.

Exemplo 1. dbx_sort() exemplo

<?php
function reordenar_usuario ($a, $b) {
    $rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
    if ( !$rv ) {
        $rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect (DBX_ODBC, "", "bd", "nome de usuário", "senha")
    or die ("Não foi possível conectar");

$resultado = dbx_query ($link, "SELECT id, parentid, descricao FROM tabela ORDER BY id");
    // dados em $resultado estão ordenados pelo id

dbx_sort ($resultado, "reordenar_usuario");
    // dados em $resultado agora estão ordenados pelo parentid (ordem decrescente), e depois pelo id

dbx_close ($link);
?>

Veja também dbx_compare().

Anterior | Principal | Próxima
dbx_query | Acima | DB++ Functions


DB++ Functions

Manual do PHP
Anterior Próxima

XXI. DB++ Functions

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Introdução

db++, made by the German company Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra then SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Requisitos

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

Concept asa provides db++ Demo versions and documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).

Instalação

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

db++ error codes

Tabela 1. DB++ Error Codes

PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (integer) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |

Índice
dbplus_add -- Add a tuple to a relation
dbplus_aql -- Perform AQL query
dbplus_chdir -- Get/Set database virtual current directory
dbplus_close -- Close a relation
dbplus_curr -- Get current tuple from relation
dbplus_errcode -- Get error string for given errorcode or last error
dbplus_errno -- Get error code for last operation
dbplus_find -- Set a constraint on a relation
dbplus_first -- Get first tuple from relation
dbplus_flush -- Flush all changes made on a relation
dbplus_freealllocks -- Free all locks held by this client
dbplus_freelock -- Release write lock on tuple
dbplus_freerlocks -- Free all tuple locks on given relation
dbplus_getlock -- Get a write lock on a tuple
dbplus_getunique -- Get an id number unique to a relation
dbplus_info -- ???
dbplus_last -- Get last tuple from relation
dbplus_lockrel -- Request write lock on relation
dbplus_next -- Get next tuple from relation
dbplus_open -- Open relation file
dbplus_prev -- Get previous tuple from relation
dbplus_rchperm -- Change relation permissions
dbplus_rcreate -- Creates a new DB++ relation
dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices
dbplus_rcrtlike -- Creates an empty copy of a relation with default indices
dbplus_resolve -- Resolve host information for relation
dbplus_restorepos -- ???
dbplus_rkeys -- Specify new primary key for a relation
dbplus_ropen -- Open relation file local
dbplus_rquery -- Perform local (raw) AQL query
dbplus_rrename -- Rename a relation
dbplus_rsecindex -- Create a new secondary index for a relation
dbplus_runlink -- Remove relation from filesystem
dbplus_rzap -- Remove all tuples from relation
dbplus_savepos -- ???
dbplus_setindex -- ???
dbplus_setindexbynumber -- ???
dbplus_sql -- Perform SQL query
dbplus_tcl -- Execute TCL code on server side
dbplus_tremove -- Remove tuple and return new current tuple
dbplus_undo -- ???
dbplus_undoprepare -- ???
dbplus_unlockrel -- Give up write lock on relation
dbplus_unselect -- Remove a constraint from relation
dbplus_update -- Update specified tuple in relation
dbplus_xlockrel -- Request exclusive lock on relation
dbplus_xunlockrel -- Free exclusive lock on relation

Anterior | Principal | Próxima
dbx_sort | Acima | dbplus_add


dbplus_add

(4.1.0 - 4.2.3 only)

dbplus_add -- Add a tuple to a relation

Description

int dbplus_add ( resource relation, array tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function will add a tuple to a relation. The tuple data is an array of attribute/value pairs to be inserted into the given relation. After successful execution the tuple array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Anterior | Principal | Próxima
DB++ Functions | Acima | dbplus_aql


dbplus_aql

(4.1.0 - 4.2.3 only)

dbplus_aql -- Perform AQL query

Description

resource dbplus_aql ( string query [, string server [, string dbpath]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_aql() will execute an AQL query on the given server and dbpath.

On success it will return a relation handle. The result data may be fetched from this relation by calling dbplus_next() and dbplus_current(). Other relation access functions will not work on a result relation.

Further information on the AQL A... Query Language is provided in the original db++ manual.

Anterior | Principal | Próxima
dbplus_add | Acima | dbplus_chdir


dbplus_chdir

(4.1.0 - 4.2.3 only)

dbplus_chdir -- Get/Set database virtual current directory

Description

string dbplus_chdir ( [string newdir])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_chdir() will change the virtual current directory where relation files will be looked for by dbplus_open(). dbplus_chdir() will return the absolute path of the current directory. Calling dbplus_chdir() without giving any newdir may be used to query the current working directory.

Anterior | Principal | Próxima
dbplus_aql | Acima | dbplus_close


dbplus_close

(4.1.0 - 4.2.3 only)

dbplus_close -- Close a relation

Description

int dbplus_close ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Calling dbplus_close() will close a relation previously opened by dbplus_open().

Anterior | Principal | Próxima
dbplus_chdir | Acima | dbplus_curr


dbplus_curr

(4.1.0 - 4.2.3 only)

dbplus_curr -- Get current tuple from relation

Description

int dbplus_curr ( resource relation, array tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_curr() will read the data for the current tuple for the given relation and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Anterior | Principal | Próxima
dbplus_close | Acima | dbplus_errcode


dbplus_errcode

(4.1.0 - 4.2.3 only)

dbplus_errcode -- Get error string for given errorcode or last error

Description

string dbplus_errcode ( int errno)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_errcode() returns a cleartext error string for the error code passed as errno of for the result code of the last db++ operation if no parameter is given.

Anterior | Principal | Próxima
dbplus_curr | Acima | dbplus_errno


dbplus_errno

(4.1.0 - 4.2.3 only)

dbplus_errno -- Get error code for last operation

Description

int dbplus_errno ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_errno() will return the error code returned by the last db++ operation.

See also dbplus_errcode().

Anterior | Principal | Próxima
dbplus_errcode | Acima | dbplus_find


dbplus_find

(4.1.0 - 4.2.3 only)

dbplus_find -- Set a constraint on a relation

Description

int dbplus_find ( resource relation, array constraints, mixed tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_find() will place a constraint on the given relation. Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

See also dbplus_unselect().

Anterior | Principal | Próxima
dbplus_errno | Acima | dbplus_first


dbplus_first

(4.1.0 - 4.2.3 only)

dbplus_first -- Get first tuple from relation

Description

int dbplus_first ( resource relation, array tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_curr() will read the data for the first tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_curr(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Anterior | Principal | Próxima
dbplus_find | Acima | dbplus_flush


dbplus_flush

(4.1.0 - 4.2.3 only)

dbplus_flush -- Flush all changes made on a relation

Description

int dbplus_flush ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_flush() will write all changes applied to relation since the last flush to disk.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Anterior | Principal | Próxima
dbplus_first | Acima | dbplus_freealllocks


dbplus_freealllocks

(4.1.0 - 4.2.3 only)

dbplus_freealllocks -- Free all locks held by this client

Description

int dbplus_freealllocks ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_freealllocks() will free all tuple locks held by this client.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freerlocks().

Anterior | Principal | Próxima
dbplus_flush | Acima | dbplus_freelock


dbplus_freelock

(4.1.0 - 4.2.3 only)

dbplus_freelock -- Release write lock on tuple

Description

int dbplus_freelock ( resource relation, string tname)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_freelock() will release a write lock on the given tuple previously obtained by dbplus_getlock().

See also dbplus_getlock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Anterior | Principal | Próxima
dbplus_freealllocks | Acima | dbplus_freerlocks


dbplus_freerlocks

(4.1.0 - 4.2.3 only)

dbplus_freerlocks -- Free all tuple locks on given relation

Description

int dbplus_freerlocks ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_freerlocks() will free all tuple locks held on the given relation.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freealllocks().

Anterior | Principal | Próxima
dbplus_freelock | Acima | dbplus_getlock


dbplus_getlock

(4.1.0 - 4.2.3 only)

dbplus_getlock -- Get a write lock on a tuple

Description

int dbplus_getlock ( resource relation, string tname)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_getlock() will request a write lock on the specified tuple. It will return zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED, on failure.

See also dbplus_freelock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Anterior | Principal | Próxima
dbplus_freerlocks | Acima | dbplus_getunique


dbplus_getunique

(4.1.0 - 4.2.3 only)

dbplus_getunique -- Get an id number unique to a relation

Description

int dbplus_getunique ( resource relation, int uniqueid)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_getunique() will obtain a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Anterior | Principal | Próxima
dbplus_getlock | Acima | dbplus_info


dbplus_info

(4.1.0 - 4.2.3 only)

dbplus_info -- ???

Description

int dbplus_info ( resource relation, string key, array &result)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_getunique | Acima | dbplus_last


dbplus_last

(4.1.0 - 4.2.3 only)

dbplus_last -- Get last tuple from relation

Description

int dbplus_last ( resource relation, array tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_curr() will read the data for the last tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_next().

Anterior | Principal | Próxima
dbplus_info | Acima | dbplus_lockrel


dbplus_lockrel

(no version information, might be only in CVS)

dbplus_lockrel -- Request write lock on relation

Description

int dbplus_lockrel ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_lockrel() will request a write lock on the given relation. Other clients may still query the relation, but can't alter it while it is locked.

Anterior | Principal | Próxima
dbplus_last | Acima | dbplus_next


dbplus_next

(4.1.0 - 4.2.3 only)

dbplus_next -- Get next tuple from relation

Description

int dbplus_next ( resource relation, array &tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_curr() will read the data for the next tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_last().

Anterior | Principal | Próxima
dbplus_lockrel | Acima | dbplus_open


dbplus_open

(4.1.0 - 4.2.3 only)

dbplus_open -- Open relation file

Description

resource dbplus_open ( string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The relation file name will be opened. name can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

Anterior | Principal | Próxima
dbplus_next | Acima | dbplus_prev


dbplus_prev

(4.1.0 - 4.2.3 only)

dbplus_prev -- Get previous tuple from relation

Description

int dbplus_prev ( resource relation, array tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_curr() will read the data for the previous tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_next(), and
dbplus_last().

Anterior | Principal | Próxima
dbplus_open | Acima | dbplus_rchperm


dbplus_rchperm

(4.1.0 - 4.2.3 only)

dbplus_rchperm -- Change relation permissions

Description

int dbplus_rchperm ( resource relation, int mask, string user, string group)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rchperm() will change access permissions as specified by mask, user and group. The values for these are operating system specific.

Anterior | Principal | Próxima
dbplus_prev | Acima | dbplus_rcreate


dbplus_rcreate

(4.1.0 - 4.2.3 only)

dbplus_rcreate -- Creates a new DB++ relation

Description

resource dbplus_rcreate ( string name, mixed domlist [, bool overwrite])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rcreate() will create a new relation named name. An existing relation by the same name will only be overwritten if the relation is currently not in use and overwrite is set to TRUE.

domlist should contain the domain specification for the new relation within an array of domain description strings. ( dbplus_rcreate() will also accept a string with space delimited domain description strings, but it is recommended to use an array). A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Anterior | Principal | Próxima
dbplus_rchperm | Acima | dbplus_rcrtexact


dbplus_rcrtexact

(4.1.0 - 4.2.3 only)

dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices

Description

resource dbplus_rcrtexact ( string name, resource relation, bool overwrite)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Anterior | Principal | Próxima
dbplus_rcreate | Acima | dbplus_rcrtlike


dbplus_rcrtlike

(4.1.0 - 4.2.3 only)

dbplus_rcrtlike -- Creates an empty copy of a relation with default indices

Description

resource dbplus_rcrtlike ( string name, resource relation, int flag)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rcrtexact() will create an empty copy of the given relation under a new name, but with default indices. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Anterior | Principal | Próxima
dbplus_rcrtexact | Acima | dbplus_resolve


dbplus_resolve

(4.1.0 - 4.2.3 only)

dbplus_resolve -- Resolve host information for relation

Description

int dbplus_resolve ( string relation_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host. The function will return an array containing these values under the keys 'sid', 'host' and 'host_path' or FALSE on error.

See also dbplus_tcl().

Anterior | Principal | Próxima
dbplus_rcrtlike | Acima | dbplus_restorepos


dbplus_restorepos

(4.1.0 - 4.2.3 only)

dbplus_restorepos -- ???

Description

int dbplus_restorepos ( resource relation, array tuple)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_resolve | Acima | dbplus_rkeys


dbplus_rkeys

(4.1.0 - 4.2.3 only)

dbplus_rkeys -- Specify new primary key for a relation

Description

resource dbplus_rkeys ( resource relation, mixed domlist)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist.

domlist may be passed as a single domain name string or as an array of domain names.

Anterior | Principal | Próxima
dbplus_restorepos | Acima | dbplus_ropen


dbplus_ropen

(4.1.0 - 4.2.3 only)

dbplus_ropen -- Open relation file local

Description

resource dbplus_ropen ( string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_current() and dbplus_next() may be applied to the returned relation.

Anterior | Principal | Próxima
dbplus_rkeys | Acima | dbplus_rquery


dbplus_rquery

(4.1.0 - 4.2.3 only)

dbplus_rquery -- Perform local (raw) AQL query

Description

int dbplus_rquery ( string query, string dbpath)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

Anterior | Principal | Próxima
dbplus_ropen | Acima | dbplus_rrename


dbplus_rrename

(4.1.0 - 4.2.3 only)

dbplus_rrename -- Rename a relation

Description

int dbplus_rrename ( resource relation, string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rrename() will change the name of relation to name.

Anterior | Principal | Próxima
dbplus_rquery | Acima | dbplus_rsecindex


dbplus_rsecindex

(4.1.0 - 4.2.3 only)

dbplus_rsecindex -- Create a new secondary index for a relation

Description

resource dbplus_rsecindex ( resource relation, mixed domlist, int type)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

domlist may be passed as a single domain name string or as an array of domain names.

Anterior | Principal | Próxima
dbplus_rrename | Acima | dbplus_runlink


dbplus_runlink

(4.1.0 - 4.2.3 only)

dbplus_runlink -- Remove relation from filesystem

Description

int dbplus_runlink ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_unlink() will close and remove the relation.

Anterior | Principal | Próxima
dbplus_rsecindex | Acima | dbplus_rzap


dbplus_rzap

(4.1.0 - 4.2.3 only)

dbplus_rzap -- Remove all tuples from relation

Description

int dbplus_rzap ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_rzap() will remove all tuples from relation.

Anterior | Principal | Próxima
dbplus_runlink | Acima | dbplus_savepos


dbplus_savepos

(4.1.0 - 4.2.3 only)

dbplus_savepos -- ???

Description

int dbplus_savepos ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_rzap | Acima | dbplus_setindex


dbplus_setindex

(4.1.0 - 4.2.3 only)

dbplus_setindex -- ???

Description

int dbplus_setindex ( resource relation, string idx_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_savepos | Acima | dbplus_setindexbynumber


dbplus_setindexbynumber

(4.1.0 - 4.2.3 only)

dbplus_setindexbynumber -- ???

Description

int dbplus_setindexbynumber ( resource relation, int idx_number)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_setindex | Acima | dbplus_sql


dbplus_sql

(4.1.0 - 4.2.3 only)

dbplus_sql -- Perform SQL query

Description

resource dbplus_sql ( string query, string server, string dbpath)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_setindexbynumber | Acima | dbplus_tcl


dbplus_tcl

(4.1.0 - 4.2.3 only)

dbplus_tcl -- Execute TCL code on server side

Description

int dbplus_tcl ( int sid, string script)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

See also dbplus_resolve().

Anterior | Principal | Próxima
dbplus_sql | Acima | dbplus_tremove


dbplus_tremove

(4.1.0 - 4.2.3 only)

dbplus_tremove -- Remove tuple and return new current tuple

Description

int dbplus_tremove ( resource relation, array tuple [, array current])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current, if given, will contain the data of the new current tuple after calling dbplus_tremove().

Anterior | Principal | Próxima
dbplus_tcl | Acima | dbplus_undo


dbplus_undo

(4.1.0 - 4.2.3 only)

dbplus_undo -- ???

Description

int dbplus_undo ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_tremove | Acima | dbplus_undoprepare


dbplus_undoprepare

(4.1.0 - 4.2.3 only)

dbplus_undoprepare -- ???

Description

int dbplus_undoprepare ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Not implemented yet.

Anterior | Principal | Próxima
dbplus_undo | Acima | dbplus_unlockrel


dbplus_unlockrel

(4.1.0 - 4.2.3 only)

dbplus_unlockrel -- Give up write lock on relation

Description

int dbplus_unlockrel ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_unlockrel() will release a write lock previously obtained by dbplus_lockrel().

Anterior | Principal | Próxima
dbplus_undoprepare | Acima | dbplus_unselect


dbplus_unselect

(4.1.0 - 4.2.3 only)

dbplus_unselect -- Remove a constraint from relation

Description

int dbplus_unselect ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation.

Anterior | Principal | Próxima
dbplus_unlockrel | Acima | dbplus_update


dbplus_update

(4.1.0 - 4.2.3 only)

dbplus_update -- Update specified tuple in relation

Description

int dbplus_update ( resource relation, array old, array new)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_update() replaces the tuple given by old with the data from new if and only if old completely matches a tuple within relation.

Anterior | Principal | Próxima
dbplus_unselect | Acima | dbplus_xlockrel


dbplus_xlockrel

(4.1.0 - 4.2.3 only)

dbplus_xlockrel -- Request exclusive lock on relation

Description

int dbplus_xlockrel ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_xlockrel() will request an exclusive lock on relation preventing even read access from other clients.

See also dbplus_xunlockrel().

Anterior | Principal | Próxima
dbplus_update | Acima | dbplus_xunlockrel


dbplus_xunlockrel

(4.1.0 - 4.2.3 only)

dbplus_xunlockrel -- Free exclusive lock on relation

Description

int dbplus_xunlockrel ( resource relation)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

dbplus_xunlockrel() will release an exclusive lock on relation previously obtained by dbplus_xlockrel().

Anterior | Principal | Próxima
dbplus_xlockrel | Acima | Direct IO Functions


Direct IO Functions

Manual do PHP
Anterior Próxima

XXII. Direct IO Functions

Introdução

PHP supports the direct io functions as described in the Posix Standard (Section 6) for performing I/O functions at a lower level than the C-Language stream I/O functions (fopen(), fread(),..). The use of the DIO functions should be considered only when direct control of a device is needed. In all other cases, the standard filesystem functions are more than adequate.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

To get these functions to work, you have to configure PHP with --enable-dio.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

One resource type is defined by this extension: a file descriptor returned by dio_open().

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
dio_close -- Closes the file descriptor given by fd
dio_fcntl -- Performs a c library fcntl on fd
dio_open -- Opens a new filename with specified permissions of flags and creation permissions of mode
dio_read -- Reads n bytes from fd and returns them, if n is not specified, reads 1k block
dio_seek -- Seeks to pos on fd from whence
dio_stat -- Gets stat information about the file descriptor fd
dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port
dio_truncate -- Truncates file descriptor fd to offset bytes
dio_write -- Writes data to fd with optional truncation at length

Anterior | Principal | Próxima
dbplus_xunlockrel | Acima | dio_close


dio_close

(PHP 4 >= 4.2.0, PHP 5)

dio_close -- Closes the file descriptor given by fd

Description

void dio_close ( resource fd)

The function dio_close() closes the file descriptor fd.

See also dio_open().

Anterior | Principal | Próxima
Direct IO Functions | Acima | dio_fcntl


dio_fcntl

(PHP 4 >= 4.2.0, PHP 5)

dio_fcntl -- Performs a c library fcntl on fd

Description

mixed dio_fcntl ( resource fd, int cmd [, mixed args])

The dio_fcntl() function performs the operation specified by cmd on the file descriptor fd. Some commands require additional arguments args to be supplied.

args is an associative array, when cmd is F_SETLK or F_SETLLW, with the following keys:

  • "start" - offset where lock begins

  • "length" - size of locked area. zero means to end of file

  • "wenth" - Where l_start is relative to: can be SEEK_SET, SEEK_END and SEEK_CUR

  • "type" - type of lock: can be F_RDLCK (read lock), F_WRLCK (write lock) or F_UNLCK (unlock)

cmd can be one of the following operations:

  • F_SETLK - Lock is set or cleared. If the lock is held by someone else dio_fcntl() returns -1.

  • F_SETLKW - like F_SETLK, but in case the lock is held by someone else, dio_fcntl() waits until the lock is released.

  • F_GETLK - dio_fcntl() returns an associative array (as described above) if someone else prevents lock. If there is no obstruction key "type" will set to F_UNLCK.

  • F_DUPFD - finds the lowest numbered available file descriptor greater or equal than args and returns them.

  • F_SETFL - Sets the file descriptors flags to the value specified by args, which can be O_APPEND,O_NONBLOCK or O_ASYNC. To use O_ASYNC you will need to use the PCNTL extension.

Anterior | Principal | Próxima
dio_close | Acima | dio_open


dio_open

(PHP 4 >= 4.2.0, PHP 5)

dio_open -- Opens a new filename with specified permissions of flags and creation permissions of mode

Description

resource dio_open ( string filename, int flags [, int mode])

dio_open() opens a file and returns a new file descriptor for it, or FALSE if any error occurred. If flags is O_CREAT, the optional third parameter mode will set the mode of the file (creation permissions). The flags parameter can be one of the following options:

  • O_RDONLY - opens the file for read access.

  • O_WRONLY - opens the file for write access.

  • O_RDWR - opens the file for both reading and writing.

The flags parameter can also include any combination of the following flags:

  • O_CREAT - creates the file, if it doesn't already exist.

  • O_EXCL - if both, O_CREAT and O_EXCL are set, dio_open() fails, if the file already exists.

  • O_TRUNC - if the file exists, and its opened for write access, the file will be truncated to zero length.

  • O_APPEND - write operations write data at the end of the file.

  • O_NONBLOCK - sets non blocking mode.

See also: dio_close().

Anterior | Principal | Próxima
dio_fcntl | Acima | dio_read


dio_read

(PHP 4 >= 4.2.0, PHP 5)

dio_read -- Reads n bytes from fd and returns them, if n is not specified, reads 1k block

Description

string dio_read ( resource fd [, int n])

The function dio_read() reads and returns n bytes from file with descriptor fd. If n is not specified, dio_read() reads 1K sized block and returns them.

See also: dio_write().

Anterior | Principal | Próxima
dio_open | Acima | dio_seek


dio_seek

(PHP 4 >= 4.2.0, PHP 5)

dio_seek -- Seeks to pos on fd from whence

Description

int dio_seek ( resource fd, int pos, int whence)

The function dio_seek() is used to change the file position of the file with descriptor fd. The parameter whence specifies how the position pos should be interpreted:

  • SEEK_SET - specifies that pos is specified from the beginning of the file.

  • SEEK_CUR - Specifies that pos is a count of characters from the current file position. This count may be positive or negative.

  • SEEK_END - Specifies that pos is a count of characters from the end of the file. A negative count specifies a position within the current extent of the file; a positive count specifies a position past the current end. If you set the position past the current end, and actually write data, you will extend the file with zeros up to that position.

Anterior | Principal | Próxima
dio_read | Acima | dio_stat


dio_stat

(PHP 4 >= 4.2.0, PHP 5)

dio_stat -- Gets stat information about the file descriptor fd

Description

array dio_stat ( resource fd)

Function dio_stat() returns information about the file with file descriptor fd. dio_stat() returns an associative array with the following keys:

  • "device" - device

  • "inode" - inode

  • "mode" - mode

  • "nlink" - number of hard links

  • "uid" - user id

  • "gid" - group id

  • "device_type" - device type (if inode device)

  • "size" - total size in bytes

  • "blocksize" - blocksize

  • "blocks" - number of blocks allocated

  • "atime" - time of last access

  • "mtime" - time of last modification

  • "ctime" - time of last change

On error dio_stat() returns NULL.

Anterior | Principal | Próxima
dio_seek | Acima | dio_tcsetattr


dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5)

dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port

Description

void dio_tcsetattr ( resource fd, array options)

The function dio_tcsetattr() sets the terminal attributes and baud rate of the open resource. The currently available options are

  • 'baud' - baud rate of the port - can be 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 or 50, default value is 9600.

  • 'bits' - data bits - can be 8,7,6 or 5. Default value is 8.

  • 'stop' - stop bits - can be 1 or 2. Default value is 1.

  • 'parity' - can be 0,1 or 2. Default value is 0.

Exemplo 1. Setting the baud rate on a serial port

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd, F_SETFL, O_SYNC);

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  => 1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd, 256);

  if ($data) {
      echo $data;
  }
}

?>

Anterior | Principal | Próxima
dio_stat | Acima | dio_truncate


dio_truncate

(PHP 4 >= 4.2.0, PHP 5)

dio_truncate -- Truncates file descriptor fd to offset bytes

Description

bool dio_truncate ( resource fd, int offset)

Function dio_truncate() causes the file referenced by fd to be truncated to at most offset bytes in size. If the file previously was larger than this size, the extra data is lost. If the file previously was shorter, it is unspecified whether the file is left unchanged or is extended. In the latter case the extended part reads as zero bytes. Retorna TRUE em caso de sucesso ou FALSE em falhas..

Anterior | Principal | Próxima
dio_tcsetattr | Acima | dio_write


dio_write

(PHP 4 >= 4.2.0, PHP 5)

dio_write -- Writes data to fd with optional truncation at length

Description

int dio_write ( resource fd, string data [, int len])

The function dio_write() writes up to len bytes from data to file fd. If len is not specified, dio_write() writes all data to the specified file. dio_write() returns the number of bytes written to fd.

See also dio_read().

Anterior | Principal | Próxima
dio_truncate | Acima | Diretórios


Diretórios

Manual do PHP
Anterior Próxima

XXIII. Diretórios

Introdução

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

DIRECTORY_SEPARATOR (string)

PATH_SEPARATOR (string)

Nota: The PATH_SEPARATOR was introduced with PHP 4.3.0-RC2.

Veja Também

Para funções relacionadas como dirname(),
is_dir(), mkdir() e
rmdir(), veja a seção
Filesystem.

Índice
chdir -- Muda o diretório
chroot -- Muda o diretório raiz (root)
dir -- classe diretório
closedir -- fechar o handle do diretório
getcwd -- obtem o diretório atual
opendir -- Abre um manipulador de diretório
readdir -- Lê os campos do manipulador do diretório
rewinddir -- voltar (rewind) o handle de diretório
scandir -- List files and directories inside the specified path

Anterior | Principal | Próxima
dio_write | Acima | chdir


chdir

(PHP 3, PHP 4 , PHP 5)

chdir -- Muda o diretório

Descrição

bool chdir ( string diretorio)

Muda o diretório atual do PHP para diretorio. Retorna TRUE em caso de sucesso ou FALSE em falhas..

Exemplo 1. chdir() example

<?php

// diretório atual
echo getcwd() . "\n";

chdir('public_html');

// diretório atual
echo getcwd() . "\n";

?>

Este exemplo irá mostrar:

/home/vincent
/home/vincent/public_html

Veja também: getcwd().

Anterior | Principal | Próxima
Diretórios | Acima | chroot


chroot

(PHP 4 >= 4.0.5, PHP 5)

chroot -- Muda o diretório raiz (root)

Descrição

bool chroot ( string diretorio)

Muda o diretório raiz (root) do processo atual para o diretorio. Retorna TRUE em caso de sucesso ou FALSE em falhas..

Esta função somente está disponível se seu sistema suportá-la e se você estiver utilizando o modo CLI, CGI ou SAPI Embutida.

Nota: esta função não é implementada na plataforma Windows

Anterior | Principal | Próxima
chdir | Acima | dir


dir

dir -- classe diretório

Descrição

class dir {

dir ( string directory)

string path

resource handle

string read ( void )

void rewind ( void )

void close ( void )

}

Um mecanismo pseudo-orientado a objeto para ler um diretório. O parâmetro dado directory é aberto. Duas propriedades são disponíveis uma vez que o diretório foi aberto: A propriedade handle pode ser usada com outras funções de diretório como readdir(), rewinddir() e closedir(). A propriedade path é configurada para o caminho que o diretório foi aberto. Três métodos disponibilizados são: read, rewind e close.

Repare nos detalhes de como o valor retornado de dir() é verificado no exemplo abaixo. Nós explicitamente testamos se valor de retorno é idêntico (igual e do mesmo tipo que --- veja operadores de comparação para mais detalhes) a FALSE, desde que, de outra forma, qualquer entrada de diretório que seja avaliada para FALSE fará parar o loop.

Exemplo 1. Exemplo dir()

<?php
$d = dir("/etc");
echo "Manipulador: ".$d->handle."<br>\n";
echo "Caminho: ".$d->path."<br>\n";
while (false !== ($entry = $d->read())) {
    echo $entry."<br>\n";
}
$d->close();
?>

Nota: A ordem em que os diretórios são retornadas pelo método é dependente do sistema.

Nota: Este módulo define a classe interna Directory, significando que você não será capaz de criar uma classe sua com esse nome. Para uma lista completa das classes predefinidas no PHP, veja em Classes Predefinidas.

Anterior | Principal | Próxima
chroot | Acima | closedir


closedir

(PHP 3, PHP 4 , PHP 5)

closedir -- fechar o handle do diretório

Descrição

void closedir ( resource dir_handle)

Fecha o stream do diretório indicado por dir_handle. O stream deve ter sido previamente aberto por opendir().

Anterior | Principal | Próxima
dir | Acima | getcwd


getcwd

(PHP 4 , PHP 5)

getcwd -- obtem o diretório atual

Descrição

string getcwd ( void )

Retorna o diretório atual.

Veja também: chdir().

Anterior | Principal | Próxima
closedir | Acima | opendir


opendir

(PHP 3, PHP 4 , PHP 5)

opendir -- Abre um manipulador de diretório

Descrição

resource opendir ( string path)

Retorna um handle de diretório para ser usado em chamadas subsequentes a closedir(), readdir(), e rewinddir().

Se path não é um diretório válido ou se o diretório não pode ser aberto devi a restrições de permissões ou ainda por erro no sistema de arquivos, opendir() retorna FALSE e gera um erro PHP de nível E_WARNING. Você pode suprimir a exibição da mensagem de erro de opendir() acrecentando um '@' na frente do nome da função.

Exemplo 1. exemplo de opendir()

<?php
$dir = "/tmp/";

// Abre um diretorio conhecido, e faz a leitura de seu conteudo
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            print "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

A partir do PHP 4.3.0 o parâmentro path pode ser qualquer tipo de URL que suporte a listagem de diretórios, mas somente o wrapper file:// era suportado no PHP 4.3. A partir do PHP 5.0 o suporte ao wrapper ftp:// foi acrescentado.

Veja também is_dir(), readdir() e Dir

Anterior | Principal | Próxima
getcwd | Acima | readdir


readdir

(PHP 3, PHP 4 , PHP 5)

readdir -- Lê os campos do manipulador do diretório

Descrição

string readdir ( resource dir_handle)

Retorna o nome de arquivo do próximo arquivo do diretório. Os nomes de arquivos são retornados na ordem informada pelo sistema de arquivos.

Verifique cuidadosamente o estilo de checagem dos valores retornados por readdir() nos exemplos abaixo. Nós explicitamente testamos se o valor retornado é idêntico a (igual e do mesmo tipo que FALSE --- veja Operadores de Comparação para maiores detalhes). De outra forma, qualquer entrada de diretório que seja avaliada para FALSE irá parar o loop (por exemplo, um diretório nomeado "0").

Exemplo 1. Lista todos os arquivos em um diretório

<?php
// Note que !== não existia antes do PHP 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
    echo "Manipulador de diretório: $handle\n";
    echo "Arquivos:\n";

    /* Esta é a forma correta de varrer o diretório */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Esta é a forma INCORRETA de varrer o diretório */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>

Note que readdir() irá retornar o . e .. . Se você não quer estes simplesmente os retire:

Exemplo 2. Listar todos os arquivos no diretório atual e retirar . e ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

Veja também is_dir() e glob().

Anterior | Principal | Próxima
opendir | Acima | rewinddir


rewinddir

(PHP 3, PHP 4 , PHP 5)

rewinddir -- voltar (rewind) o handle de diretório

Descrição

void rewinddir ( resource dir_handle)

Reinicia o stream do diretório indicado por dir_handle para o início do diretório.

Anterior | Principal | Próxima
readdir | Acima | scandir


scandir

(PHP 5)

scandir -- List files and directories inside the specified path

Description

array scandir ( string directory [, int sorting_order [, resource context]])

Returns an array of files and directories from the directory. If directory is not a directory, then boolean FALSE is returned, and an error of level E_WARNING is generated.

By default, the sorted order is alphabetical in ascending order. If the optional sorting_order is used (set to 1), then sort order is alphabetical in descending order.

Exemplo 1. A simple scandir() example

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

Outputs something like:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Exemplo 2. PHP 4 alternatives to scandir()

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

Outputs something like:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

See also opendir(),
readdir(),
glob(),
is_dir(), and
sort().

Anterior | Principal | Próxima
rewinddir | Acima | DOM XML Functions


DOM XML Functions

Manual do PHP
Anterior Próxima

XXIV. DOM XML Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

The DOM XML extension has been overhauled in PHP 4.3.0 to better comply with the DOM standard. The extension still contains many old functions, but they should no longer be used. In particular, functions that are not object-oriented should be avoided.

The extension allows you to operate on an XML document with the DOM API. It also provides a function domxml_xmltree() to turn the complete XML document into a tree of PHP objects. Currently, this tree should be considered read-only - you can modify it, but this would not make any sense since DomDocument_dump_mem() cannot be applied to it. Therefore, if you want to read an XML file and write a modified version, use DomDocument_create_element(), DomDocument_create_text_node(), set_attribute(), etc. and finally the DomDocument_dump_mem() function.

Requisitos

This extension makes use of the GNOME XML library. Download and install this library. You will need at least libxml-2.4.14. To use DOM XSLT features you can use the libxslt library and EXSLT enhancements from http://www.exslt.org/. Download and install these libraries if you plan to use (enhanced) XSLT features. You will need at least libxslt-1.0.18.

Instalação

This extension is only available if PHP was configured with --with-dom[=DIR]. Add --with-dom-xslt[=DIR] to include DOM XSLT support. DIR is the libxslt install directory. Add --with-dom-exslt[=DIR] to include DOM EXSLT support, where DIR is the libexslt install directory.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy one additional file from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your Windows machine (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP <= 4.2.0 copy libxml2.dll, for PHP >= 4.3.0 copy iconv.dll from the DLL folder to your SYSTEM32 folder.

Deprecated functions

There are quite a few functions that do not fit into the DOM standard and should no longer be used. These functions are listed in the following table. The function DomNode_append_child() has changed its behaviour. It now adds a child and not a sibling. If this breaks your application, use the non-DOM function DomNode_append_sibling().

Tabela 1. Deprecated functions and their replacements

Old function | New function
xmldoc | domxml_open_mem()
xmldocfile | domxml_open_file()
domxml_new_xmldoc | domxml_new_doc()
domxml_dump_mem | DomDocument_dump_mem()
domxml_dump_mem_file | DomDocument_dump_file()
DomDocument_dump_mem_file | DomDocument_dump_file()
DomDocument_add_root | DomDocument_create_element() followed by DomNode_append_child()
DomDocument_dtd | DomDocument_doctype()
DomDocument_root | DomDocument_document_element()
DomDocument_children | DomNode_child_nodes()
DomDocument_imported_node | No replacement.
DomNode_add_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_children | DomNode_child_nodes()
DomNode_parent | DomNode_parent_node()
DomNode_new_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_set_content | Create a new node with e.g. DomDocument_create_text_node() and add it with DomNode_append_child().
DomNode_get_content | Content is just a text node and can be accessed with DomNode_child_nodes().
DomNode_set_content | Content is just a text node and can be added with DomNode_append_child().

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Tabela 2. XML constants

Constant | Value | Description
XML_ELEMENT_NODE (integer) | 1 | Node is an element
XML_ATTRIBUTE_NODE (integer) | 2 | Node is an attribute
XML_TEXT_NODE (integer) | 3 | Node is a piece of text
XML_CDATA_SECTION_NODE (integer) | 4 |
XML_ENTITY_REF_NODE (integer) | 5 |
XML_ENTITY_NODE (integer) | 6 | Node is an entity like &nbsp;
XML_PI_NODE (integer) | 7 | Node is a processing instruction
XML_COMMENT_NODE (integer) | 8 | Node is a comment
XML_DOCUMENT_NODE (integer) | 9 | Node is a document
XML_DOCUMENT_TYPE_NODE (integer) | 10 |
XML_DOCUMENT_FRAG_NODE (integer) | 11 |
XML_NOTATION_NODE (integer) | 12 |
XML_GLOBAL_NAMESPACE (integer) | 1 |
XML_LOCAL_NAMESPACE (integer) | 2 |
XML_HTML_DOCUMENT_NODE (integer) |  |
XML_DTD_NODE (integer) |  |
XML_ELEMENT_DECL_NODE (integer) |  |
XML_ATTRIBUTE_DECL_NODE (integer) |  |
XML_ENTITY_DECL_NODE (integer) |  |
XML_NAMESPACE_DECL_NODE (integer) |  |
XML_ATTRIBUTE_CDATA (integer) |  |
XML_ATTRIBUTE_ID (integer) |  |
XML_ATTRIBUTE_IDREF (integer) |  |
XML_ATTRIBUTE_IDREFS (integer) |  |
XML_ATTRIBUTE_ENTITY (integer) |  |
XML_ATTRIBUTE_NMTOKEN (integer) |  |
XML_ATTRIBUTE_NMTOKENS (integer) |  |
XML_ATTRIBUTE_ENUMERATION (integer) |  |
XML_ATTRIBUTE_NOTATION (integer) |  |
XPATH_UNDEFINED (integer) |  |
XPATH_NODESET (integer) |  |
XPATH_BOOLEAN (integer) |  |
XPATH_NUMBER (integer) |  |
XPATH_STRING (integer) |  |
XPATH_POINT (integer) |  |
XPATH_RANGE (integer) |  |
XPATH_LOCATIONSET (integer) |  |
XPATH_USERS (integer) |  |
XPATH_NUMBER (integer) |  |

Classes

The API of the module follows the DOM Level 2 standard as closely as possible. Consequently, the API is fully object-oriented. It is a good idea to have the DOM standard available when using this module. Though the API is object-oriented, there are many functions which can be called in a non-object-oriented way by passing the object to operate on as the first argument. These functions are mainly to retain compatibility to older versions of the extension, and should not be used when creating new scripts.

This API differs from the official DOM API in two ways. First, all class attributes are implemented as functions with the same name. Secondly, the function names follow the PHP naming convention. This means that a DOM function lastChild() will be written as last_child().

This module defines a number of classes, which are listed - including their method - in the following tables. Classes with an equivalent in the DOM standard are named DOMxxx.

Tabela 3. List of classes

Class name | Parent classes
DomAttribute | DomNode
DomCData | DomNode
DomComment | DomCData : DomNode
DomDocument | DomNode
DomDocumentType | DomNode
DomElement | DomNode
DomEntity | DomNode
DomEntityReference | DomNode
DomProcessingInstruction | DomNode
DomText | DomCData : DomNode
Parser | Currently still called DomParser
XPathContext |

Tabela 4. DomDocument class (DomDocument : DomNode)

Method name | Function name | Remark
doctype | DomDocument_doctype() |
document_element | DomDocument_document_element() |
create_element | DomDocument_create_element() |
create_text_node | DomDocument_create_text_node() |
create_comment | DomDocument_create_comment() |
create_cdata_section | DomDocument_create_cdata_section() |
create_processing_instruction | DomDocument_create_processing_instruction() |
create_attribute | DomDocument_create_attribute() |
create_entity_reference | DomDocument_create_entity_reference() |
get_elements_by_tagname | DomDocument_get_elements_by_tagname() |
get_element_by_id | DomDocument_get_element_by_id() |
dump_mem | DomDocument_dump_mem() | not DOM standard
dump_file | DomDocument_dump_file() | not DOM standard
html_dump_mem | DomDocument_html_dump_mem() | not DOM standard
xpath_init | xpath_init | not DOM standard
xpath_new_context | xpath_new_context | not DOM standard
xptr_new_context | xptr_new_context | not DOM standard

Tabela 5. DomElement class (DomElement : DomNode)

Method name | Function name | Remark
tagname | DomElement_tagname() |
get_attribute | DomElement_get_attribute() |
set_attribute | DomElement_set_attribute() |
remove_attribute | DomElement_remove_attribute() |
get_attribute_node | DomElement_get_attribute_node() |
get_elements_by_tagname | DomElement_get_elements_by_tagname() |
has_attribute | DomElement_has_attribute() |

Tabela 6. DomNode class

Method name | Remark
DomNode_node_name() |
DomNode_node_value() |
DomNode_node_type() |
DomNode_last_child() |
DomNode_first_child() |
DomNode_child_nodes() |
DomNode_previous_sibling() |
DomNode_next_sibling() |
DomNode_parent_node() |
DomNode_owner_document() |
DomNode_insert_before() |
DomNode_append_child() |
DomNode_append_sibling() | Not in DOM standard. This function emulates the former behaviour of DomNode_append_child().
DomNode_remove_child() |
DomNode_has_child_nodes() |
DomNode_has_attributes() |
DomNode_clone_node() |
DomNode_attributes() |
DomNode_unlink_node() | Not in DOM standard
DomNode_replace_node() | Not in DOM standard
DomNode_set_content() | Not in DOM standard, deprecated
DomNode_get_content() | Not in DOM standard, deprecated
DomNode_dump_node() | Not in DOM standard
DomNode_is_blank_node() | Not in DOM standard

Tabela 7. DomAttribute class (DomAttribute : DomNode)

Method name |  | Remark
name | DomAttribute_name() |
value | DomAttribute_value() |
specified | DomAttribute_specified() |

Tabela 8. DomProcessingInstruction class (DomProcessingInstruction : DomNode)

Method name | Function name | Remark
target | DomProcessingInstruction_target() |
data | DomProcessingInstruction_data() |

Tabela 9. Parser class

Method name | Function name | Remark
add_chunk | Parser_add_chunk() |
end | Parser_end() |

Tabela 10. XPathContext class

Method name | Function name | Remark
eval | XPathContext_eval() |
eval_expression | XPathContext_eval_expression() |
register_ns | XPathContext_register_ns() |

Tabela 11. DomDocumentType class (DomDocumentType : DomNode)

Method name | Function name | Remark
name | DomDocumentType_name() |
entities | DomDocumentType_entities() |
notations | DomDocumentType_notations() |
public_id | DomDocumentType_public_id() |
system_id | DomDocumentType_system_id() |
internal_subset | DomDocumentType_internal_subset() |

The classes DomDtd is derived from DomNode. DomComment is derived from DomCData.

Exemplos

Many examples in this reference require an XML string. Instead of repeating this string in every example, it will be put into a file which will be included by each example. This include file is shown in the following example section. Alternatively, you could create an XML document and read it with DomDocument_open_file().

Exemplo 1. Include file example.inc with XML string

<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &amp;sp;
  <!-- comment -->
  <informaltable ID='findme' language='&amp;sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</chapter>";
?>

Índice
DomAttribute->name -- Returns name of attribute
DomAttribute->specified -- Checks if attribute is specified
DomAttribute->value -- Returns value of attribute
DomDocument->add_root -- Adds a root node [deprecated]
DomDocument->create_attribute -- Create new attribute
DomDocument->create_cdata_section -- Create new cdata node
DomDocument->create_comment -- Create new comment node
DomDocument->create_element_ns -- Create new element node with an associated namespace
DomDocument->create_element -- Create new element node
DomDocument->create_entity_reference --
DomDocument->create_processing_instruction -- Creates new PI node
DomDocument->create_text_node -- Create new text node
DomDocument->doctype -- Returns the document type
DomDocument->document_element -- Returns root element node
DomDocument->dump_file -- Dumps the internal XML tree back into a file
DomDocument->dump_mem -- Dumps the internal XML tree back into a string
DomDocument->get_element_by_id -- Searches for an element with a certain id
DomDocument->get_elements_by_tagname --
DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML
DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.
DomDocumentType->entities -- Returns list of entities
DomDocumentType->internal_subset -- Returns internal subset
DomDocumentType->name -- Returns name of document type
DomDocumentType->notations -- Returns list of notations
DomDocumentType->public_id -- Returns public id of document type
DomDocumentType->system_id -- Returns system id of document type
DomElement->get_attribute_node -- Returns value of attribute
DomElement->get_attribute -- Returns value of attribute
DomElement->get_elements_by_tagname -- Gets elements by tagname
DomElement->has_attribute -- Checks to see if attribute exists
DomElement->remove_attribute -- Removes attribute
DomElement->set_attribute -- Adds new attribute
DomElement->tagname -- Returns name of element
DomNode->add_namespace -- Adds a namespace declaration to a node.
DomNode->append_child -- Adds new child at the end of the children
DomNode->append_sibling -- Adds new sibling to a node
DomNode->attributes -- Returns list of attributes
DomNode->child_nodes -- Returns children of node
DomNode->clone_node -- Clones a node
DomNode->dump_node -- Dumps a single node
DomNode->first_child -- Returns first child of node
DomNode->get_content -- Gets content of node
DomNode->has_attributes -- Checks if node has attributes
DomNode->has_child_nodes -- Checks if node has children
DomNode->insert_before -- Inserts new node as child
DomNode->is_blank_node -- Checks if node is blank
DomNode->last_child -- Returns last child of node
DomNode->next_sibling -- Returns the next sibling of node
DomNode->node_name -- Returns name of node
DomNode->node_type -- Returns type of node
DomNode->node_value -- Returns value of a node
DomNode->owner_document -- Returns the document this node belongs to
DomNode->parent_node -- Returns the parent of the node
DomNode->prefix -- Returns name space prefix of node
DomNode->previous_sibling -- Returns the previous sibling of node
DomNode->remove_child -- Removes child from list of children
DomNode->replace_child -- Replaces a child
DomNode->replace_node -- Replaces node
DomNode->set_content -- Sets content of node
DomNode->set_name -- Sets name of node
DomNode->set_namespace -- Sets namespace of a node.
DomNode->unlink_node -- Deletes node
DomProcessingInstruction->data -- Returns data of pi node
DomProcessingInstruction->target -- Returns target of pi node
DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.
DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file
DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string
domxml_new_doc -- Creates new empty XML document
domxml_open_file -- Creates a DOM object from XML file
domxml_open_mem -- Creates a DOM object of an XML document
domxml_version -- Get XML library version
domxml_xmltree -- Creates a tree of PHP objects from an XML document
domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.
domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file.
domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from an XML document in a string.
xpath_eval_expression -- Evaluates the XPath Location Path in the given string
xpath_eval -- Evaluates the XPath Location Path in the given string
xpath_new_context -- Creates new xpath context
xptr_eval -- Evaluate the XPtr Location Path in the given string
xptr_new_context -- Create new XPath Context

Anterior | Principal | Próxima
scandir | Acima | DomAttribute->name


DomAttribute->name

(no version information, might be only in CVS)

DomAttribute->name -- Returns name of attribute

Description

bool DomAttribute->name ( void )

This function returns the name of the attribute.

See also domattribute_value().

Anterior | Principal | Próxima
DOM XML Functions | Acima | DomAttribute->specified


DomAttribute->specified

(no version information, might be only in CVS)

DomAttribute->specified -- Checks if attribute is specified

Description

bool DomAttribute->specified ( void )

Check DOM standard for a detailed explanation.

Anterior | Principal | Próxima
DomAttribute->name | Acima | DomAttribute->value


DomAttribute->value

(no version information, might be only in CVS)

DomAttribute->value -- Returns value of attribute

Description

bool DomAttribute->value ( void )

This function returns the value of the attribute.

See also domattribute_name().

Anterior | Principal | Próxima
DomAttribute->specified | Acima | DomDocument->add_root


DomDocument->add_root

(no version information, might be only in CVS)

DomDocument->add_root -- Adds a root node [deprecated]

Description

resource DomDocument->add_root ( string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Exemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "Hier der Titel");
echo htmlentities($doc->dump_mem());
?>

Anterior | Principal | Próxima
DomAttribute->value | Acima | DomDocument->create_attribute


DomDocument->create_attribute

(no version information, might be only in CVS)

DomDocument->create_attribute -- Create new attribute

Description

object DomDocument->create_attribute ( string name, string value)

This function returns a new instance of class DomAttribute. The name of the attribute is the value of the first parameter. The value of the attribute is the value of the second parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->add_root | Acima | DomDocument->create_cdata_section


DomDocument->create_cdata_section

(no version information, might be only in CVS)

DomDocument->create_cdata_section -- Create new cdata node

Description

string DomDocument->create_cdata_section ( string content)

This function returns a new instance of class DomCData. The content of the cdata is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_attribute | Acima | DomDocument->create_comment


DomDocument->create_comment

(no version information, might be only in CVS)

DomDocument->create_comment -- Create new comment node

Description

object DomDocument->create_comment ( string content)

This function returns a new instance of class DomComment. The content of the comment is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference() and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_cdata_section | Acima | DomDocument->create_element_ns


DomDocument->create_element_ns

(no version information, might be only in CVS)

DomDocument->create_element_ns -- Create new element node with an associated namespace

Description

object DomDocument->create_element_ns ( string uri, string name [, string prefix])

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter name. The URI of the namespace is the value of the passed parameter uri. If there is already a namespace declaration with the same uri in the root-node of the document, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
         domnode_add_namespace(),
         domnode_set_namespace(),
         domnode_append_child(),
         domdocument_create_text(),
         domdocument_create_comment(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_comment | Acima | DomDocument->create_element


DomDocument->create_element

(no version information, might be only in CVS)

DomDocument->create_element -- Create new element node

Description

object DomDocument->create_element ( string name)

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
         domnode_append_child(),
         domdocument_create_text(),
         domdocument_create_comment(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_element_ns | Acima | DomDocument->create_entity_reference


DomDocument->create_entity_reference

(no version information, might be only in CVS)

DomDocument->create_entity_reference --

Description

object DomDocument->create_entity_reference ( string content)

This function returns a new instance of class DomEntityReference. The content of the entity reference is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_processing_instruction(),
         domdocument_create_attribute(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_element | Acima | DomDocument->create_processing_instruction


DomDocument->create_processing_instruction

(no version information, might be only in CVS)

DomDocument->create_processing_instruction -- Creates new PI node

Description

string DomDocument->create_processing_instruction ( string content)

This function returns a new instance of class DomCData. The content of the pi is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_attribute(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_entity_reference | Acima | DomDocument->create_text_node


DomDocument->create_text_node

(no version information, might be only in CVS)

DomDocument->create_text_node -- Create new text node

Description

object DomDocument->create_text_node ( string content)

This function returns a new instance of class DomText. The content of the text is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_comment(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Principal | Próxima
DomDocument->create_processing_instruction | Acima | DomDocument->doctype


DomDocument->doctype

(no version information, might be only in CVS)

DomDocument->doctype -- Returns the document type

Description

object DomDocument->doctype ( void )

This function returns an object of class DomDocumentType. In versions of PHP before 4.3 this has been the class Dtd, but the DOM Standard does not know such a class.

See also the methods of class DomDocumentType.

Anterior | Principal | Próxima
DomDocument->create_text_node | Acima | DomDocument->document_element


DomDocument->document_element

(no version information, might be only in CVS)

DomDocument->document_element -- Returns root element node

Description

object DomDocument->document_element ( void )

This function returns the root element node of a document.

The following example returns just the element with name CHAPTER and prints it. The other node -- the comment -- is not returned.

Exemplo 1. Retrieving root element

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

Anterior | Principal | Próxima
DomDocument->doctype | Acima | DomDocument->dump_file


DomDocument->dump_file

(no version information, might be only in CVS)

DomDocument->dump_file -- Dumps the internal XML tree back into a file

Description

string DomDocument->dump_file ( string filename [, bool compressionmode [, bool format]])

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not. The first parameter specifies the name of the filename and the second parameter, whether it should be compressed or not.

Exemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

See also domdocument_dump_mem() domdocument_html_dump_mem().

Anterior | Principal | Próxima
DomDocument->document_element | Acima | DomDocument->dump_mem


DomDocument->dump_mem

(no version information, might be only in CVS)

DomDocument->dump_mem -- Dumps the internal XML tree back into a string

Description

string DomDocument->dump_mem ( [bool format [, string encoding]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not.

Exemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>

Nota: The first parameter was added in PHP 4.3.0.

See also domdocument_dump_file(), domdocument_html_dump_mem().

Anterior | Principal | Próxima
DomDocument->dump_file | Acima | DomDocument->get_element_by_id


DomDocument->get_element_by_id

(no version information, might be only in CVS)

DomDocument->get_element_by_id -- Searches for an element with a certain id

Description

object DomDocument->get_element_by_id ( string id)

This function is similar to domdocument_get_elements_by_tagname() but searches for an element with a given id. According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID, though the current implementation simply does an xpath search for "//*[@ID = '%s']". This does not comply to the DOM standard which requires to return null if it is not known which attribute is of type id. This behaviour is likely to be fixed, so do not rely on the current behaviour.

See also domdocument_get_elements_by_tagname()

Anterior | Principal | Próxima
DomDocument->dump_mem | Acima | DomDocument->get_elements_by_tagname


DomDocument->get_elements_by_tagname

(no version information, might be only in CVS)

DomDocument->get_elements_by_tagname --

Description

array DomDocument->get_elements_by_tagname ( string name)

See also domdocument_add_root()

Anterior | Principal | Próxima
DomDocument->get_element_by_id | Acima | DomDocument->html_dump_mem


DomDocument->html_dump_mem

(no version information, might be only in CVS)

DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML

Description

string DomDocument->html_dump_mem ( void )

Creates an HTML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below.

Exemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->html_dump_mem());
echo "</PRE>";
?>

See also domdocument_dump_file(), domdocument_html_dump_mem().

Anterior | Principal | Próxima
DomDocument->get_elements_by_tagname | Acima | DomDocument->xinclude


DomDocument->xinclude

(no version information, might be only in CVS)

DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.

Description

int DomDocument->xinclude ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomDocument->html_dump_mem | Acima | DomDocumentType->entities


DomDocumentType->entities

(no version information, might be only in CVS)

DomDocumentType->entities -- Returns list of entities

Description

array DomDocumentType->entities ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomDocument->xinclude | Acima | DomDocumentType->internal_subset


DomDocumentType->internal_subset

(no version information, might be only in CVS)

DomDocumentType->internal_subset -- Returns internal subset

Description

bool DomDocumentType->internal_subset ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomDocumentType->entities | Acima | DomDocumentType->name


DomDocumentType->name

(no version information, might be only in CVS)

DomDocumentType->name -- Returns name of document type

Description

string DomDocumentType->name ( void )

This function returns the name of the document type.

Anterior | Principal | Próxima
DomDocumentType->internal_subset | Acima | DomDocumentType->notations


DomDocumentType->notations

(no version information, might be only in CVS)

DomDocumentType->notations -- Returns list of notations

Description

array DomDocumentType->notations ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomDocumentType->name | Acima | DomDocumentType->public_id


DomDocumentType->public_id

(no version information, might be only in CVS)

DomDocumentType->public_id -- Returns public id of document type

Description

string DomDocumentType->public_id ( void )

This function returns the public id of the document type.

The following example echos nothing.

Exemplo 1. Retrieving the public id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Anterior | Principal | Próxima
DomDocumentType->notations | Acima | DomDocumentType->system_id


DomDocumentType->system_id

(no version information, might be only in CVS)

DomDocumentType->system_id -- Returns system id of document type

Description

string DomDocumentType->system_id ( void )

Returns the system id of the document type.

The following example echos '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'.

Exemplo 1. Retrieving the system id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

Anterior | Principal | Próxima
DomDocumentType->public_id | Acima | DomElement->get_attribute_node


DomElement->get_attribute_node

(no version information, might be only in CVS)

DomElement->get_attribute_node -- Returns value of attribute

Description

object DomElement->get_attribute_node ( object attr)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomDocumentType->system_id | Acima | DomElement->get_attribute


DomElement->get_attribute

(no version information, might be only in CVS)

DomElement->get_attribute -- Returns value of attribute

Description

object DomElement->get_attribute ( string name)

Returns the attribute with name name of the current node.

(PHP >= 4.3 only) If no attribute with given name is found, an empty string is returned.

See also domelement_set_attribute()

Anterior | Principal | Próxima
DomElement->get_attribute_node | Acima | DomElement->get_elements_by_tagname


DomElement->get_elements_by_tagname

(no version information, might be only in CVS)

DomElement->get_elements_by_tagname -- Gets elements by tagname

Description

bool DomElement->get_elements_by_tagname ( string name)

This function returns an array with all the elements which has name as his tagname. Every element of the array is an DomElement.

Exemplo 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
    $node = $node_array[$i];
    echo "The element[$i] is: " . $node->get_content();
}

?>

Anterior | Principal | Próxima
DomElement->get_attribute | Acima | DomElement->has_attribute


DomElement->has_attribute

(no version information, might be only in CVS)

DomElement->has_attribute -- Checks to see if attribute exists

Description

bool DomElement->has_attribute ( string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomElement->get_elements_by_tagname | Acima | DomElement->remove_attribute


DomElement->remove_attribute

(no version information, might be only in CVS)

DomElement->remove_attribute -- Removes attribute

Description

bool DomElement->remove_attribute ( string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomElement->has_attribute | Acima | DomElement->set_attribute


DomElement->set_attribute

(no version information, might be only in CVS)

DomElement->set_attribute -- Adds new attribute

Description

bool DomElement->set_attribute ( string name, string value)

Sets an attribute with name name to the given value. If the attribute does not exist, it will be created.

Exemplo 1. Setting an attribute

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

See also domelement_get_attribute()

Anterior | Principal | Próxima
DomElement->remove_attribute | Acima | DomElement->tagname


DomElement->tagname

(no version information, might be only in CVS)

DomElement->tagname -- Returns name of element

Description

string DomElement->tagname ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomElement->set_attribute | Acima | DomNode->add_namespace


DomNode->add_namespace

(no version information, might be only in CVS)

DomNode->add_namespace -- Adds a namespace declaration to a node.

Description

bool DomNode->add_namespace ( string uri, string prefix)

See also domdocument_create_element_ns(), domnode_set_namespace()

Anterior | Principal | Próxima
DomElement->tagname | Acima | DomNode->append_child


DomNode->append_child

(no version information, might be only in CVS)

DomNode->append_child -- Adds new child at the end of the children

Description

object DomNode->append_child ( object newnode)

This functions appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

(PHP < 4.3) Before a new child is appended it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the appended child. If you plan to do further modifications on the appended child you must use the returned node.

(PHP 4.3.0/4.3.1) The new child newnode is first unlinked from its existing context, if it's already a child of DomNode. Therefore the node is moved and not copies anymore.

(PHP >= 4.3.2) The new child newnode is first unlinked from its existing context, if it's already in the tree. Therefore the node is moved and not copied. This is the behaviour according to the W3C specifications. If you want to duplicate large parts of an XML document, use DomNode->clone_node() before appending.

The following example will add a new element node to a fresh document and sets the attribute "align" to "left".

Exemplo 1. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>
The above example could also be written as the following:

Exemplo 2. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>
A more complex example is the one below. It first searches for a certain element, duplicates it including its children and adds it as a sibling. Finally a new attribute is added to one of the children of the new sibling and the whole document is dumped.

Exemplo 3. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>
The above example could also be done with domnode_insert_before() instead of domnode_append_child().

See also domnode_insert_before(), domnode_clone_node().

Anterior | Principal | Próxima
DomNode->add_namespace | Acima | DomNode->append_sibling


DomNode->append_sibling

(no version information, might be only in CVS)

DomNode->append_sibling -- Adds new sibling to a node

Description

object DomNode->append_sibling ( object newnode)

This functions appends a sibling to an existing node. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

Before a new sibling is added it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the added sibling. If you plan to do further modifications on the added sibling you must use the returned node.

This function has been added to provide the behaviour of domnode_append_child() as it works till PHP 4.2.

See also domnode_append_before().

Anterior | Principal | Próxima
DomNode->append_child | Acima | DomNode->attributes


DomNode->attributes

(no version information, might be only in CVS)

DomNode->attributes -- Returns list of attributes

Description

array DomNode->attributes ( void )

This function only returns an array of attributes if the node is of type XML_ELEMENT_NODE.

(PHP >= 4.3 only) If no attributes are found, NULL is returned.

Anterior | Principal | Próxima
DomNode->append_sibling | Acima | DomNode->child_nodes


DomNode->child_nodes

(no version information, might be only in CVS)

DomNode->child_nodes -- Returns children of node

Description

array DomNode->child_nodes ( void )

Returns all children of the node.

See also domnode_next_sibling(), domnode_previous_sibling().

Anterior | Principal | Próxima
DomNode->attributes | Acima | DomNode->clone_node


DomNode->clone_node

(no version information, might be only in CVS)

DomNode->clone_node -- Clones a node

Description

object DomNode->clone_node ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomNode->child_nodes | Acima | DomNode->dump_node


DomNode->dump_node

(no version information, might be only in CVS)

DomNode->dump_node -- Dumps a single node

Description

string DomNode->dump_node ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also domdocument_dump_mem().

Anterior | Principal | Próxima
DomNode->clone_node | Acima | DomNode->first_child


DomNode->first_child

(no version information, might be only in CVS)

DomNode->first_child -- Returns first child of node

Description

object DomNode->first_child ( void )

Returns the first child of the node.

(PHP >= 4.3 only) If no first child is found, NULL is returned.

See also domnode_last_child(),
         domnode_next_sibling(),
         domnode_previous_sibling().

Anterior | Principal | Próxima
DomNode->dump_node | Acima | DomNode->get_content


DomNode->get_content

(no version information, might be only in CVS)

DomNode->get_content -- Gets content of node

Description

string DomNode->get_content ( void )

This function returns the content of the actual node.

Exemplo 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
     $node = $node_array[$i];
     echo "The element[$i] is: " . $node->get_content();
}

?>

Anterior | Principal | Próxima
DomNode->first_child | Acima | DomNode->has_attributes


DomNode->has_attributes

(no version information, might be only in CVS)

DomNode->has_attributes -- Checks if node has attributes

Description

bool DomNode->has_attributes ( void )

This function checks if the node has attributes.

See also domnode_has_child_nodes().

Anterior | Principal | Próxima
DomNode->get_content | Acima | DomNode->has_child_nodes


DomNode->has_child_nodes

(no version information, might be only in CVS)

DomNode->has_child_nodes -- Checks if node has children

Description

bool DomNode->has_child_nodes ( void )

This function checks if the node has children.

See also domnode_child_nodes().

Anterior | Principal | Próxima
DomNode->has_attributes | Acima | DomNode->insert_before


DomNode->insert_before

(no version information, might be only in CVS)

DomNode->insert_before -- Inserts new node as child

Description

object DomNode->insert_before ( object newnode, object refnode)

This function inserts the new node newnode right before the node refnode. The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Exemplo 1. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<PRE>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Anterior | Principal | Próxima
DomNode->has_child_nodes | Acima | DomNode->is_blank_node


DomNode->is_blank_node

(no version information, might be only in CVS)

DomNode->is_blank_node -- Checks if node is blank

Description

bool DomNode->is_blank_node ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomNode->insert_before | Acima | DomNode->last_child


DomNode->last_child

(no version information, might be only in CVS)

DomNode->last_child -- Returns last child of node

Description

object DomNode->last_child ( void )

Returns the last child of the node.

(PHP >= 4.3 only) If no last child is found, NULL is returned.

See also domnode_first_child(),
         domnode_next_sibling(),
         domnode_previous_sibling().

Anterior | Principal | Próxima
DomNode->is_blank_node | Acima | DomNode->next_sibling


DomNode->next_sibling

(no version information, might be only in CVS)

DomNode->next_sibling -- Returns the next sibling of node

Description

object DomNode->next_sibling ( void )

This function returns the next sibling of the current node. If there is no next sibling it returns FALSE (< 4.3) or null (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

Exemplo 1. Iterate over children

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while ($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

See also domnode_previous_sibling().

Anterior | Principal | Próxima
DomNode->last_child | Acima | DomNode->node_name


DomNode->node_name

(no version information, might be only in CVS)

DomNode->node_name -- Returns name of node

Description

string DomNode->node_name ( void )

Returns name of the node. The name has different meanings for the different types of nodes as illustrated in the following table.

Tabela 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | document type name
DomElement | tag name
DomEntity | name of entity
DomEntityReference | name of entity reference
DomNotation | notation name
DomProcessingInstruction | target
DomText | #text

Anterior | Principal | Próxima
DomNode->next_sibling | Acima | DomNode->node_type


DomNode->node_type

(no version information, might be only in CVS)

DomNode->node_type -- Returns type of node

Description

int DomNode->node_type ( void )

Returns the type of the node. All possible types are listed in the table in the introduction.

Anterior | Principal | Próxima
DomNode->node_name | Acima | DomNode->node_value


DomNode->node_value

(no version information, might be only in CVS)

DomNode->node_value -- Returns value of a node

Description

string DomNode->node_value ( void )

Returns value of the node. The value has different meanings for the different types of nodes as illustrated in the following table.

Tabela 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | content
DomComment | content of comment
DomDocument | null
DomDocumentType | null
DomElement | null
DomEntity | null
DomEntityReference | null
DomNotation | null
DomProcessingInstruction | entire content without target
DomText | content of text

Anterior | Principal | Próxima
DomNode->node_type | Acima | DomNode->owner_document


DomNode->owner_document

(no version information, might be only in CVS)

DomNode->owner_document -- Returns the document this node belongs to

Description

object DomNode->owner_document ( void )

This function returns the document the current node belongs to.

The following example will create two identical lists of children.

Exemplo 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

See also domnode_insert_before().

Anterior | Principal | Próxima
DomNode->node_value | Acima | DomNode->parent_node


DomNode->parent_node

(no version information, might be only in CVS)

DomNode->parent_node -- Returns the parent of the node

Description

object DomNode->parent_node ( void )

This function returns the parent node.

(PHP >= 4.3 only) If no parent is found, NULL is returned.

The following example will show two identical lists of children.

Exemplo 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

Anterior | Principal | Próxima
DomNode->owner_document | Acima | DomNode->prefix


DomNode->prefix

(no version information, might be only in CVS)

DomNode->prefix -- Returns name space prefix of node

Description

string DomNode->prefix ( void )

Returns the name space prefix of the node.

Anterior | Principal | Próxima
DomNode->parent_node | Acima | DomNode->previous_sibling


DomNode->previous_sibling

(no version information, might be only in CVS)

DomNode->previous_sibling -- Returns the previous sibling of node

Description

object DomNode->previous_sibling ( void )

This function returns the previous sibling of the current node. If there is no previous sibling it returns FALSE (< 4.3) or NULL (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

See also domnode_next_sibling().

Anterior | Principal | Próxima
DomNode->prefix | Acima | DomNode->remove_child


DomNode->remove_child

(no version information, might be only in CVS)

DomNode->remove_child -- Removes child from list of children

Description

object DomNode->remove_child ( object oldchild)

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Exemplo 1. Removing a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Anterior | Principal | Próxima
DomNode->previous_sibling | Acima | DomNode->replace_child


DomNode->replace_child

(no version information, might be only in CVS)

DomNode->replace_child -- Replaces a child

Description

object DomNode->replace_child ( object oldnode, object newnode)

(PHP 4.2) This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned.

(PHP 4.3) This function replaces the child oldnode with the passed newnode, even if the new node already is a child of the DomNode. If newnode was already inserted in the document it is first unlinked from its existing context. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned. (This behaviour is according to the W3C specs).

See also domnode_append_child()

Anterior | Principal | Próxima
DomNode->remove_child | Acima | DomNode->replace_node


DomNode->replace_node

(no version information, might be only in CVS)

DomNode->replace_node -- Replaces node

Description

object DomNode->replace_node ( object newnode)

(PHP 4.2) This function replaces an existing node with the passed new node. Before the replacement newnode is copied if it has a parent to make sure a node which is already in the document will not be inserted a second time. This behaviour enforces doing all modifications on the node before the replacement or to refetch the inserted node afterwards with functions like domnode_first_child(), domnode_child_nodes() etc..

(PHP 4.3) This function replaces an existing node with the passed new node. It is not copied anymore. If newnode was already inserted in the document it is first unlinked from its existing context. If the replacement succeeds the old node is returned.

See also domnode_append_child()

Anterior | Principal | Próxima
DomNode->replace_child | Acima | DomNode->set_content


DomNode->set_content

(no version information, might be only in CVS)

DomNode->set_content -- Sets content of node

Description

bool DomNode->set_content ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomNode->replace_node | Acima | DomNode->set_name


DomNode->set_name

(no version information, might be only in CVS)

DomNode->set_name -- Sets name of node

Description

bool DomNode->set_name ( void )

Sets name of node.

See also domnode_node_name().

Anterior | Principal | Próxima
DomNode->set_content | Acima | DomNode->set_namespace


DomNode->set_namespace

(no version information, might be only in CVS)

DomNode->set_namespace -- Sets namespace of a node.

Description

void DomNode->set_namespace ( string uri [, string prefix])

Sets the namespace of a node to uri. If there is already a namespace declaration with the same uri in one of the parent nodes of the node, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one.

See also domdocument_create_element_ns(), domnode_add_namespace()

Anterior | Principal | Próxima
DomNode->set_name | Acima | DomNode->unlink_node


DomNode->unlink_node

(no version information, might be only in CVS)

DomNode->unlink_node -- Deletes node

Description

object DomNode->unlink_node ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomNode->set_namespace | Acima | DomProcessingInstruction->data


DomProcessingInstruction->data

(no version information, might be only in CVS)

DomProcessingInstruction->data -- Returns data of pi node

Description

string DomProcessingInstruction->data ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomNode->unlink_node | Acima | DomProcessingInstruction->target


DomProcessingInstruction->target

(no version information, might be only in CVS)

DomProcessingInstruction->target -- Returns target of pi node

Description

string DomProcessingInstruction->target ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DomProcessingInstruction->data | Acima | DomXsltStylesheet->process


DomXsltStylesheet->process

(no version information, might be only in CVS)

DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.

Description

object DomXsltStylesheet->process ( object DomDocument [, array xslt_parameters [, bool param_is_xpath]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also domxml_xslt_stylesheet(), domxml_xslt_stylesheet_file(), domxml_xslt_stylesheet_doc()

Anterior | Principal | Próxima
DomProcessingInstruction->target | Acima | DomXsltStylesheet->result_dump_file


DomXsltStylesheet->result_dump_file

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file

Description

string DomXsltStylesheet->result_dump_file ( object DomDocument, string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Exemplo 1. Saving the result of a XSLT transformation in a file

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_file($result, "filename");
?>

See also domxml_xslt_result_dump_mem(), domxml_xslt_process()

Anterior | Principal | Próxima
DomXsltStylesheet->process | Acima | DomXsltStylesheet->result_dump_mem


DomXsltStylesheet->result_dump_mem

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string

Description

string DomXsltStylesheet->result_dump_mem ( object DomDocument)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Exemplo 1. Outputting the result of a XSLT transformation

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_mem($result);
?>

See also domxml_xslt_result_dump_file(), domxml_xslt_process()

Anterior | Principal | Próxima
DomXsltStylesheet->result_dump_file | Acima | domxml_new_doc


domxml_new_doc

(PHP 4 >= 4.2.1)

domxml_new_doc -- Creates new empty XML document

Description

object domxml_new_doc ( string version)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Creates a new dom document from scratch and returns it.

See also domdocument_add_root()

Anterior | Principal | Próxima
DomXsltStylesheet->result_dump_mem | Acima | domxml_open_file


domxml_open_file

(PHP 4 >= 4.2.1)

domxml_open_file -- Creates a DOM object from XML file

Description

object domxml_open_file ( string filename)

The function parses the XML document in the file named filename and returns an object of class "Dom document", having the properties as listed above. The file is accessed read-only.

Exemplo 1. Opening an XML document from a file

<?php

if (!$dom = domxml_open_file("example.xml")) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

See also domxml_open_mem(), domxml_new_doc().

Anterior | Principal | Próxima
domxml_new_doc | Acima | domxml_open_mem


domxml_open_mem

(PHP 4 >= 4.2.1)

domxml_open_mem -- Creates a DOM object of an XML document

Description

object domxml_open_mem ( string str)

The function parses the XML document in str and returns an object of class "Dom document", having the properties as listed above. This function, domxml_open_file() or domxml_new_doc() must be called before any other function calls.

Exemplo 1. Opening an XML document in a string

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

See also domxml_open_file(), domxml_new_doc().

Anterior | Principal | Próxima
domxml_open_file | Acima | domxml_version


domxml_version

(PHP 4 >= 4.1.0)

domxml_version -- Get XML library version

Description

string domxml_version ( void )

This function returns the version of the XML library version currently used.

Anterior | Principal | Próxima
domxml_open_mem | Acima | domxml_xmltree


domxml_xmltree

(PHP 4 >= 4.2.1)

domxml_xmltree -- Creates a tree of PHP objects from an XML document

Description

object domxml_xmltree ( string str)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function parses the XML document in str and returns a tree PHP objects as the parsed document. This function is isolated from the other functions, which means you cannot access the tree with any of the other functions. Modifying it, for example by adding nodes, makes no sense since there is currently no way to dump it as an XML file. However this function may be valuable if you want to read a file and investigate the content.

Anterior | Principal | Próxima
domxml_version | Acima | domxml_xslt_stylesheet_doc


domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.

Description

object domxml_xslt_stylesheet_doc ( object DocDocument Object)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet(), domxml_xslt_stylesheet_file()

Anterior | Principal | Próxima
domxml_xmltree | Acima | domxml_xslt_stylesheet_file


domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file.

Description

object domxml_xslt_stylesheet_file ( string xsl file)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet(), domxml_xslt_stylesheet_doc()

Anterior | Principal | Próxima
domxml_xslt_stylesheet_doc | Acima | domxml_xslt_stylesheet


domxml_xslt_stylesheet

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from an XML document in a string.

Description

object domxml_xslt_stylesheet ( string xsl document)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet_file(), domxml_xslt_stylesheet_doc()

Anterior | Principal | Próxima
domxml_xslt_stylesheet_file | Acima | xpath_eval_expression


xpath_eval_expression

(PHP 4 >= 4.0.4)

xpath_eval_expression -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval_expression ( object xpath_context)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

See also xpath_eval()

Anterior | Principal | Próxima
domxml_xslt_stylesheet | Acima | xpath_eval


xpath_eval

(PHP 4 >= 4.0.4)

xpath_eval -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval ( object xpath context, string xpath expression [, object contextnode])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The optional contextnode can be specified for doing relative XPath queries.

See also xpath_new_context()

Anterior | Principal | Próxima
xpath_eval_expression | Acima | xpath_new_context


xpath_new_context

(PHP 4 >= 4.0.4)

xpath_new_context -- Creates new xpath context

Description

object xpath_new_context ( object dom document)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

See also xpath_eval()

Anterior | Principal | Próxima
xpath_eval | Acima | xptr_eval


xptr_eval

(PHP 4 >= 4.0.4)

xptr_eval -- Evaluate the XPtr Location Path in the given string

Description

int xptr_eval ( [object xpath_context, string eval_str])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xpath_new_context | Acima | xptr_new_context


xptr_new_context

(PHP 4 >= 4.0.4)

xptr_new_context -- Create new XPath Context

Description

string xptr_new_context ( [object doc_handle])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xptr_eval | Acima | .NET Functions


.NET Functions

Manual do PHP
Anterior Próxima

XXV. .NET Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Índice
dotnet_load -- Loads a DOTNET module

Anterior | Principal | Próxima
xptr_new_context | Acima | dotnet_load


dotnet_load

(no version information, might be only in CVS)

dotnet_load -- Loads a DOTNET module

Description

int dotnet_load ( string assembly_name [, string datatype_name [, int codepage]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
.NET Functions | Acima | Erros e Logs


Erros e Logs

Manual do PHP
Anterior Próxima

XXVI. Erros e Logs

Introdução

Estas são funções para lidar com erros e logs. Elas permitem a você definir a suas próprias regras para manusear erros, assim como para modificar a maneira com que é efetuado o log de erros. Isto permite a você melhorar e adaptar as suas necessidades os avisos de erro.

Com as funções de log, você pode mandar mensagens diretamente para outras máquinas, para um email (ou email para um pager), para os logs do sistema, etc, assim você pode seletivamente logar e monitorar as partes mais importantes das suas aplicações e websites.

As funções de erro permitem você configurar quais níveis de erro devem ser reportados e o tipo de resposta que será dado, indo desde simples avisos até as funções retornadas durante os erros.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configurações de erros e log

Nome | Padrão | Modificável
error_reporting | E_ALL & ~E_NOTICE | PHP_INI_ALL
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
report_memleaks | "1" | PHP_INI_SYSTEM
track_errors | "0" | PHP_INI_ALL
html_errors | "1" | PHP_INI_ALL
docref_root | "" | PHP_INI_ALL
docref_ext | "" | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
warn_plus_overloading | NULL | PHP_INI??
Para maiores detalhes e definição das constantes do PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

error_reporting integer

Define o nível de erros para reportar. O parâmetro pode ser um inteiro ou uma constante. Os níveis de erros para reportar estão descritos em Constantes Predefinidas, e no php.ini. Para definir em tempo de execução, use a função error_reporting(). Veja também a diretiva display_errors.

No PHP 4 e PHP 5 o valor padrão é E_ALL & ~E_NOTICE. Esta definição não mostra erros de nível E_NOTICE. Você deve querer mostra-los durante o desenvolvimento.

Nota: Ativando E_NOTICE durante o desenvolvimento tem alguns beneficios. Para o proposito de eliminar erros: mensagens NOTICE irão avisar você sobre possiveis erros em seu código. Por exemplo, o uso de valores não definidos é avisado. É extremamente útil para encontrar erros de digitação e economisar tempo na correção de erros. As mensagens NOTICE irão avisar a você sobre mal estilo. Por exemplo, $arr[item] é melhor que seja escrito como $arr['item'] já que o PHP irá tratar "item" como uma constante. Se não for uma constante, o PHP irá considerar como uma string de índice para a matriz.

Nota: No PHP 5 um novo nível de erro E_STRICT esta disponível. Já que E_STRICT não esta incluída em E_ALL você deve explicitamente ativar este nível de erro. Ativar E_STRICT durante o desenvolvimento tem alguns beneficios. Mensagem STRICT irão ajudar a você a utilizar o metodo mais recente de codificação, por exemplo, avisar você sobre funções obsoletas.

No PHP 3, a definição padrão é (E_ERROR | E_WARNING | E_PARSE), indicando a mesma coisa. Note, entretanto, desde que constantes não são suportadas no php3.ini do PHP 3, a definição do nível de erros para reportar deve ser númerica, neste caso 7.

display_errors boolean

Isto determina quando os erros devem ser mostrados como parte da saída ou se devem ser escondidos do usuário.

Nota: Isto serve para suportar o seu desenvolvimento e nunca deve ser usado em sistemas de produção (ex. sistemas conectados a internet).

display_startup_errors boolean

Mesmo quando display_errors esta em on, erros que aconteçam durante a inicialização do PHP não são mostrados. É fortemente recomendado manter display_startup_errors em off, exceto para procurar erros.

log_errors boolean

Indica se as mensagens de erro do script devem ficar no log de erros do servidor ou em error_log. Esta opção depende do servidor.

Nota: Você é fortemente avisado para usar o log de erros ao invés de mostra-los em web sites de produção.

log_errors_max_len integer

Define o limite de tamanho da mensagem de erro para logar em bytes. Em error_log é adicionada informação sobre a fonte. O padrão é 1024 e 0 permite que não seja estabelecido nenhum limite.

ignore_repeated_errors boolean

Não loga mensagens repetidas. Erros repetidos devem acontecer no mesmo arquivo na mesma linha enquanto ignore_repeated_source estiver em true.

ignore_repeated_source boolean

Ignora a fonte da mensagem quando estiver ignorando mensagens repetidos. Quando esta definição ON não irá logar mensagens de erros repetidas de arquivos diferentes ou linhas diferentes.

report_memleaks boolean

Se este parâmetro estiver em Off, quando acontecerem memory leaks não será mostrado (na saída ou no log). Isto só tem efeito numa compilação de debug, e se error_reporting incluir E_WARNING na lista de permitidos.

track_errors boolean

Se ativado, a última mensagem de erro sempre estará disponível na variável $php_errormsg.

html_errors boolean

Desativa as tags HTML nas mensagens de erro. O novo formato de mensagens de erro em HTML produz mensagens que podem ser clicadas e que direcionam o usuário para uma pagina descrevendo o erro ou a função que causou o erro. Estas referencias são afetadas por docref_root e docref_ext.

docref_root string

O novo formato de mensagens de erro em HTML produz mensagens que podem ser clicadas e que direcionam o usuário para uma pagina descrevendo o erro ou a função que causou o erro. No caso de paginas de manual você pode baixar o manual na sua língua e definir esta diretiva para a sua cópia local. Se a sua cópia local do manual podur ser acessada por '/manual/' você pode simplesmente usar docref_root=/manual/. Adicionalmente você deve definir docref_ext para ser igual a extensão da sua cópia docref_ext=.html. É possível usar referencias externas. Por exemplo, você pode usar docref_root=http://manual/en/ ou docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

A maior parte do tempo você deve querer que o valor de docref_root termine com uma barra '/'. Mas veja o segundo exemplo acima o qual não tem ou não necessita isso.

Nota: Isto é para suportar o seu desenvolvimento já que torna mais fácil encontrar a descrição de uma função. Entretando não deve ser usado em sistemas de produção (ex. sistemas conectados na internet).

docref_ext string

Veja docref_root.

Nota: O valor de docref_ext deve começar com um ponto '.'.

error_prepend_string string

String para mostrar antes de uma mensagem de erro.

error_append_string string

String para mostrar após uma mensagem de erro.

error_log string

O nome do arquivo onde os erros do script serão logados. Se o valor especial syslog é usado, os erros são enviados para o log do sistema. No UNIX, isto indica syslog(3) e no Windows NT isto indica o log do evento. O log de sistema não é suportado no Windows 95. Veja também: syslog().

warn_plus_overloading boolean

Se ativado, esta opção faz o PHP mostrar um aviso quando o operador de adição (+) é usado em strings. Isto é para tornar mais fácil encontrar scripts que precisam ser rescritos usando o operador de concatenação (.).

Constantes Predefinidas

As constantes listadas abaixo estão sempre disponíveis como parte do núcleo do PHP.

Nota: Você pode usar estes nomes de constantes no php.ini mas não fora do PHP, como no httpd.conf, aonde você deve usar os valores.

Tabela 2. Erros e Log

Valor | Constante | Descrição | Nota
1 | E_ERROR (integer) | Erros em tempo de execução fatais. Estes indicam erros que não podem ser recuperados, como problemas de alocação de memória. A execução do script é interrompida. |
2 | E_WARNING (integer) | Avisos em tempo de execução (erros não fatais). A execução do script não é interrompida. |
4 | E_PARSE (integer) | Erro em tempo de compilação. Erros gerados pelo interpretador. |
8 | E_NOTICE (integer) | Notícia em tempo de execução. Indica que o script encontrou alguma coisa que pode indicar um erro, mas que também possa acontecer durante a execução normal do script. |
16 | E_CORE_ERROR (integer) | Erro fatal que acontece durante a inicialização do PHP. Este é parecido com E_ERROR, exceto que é gerado pelo núcleo do PHP. | Somente PHP 4
32 | E_CORE_WARNING (integer) | Avisos (erros não fatais) que aconteçam durante a inicialização do PHP. Este é parecido com E_WARNING, exceto que é gerado pelo núcleo do PHP. | Somente PHP 4
64 | E_COMPILE_ERROR (integer) | Erro fatal em tempo de compilação. Este é parecido com E_ERROR, exceto que é gerado pelo Zend Scripting Engine. | Somente PHP 4
128 | E_COMPILE_WARNING (integer) | Aviso em tempo de compilação. Este é parecido com E_WARNING, exceto que é geredo pelo Zend Scripting Engine. | Somente PHP 4
256 | E_USER_ERROR (integer) | Erro gerado pelo usuário. Este é parecido com E_ERROR, exceto que é gerado pelo código PHP usando a função trigger_error(). | Somente PHP 4
512 | E_USER_WARNING (integer) | Aviso gerado pelo usuário. Este é parecido com E_WARNING, exceto que é gerado pelo código PHP usando a função trigger_error(). | Somente PHP 4
1024 | E_USER_NOTICE (integer) | Notícia gerada pelo usuário. Este é parecido com E_NOTICE, exceto que é gerado pelo código PHP usando a função trigger_error(). | Somente PHP 4
2047 | E_ALL (integer) | Todos os erros e avisos, como suportado, exceto do nível E_STRICT. |
2048 | E_STRICT (integer) | Nóticias em tempo de execução. Permite ao PHP sugerir modificações em seu código para segurar melhor interoperabilidade e compatibilidade futura do seu código. | Somente PHP 5

Os valores acima (numéricos ou simbolicos) são usados para criar um bitmask que especifica quais erros reportar.Você pode usar os operadores Bit-a-bit para combinar estes valores ou mascarar certos tipos de erro. Note que somente '|', '~', '!', ^ e '&' serão entendidos dentro do php.ini, entretanto, nenhum operador será entendido no php3.ini.

Exemplos

Abaixo você poderá ver um exemplo de como usar as capacidades de gerenciamento de erros no PHP. Nós definimos uma função para gerenciamento de erros a qual guardas as informações dentro de um arquivo (usando um formato XML), e envia um e-mail para o desenvolvador caso um erro crítico na lógica aconteça.

Exemplo 1. Usando gerenciamento de erro em um script

<?php
// nós iremos fazer o nosso próprio gerenciamento de erros
error_reporting(0);

// função definida pelo usuário para gerenciamento de erros
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars) {
    // timestamp para a entrada do erro
    $dt = date("Y-m-d H:i:s (T)");

    // Define uma matriz associativa com as strings dos erros
    $errortype = array (
                1   =>  "Error",
                2   =>  "Warning",
                4   =>  "Parsing Error",
                8   =>  "Notice",
                16  =>  "Core Error",
                32  =>  "Core Warning",
                64  =>  "Compile Error",
                128 =>  "Compile Warning",
                256 =>  "User Error",
                512 =>  "User Warning",
                1024=>  "User Notice"
                );
    // define quais erros nós iremos salvar
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors))
        $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n";
    $err .= "</errorentry>\n\n";

    // para teste
    // echo $err;

    // salva para o log de erros, e envia um email para o desenvolvedor em caso de erro crítico
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR)
        mail("phpdev@example.com", "Critical User Error", $err);
}

function distance($vect1, $vect2) {
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vectors need to be of the same size", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Coordinate $i in vector 1 is not a number, using zero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Coordinate $i in vector 2 is not a number, using zero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// constante indefinida, gera um aviso
$t = I_AM_NOT_DEFINED;

// define alguns "vetores"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array (1,-3);

// gera um erro do usuário
$t1 = distance($c, $b)."\n";

// gera outro erro do usuário
$t2 = distance($b, "i am not an array")."\n";

// gera um aviso
$t3 = distance($a, $b)."\n";

?>

Veja Também

Veja também syslog().

Índice
debug_backtrace -- Gera um backtrace
debug_print_backtrace -- Mostra um backtrace
error_log -- Envia uma mensagem de erro para algum lugar
error_reporting -- Define quais erros serão reportados
restore_error_handler -- Restaura a função anterior para gerenciamento de erro
set_error_handler -- Define uma função do usuário para manusear os erros.
trigger_error -- Gera uma mensagem de usuário sobre error/warning/notice
user_error -- Apelido para trigger_error()

Anterior | Principal | Próxima
dotnet_load | Acima | debug_backtrace


debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtrace -- Gera um backtrace

Descrição

array debug_backtrace ( void )

debug_backtrace() gera um backtrace e retorna esta informação em uma matriz associativa. Os elementos possivelmente retornados estão na seguinte tabela:

Tabela 1. Elementos possivelmente retornados de debug_backtrace()

Nome | Tipo | Descrição
function | string | O nome da função atual. Veja também __FUNCTION__.
line | integer | O número da linha atual. Veja também __LINE__.
file | string | O nome do arquivo atual. Veja também __FILE__.
class | string | O nome da classe atual. Veja também __CLASS__.
type | string | O tipo da classe atual.
args | array | Se estiver dentro de uma função, lista os argumentos da função. Se estiver dentro de um arquivo incluído, lista o(s) nome(s) do(s) arquivo(s).

A seguir esta um exemplo simples.

Exemplo 1. Exemplo debug_backtrace()

// nome do arquivo: a.php
<?php

function a_test($str) {

    echo "\nHi: $str";

    var_dump(debug_backtrace());
}

a_test('friend');
?>

// nome do arquivo: b.php
<?php
include_once '/tmp/a.php';
?>

Resultados quando executando /tmp/b.php:

Hi: friend
array(2) {
  [0]=>
  array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
  }
  [1]=>
  array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Veja também trigger_error() e debug_print_backtrace().

Anterior | Principal | Próxima
Erros e Logs | Acima | debug_print_backtrace


debug_print_backtrace

(PHP 5)

debug_print_backtrace -- Mostra um backtrace

Descrição

void debug_print_backtrace ( void )

debug_print_backtrace() mostra um backtrace.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Veja também debug_backtrace().

Anterior | Principal | Próxima
debug_backtrace | Acima | error_log


error_log

(PHP 3, PHP 4 , PHP 5)

error_log -- Envia uma mensagem de erro para algum lugar

Descrição

int error_log ( string mensagem [, int mensagem_type [, string destination [, string extra_headers]]])

Envia uma mensagem de erro para o log de um servidor, para uma porta TCP ou para um arquivo. O primeiro parâmetro, mensagem, é a mensagem de erro que deve ser logada. O segundo parâmetro, mensagem_type diz para onde a mensagem deve ir:

Tabela 1. Tipo de logs de error_log()

0 | mensagem é enviada para o sistema de log do PHP, usando o sistema de log do sistema operacional ou para um arquivo, dependendo do que estiver definido na diretiva error_log
1 | mensagem é enviado para o endereço de email em destination. Este é o unico tipo de mensagem onde o quarto parâmetro extra_headers é usado. Este tipo de mensagem usa a mesma função interna que a função mail() usa.
2 | mensagem é enviada através de conexão de debug do PHP. Esta opção só esta disponível se o debug remoto estiver ativado . Neste caso, o parâmetro destination define o nume do servidor ou endereço IP e opcionalmente, o número da porta, do socket recebendo a informação de debug.
3 | mensagem é adicionada ao arquivo destination.

Atenção

Debug remoto via TCP/IP é do PHP 3 e não esta disponível no PHP 4.

Exemplo 1. Exemplos de error_log()

<?php
// Envia uma notificação para o log do servidor
// se não pudermos conectar ao banco de dados.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Avisa o administrados se nós ficarmos sem FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}

// outros meios de usar calling error_log():
error_log("You messed up!", 2, "127.0.0.1:7000");
error_log("You messed up!", 2, "loghost");
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>

Anterior | Principal | Próxima
debug_print_backtrace | Acima | error_reporting


error_reporting

(PHP 3, PHP 4 , PHP 5)

error_reporting -- Define quais erros serão reportados

Descrição

int error_reporting ( [int nível])

A função error_reporting() define a diretiva error_reporting em tempo de execução. O PHP tem vários níveis de erros, usando esta função você pode definir o nível durante a execução do seu script.

error_reporting() define o nível de erros que o PHP irá reportar, e retorna o nível antigo. O parâmetro nível pode usar um bitmask, ou constantes. É fortemente recomendado que você use constantes para assegurar compatibilidade com futuras versões. Como níveis de erros podem ser adicionados, o intervalo das constantes pode crescer, então os níveis de erros indicados anteriormente por inteiros pode não funcionar como esperado.

Alguns exemplos de uso:

Exemplo 1. Exemplos error_reporting()

<?php

// Desativa o relatório de todos os erros
error_reporting(0);

// Reporta erros simples
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reportar E_NOTICE pode ser bom também (para reportar variáveis não iniciadas
// ou eros de digitação em nomes de variáveis ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Reportar todos os erros exceto E_NOTICE
// Este é o valor padrão no php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Reporta todos os erros (bitwise 63 deve ser usado no PHP 3)
error_reporting(E_ALL);

// O mesmo que error_reporting(E_ALL);
ini_set ('error_reporting', E_ALL);

?>

Os níveis de erro disponíveis estão listados a baixo. A descrição deles esta em constantes predefinidas.

Tabela 1. Constantes de nível e valores de bit de error_reporting().

Valor | Constante
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING
64 | E_COMPILE_ERROR
128 | E_COMPILE_WARNING
256 | E_USER_ERROR
512 | E_USER_WARNING
1024 | E_USER_NOTICE
2047 | E_ALL
2048 | E_STRICT

Atenção

A partir do PHP > 5.0.0 E_STRICT com o valor 2048 esta disponível. E_ALL NÃO erros do nívelE_STRICT.

Veja também a diretiva display_errors e ini_set().

Anterior | Principal | Próxima
error_log | Acima | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handler -- Restaura a função anterior para gerenciamento de erro

Descrição

void restore_error_handler ( void )

Usada após mudar a função que gerencia os erros usando set_error_handler(), para reverter para a função que gerencia os erros anterior (a qual pode ser uma função interna ou uma função definida pelo usuário).

Veja também error_reporting(),
set_error_handler() e
trigger_error().

Anterior | Principal | Próxima
error_reporting | Acima | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handler -- Define uma função do usuário para manusear os erros.

Descrição

string set_error_handler ( callback error_handler)

Define uma função do usuário (error_handler) para manusear os erros no script. Retorna a função definida anteriormente (se houver alguma), ou FALSE em caso de erro. Esta função pode ser usada para definir o seu próprio meio de manusear os erros durante a execução do script, por exemplo em aplicações que você precisa fazer uma limpesa de dados/arquivos quando um erro crítico acontece, ou quando você quer criar um erro sobre certas condições (usando trigger_error()).

A função do usuario precisa aceitar dois parâmetros: o código do erro e a string descrevendo o erro. Apartir do PHP 4.0.2, três parâmetros opcionais são fornecidos: o nome do erro onde o arquivo aconteceu, o número da linha onde o erro aconteceu, e o contexto onde o erro aconteceu (uma matriz que aponta para a tabela de símbolos ativos no ponto onde aconteceu o erro).

Nota: Ao invés de um nome de função, uma matriz contendo uma referência a um objeto e um nome de metodo pode ser indicado (Apartir do PHP 4.3.0).

Nota: Os seguintes tipos de erro não podem ser manuseados por uma função definida pelo usuário: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR e E_COMPILE_WARNING.

O exemplo abaixo mostra como manusear exceções criando erros e gerenciando erros com uma função definida pelo usuário:

Exemplo 1. Manuseando erros com set_error_handler() e trigger_error()

<?php

// redefine the user error constants - PHP 4 only
define("FATAL", E_USER_ERROR);
define("ERROR", E_USER_WARNING);
define("WARNING", E_USER_NOTICE);

// set the error reporting level for this script
error_reporting(FATAL | ERROR | WARNING);

// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline) {
  switch ($errno) {
  case FATAL:
    echo "<b>FATAL</b> [$errno] $errstr<br />\n";
    echo "  Fatal error in line $errline of file $errfile";
    echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br />\n";
    echo "Aborting...<br />\n";
    exit(1);
    break;
  case ERROR:
    echo "<b>ERROR</b> [$errno] $errstr<br />\n";
    break;
  case WARNING:
    echo "<b>WARNING</b> [$errno] $errstr<br />\n";
    break;
  default:
    echo "Unkown error type: [$errno] $errstr<br />\n";
    break;
  }
}

// function to test the error handling
function scale_by_log($vect, $scale) {
  if (!is_numeric($scale) || $scale <= 0) {
    trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale",
      FATAL);
  }

  if (!is_array($vect)) {
    trigger_error("Incorrect input vector, array of values expected", ERROR);
    return null;
  }

  for ($i=0; $i<count($vect); $i++) {
    if (!is_numeric($vect[$i]))
      trigger_error("Value at position $i is not a number, using 0 (zero)",
        WARNING);
    $temp[$i] = log($scale) * $vect[$i];
  }
  return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

// trigger some errors, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2,3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// now generate second array, generating a warning
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - an error\n";
$c = scale_by_log("not array", 2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>

E quando você usar este script de exemplo, a saída será:

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a warning (b = log(PI) * a)
<b>WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an error
<b>ERROR</b> [512] Incorrect input vector, array of values expected<br />
NULL
----
vector d - fatal error
<b>FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
  Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)<br />
Aborting...<br />

É importante lembrar que o gerenciamento de erro do padrão do PHP é completamente ignorado. As definições de error_reporting() não terão efeito e seu gerenciador de erro será chamado. Em todo o caso, você ainda poderá ler o valor atual de error_reporting e ajir apropriadamente. Uma nota em particular é que este valor será 0 se o comando que causou o erro for precedido pelo operador de controle de erro @.

Note também que é sua responsabilidade usar o die() se necessário. Se a função que gerencia os erros retornar, a execução do script irá continuar a apartir do comando seguinte ao que causou o erro

Nota: Se o erro acontecer antes da execução do script(ex. enquanto o arquivo é carregado) a função defina pelo usuario não será chamada já que não estará ainda registrada.

Veja também error_reporting(),
restore_error_handler(),
trigger_error() e
constantes de níveis de erro.

Anterior | Principal | Próxima
restore_error_handler | Acima | trigger_error


trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_error -- Gera uma mensagem de usuário sobre error/warning/notice

Descrição

void trigger_error ( string error_msg [, int error_type])

Usa para realizar uma condição de erro, pode ser usado em conjunto com o gerenciador de erros padrão ou com uma função definida pelo usuário, se for definida como gerenciador de erros com set_error_handler(). Somente funciona com as constantes da família E_USER, e o padrão é E_USER_NOTICE.

Esta função é útil quando você quer gerar uma resposta para uma exceção durante a execução do script. Por exemplo:

<?php
if (assert($divisor == 0)) {
  trigger_error("Não posso dividir por zero", E_USER_ERROR);
}
?>

Nota: Veja set_error_handler() para um exemplo maior.

Nota: error_msg é limitado a 1024 caracteres de tamanho. Qualquer caractere adicional além de 1024 serão truncados.

Veja também error_reporting(),
set_error_handler(),
restore_error_handler() e
constantes de níveis de erro.

Anterior | Principal | Próxima
set_error_handler | Acima | user_error


user_error

user_error -- Apelido para trigger_error()

Descrição

Esta função é um apelido para trigger_error().

Anterior | Principal | Próxima
trigger_error | Acima | File Alteration Monitor Functions


File Alteration Monitor Functions

Manual do PHP
Anterior Próxima

XXVII. File Alteration Monitor Functions

Introdução

FAM monitors files and directories, notifying interested applications of changes. More information about FAM is available at http://oss.sgi.com/projects/fam/.

A PHP script may specify a list of files for FAM to monitor using the functions provided by this extension.

The FAM process is started when the first connection from any application to it is opened. It exits after all connections to it have been closed.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

This extension uses the functions of the FAM library, devoloped by SGI. Therefore you have to download and install the FAM library.

Instalação

To use PHP's FAM support you must compile PHP --with-fam[=DIR] where DIR is the location of the directory containing the lib and include directories.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

FAM resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Tabela 1. FAM event constants

Constant | Description
FAMChanged (integer) | Some value which can be obtained with fstat(1) changed for a file or directory.
FAMDeleted (integer) | A file or directory was deleted or renamed.
FAMStartExecuting (integer) | An executable file started executing.
FAMStopExecuting (integer) | An executable file that was running finished.
FAMCreated (integer) | A file was created in a directory.
FAMMoved (integer) | This event never occurs.
FAMAcknowledge (integer) | An event in response to fam_cancel_monitor().
FAMExists (integer) | An event upon request to monitor a file or directory. When a directory is monitored, an event for that directory and every file contained in that directory is issued.
FAMEndExist (integer) | Event after the last FAMEExists event.
Índice
fam_cancel_monitor -- Terminate monitoring
fam_close -- Close FAM connection
fam_monitor_collection -- Monitor a collection of files in a directory for changes
fam_monitor_directory -- Monitor a directory for changes
fam_monitor_file -- Monitor a regular file for changes
fam_next_event -- Get next pending FAM event
fam_open -- Open connection to FAM daemon
fam_pending -- Check for pending FAM events
fam_resume_monitor -- Resume suspended monitoring
fam_suspend_monitor -- Temporarily suspend monitoring

Anterior | Principal | Próxima
user_error | Acima | fam_cancel_monitor


fam_cancel_monitor

(PHP 5)

fam_cancel_monitor -- Terminate monitoring

Description

bool fam_cancel_monitor ( resource fam, resource fam_monitor)

fam_cancel_monitor() terminates monitoring on a resource previously requested using one of the fam_monitor_...(). In addition an FAMAcknowledge event occurs.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_monitor_collection(), and
fam_suspend_monitor()

Anterior | Principal | Próxima
File Alteration Monitor Functions | Acima | fam_close


fam_close

(PHP 5)

fam_close -- Close FAM connection

Description

void fam_close ( resource fam)

fam_close() closes a connection to the FAM service previously opened using fam_open().

Anterior | Principal | Próxima
fam_cancel_monitor | Acima | fam_monitor_collection


fam_monitor_collection

(PHP 5)

fam_monitor_collection -- Monitor a collection of files in a directory for changes

Description

resource fam_monitor_collection ( resource fam, string dirname, int depth, string mask)

fam_monitor_collection() requests monitoring for a collection of files within a directory. The actual files to be monitored are specified by a directory path in dirname, the maximum search depth starting from this directory and a shell pattern mask restricting the file names to look for.

A FAM event will be generated whenever the status of the files change. The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Anterior | Principal | Próxima
fam_close | Acima | fam_monitor_directory


fam_monitor_directory

(PHP 5)

fam_monitor_directory -- Monitor a directory for changes

Description

resource fam_monitor_directory ( resource fam, string dirname)

fam_monitor_directory() requests monitoring for a directory and all contained files. A FAM event will be generated whenever the status of the directory (i.e. the result of function stat() on that directory) or its content (i.e. the results of readdir()) change.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Anterior | Principal | Próxima
fam_monitor_collection | Acima | fam_monitor_file


fam_monitor_file

(PHP 5)

fam_monitor_file -- Monitor a regular file for changes

Description

resource fam_monitor_file ( resource fam, string filename)

fam_monitor_file() requests monitoring for a single file. A FAM event will be generated whenever the file status (i.e. the result of function stat() on that file) changes.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_directory(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Anterior | Principal | Próxima
fam_monitor_directory | Acima | fam_next_event


fam_next_event

(PHP 5)

fam_next_event -- Get next pending FAM event

Description

array fam_next_event ( resource fam)

fam_next_event() returns the next pending FAM event. The function will block until an event is available which can be checked for using fam_pending().

fam_next_event() will return an array that contains a FAM event code in element 'code', the path of the file this event applies to in element 'filename' and optionally a hostname in element 'hostname'.

The possible event codes are described in detail in the constants part of this section.

See also fam_pending().

Anterior | Principal | Próxima
fam_monitor_file | Acima | fam_open


fam_open

(PHP 5)

fam_open -- Open connection to FAM daemon

Description

resource fam_open ( [string appname])

fam_open() opens a connection to the FAM service daemon. The optional parameter appname should be set to a string identifying the application for logging reasons.

See also fam_close().

Anterior | Principal | Próxima
fam_next_event | Acima | fam_pending


fam_pending

(PHP 5)

fam_pending -- Check for pending FAM events

Description

bool fam_pending ( resource fam)

fam_pending() returns TRUE if events are available to be fetched using fam_next_event().

See also fam_next_event().

Anterior | Principal | Próxima
fam_open | Acima | fam_resume_monitor


fam_resume_monitor

(PHP 5)

fam_resume_monitor -- Resume suspended monitoring

Description

bool fam_resume_monitor ( resource fam, resource fam_monitor)

fam_resume_monitor() resumes monitoring of a resource previously suspend using fam_suspend_monitor().

See also fam_suspend_monitor().

Anterior | Principal | Próxima
fam_pending | Acima | fam_suspend_monitor


fam_suspend_monitor

(PHP 5)

fam_suspend_monitor -- Temporarily suspend monitoring

Description

bool fam_suspend_monitor ( resource fam, resource fam_monitor)

fam_suspend_monitor() temporarily suspend monitoring of a resource previously requested using one of the fam_monitor_...() functions. Monitoring can later be continued using fam_resume_monitor() without the need of requesting a complete new monitor.

See also fam_resume_monitor(), and fam_cancel_monitor().

Anterior | Principal | Próxima
fam_resume_monitor | Acima | FrontBase Functions


FrontBase Functions

Manual do PHP
Anterior Próxima

XXVIII. FrontBase Functions

Introdução

These functions allow you to access FrontBase database servers. More information about FrontBase can be found at http://www.frontbase.com/.

Documentation for FrontBase can be found at http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Frontbase support has been added to PHP 4.0.6.

Requisitos

You must install the FrontBase database server or at least the fbsql client libraries to use this functions. You can get FrontBase from http://www.frontbase.com/.

Instalação

In order to have these functions available, you must compile PHP with fbsql support by using the --with-fbsql[=DIR] option. If you use this option without specifying the path to fbsql, PHP will search for the fbsql client libraries in the default installation location for the platform. Users who installed FrontBase in a non standard directory should always specify the path to fbsql: --with-fbsql=/path/to/fbsql. This will force PHP to use the client libraries installed by FrontBase, avoiding any conflicts.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. FrontBase configuration options

Name | Default | Changeable
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

FBSQL_ASSOC (integer)

FBSQL_NUM (integer)

FBSQL_BOTH (integer)

FBSQL_LOCK_DEFERRED (integer)

FBSQL_LOCK_OPTIMISTIC (integer)

FBSQL_LOCK_PESSIMISTIC (integer)

FBSQL_ISO_READ_UNCOMMITTED (integer)

FBSQL_ISO_READ_COMMITTED (integer)

FBSQL_ISO_REPEATABLE_READ (integer)

FBSQL_ISO_SERIALIZABLE (integer)

FBSQL_ISO_VERSIONED (integer)

FBSQL_UNKNOWN (integer)

FBSQL_STOPPED (integer)

FBSQL_STARTING (integer)

FBSQL_RUNNING (integer)

FBSQL_STOPPING (integer)

FBSQL_NOEXEC (integer)

FBSQL_LOB_DIRECT (integer)

FBSQL_LOB_HANDLE (integer)

Índice
fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation
fbsql_autocommit -- Enable or disable autocommit
fbsql_blob_size -- Get the size of a BLOB
fbsql_change_user -- Change logged in user of the active connection
fbsql_clob_size -- Get the size of a CLOB
fbsql_close -- Close FrontBase connection
fbsql_commit -- Commits a transaction to the database
fbsql_connect -- Open a connection to a FrontBase Server
fbsql_create_blob -- Create a BLOB
fbsql_create_clob -- Create a CLOB
fbsql_create_db -- Create a FrontBase database
fbsql_data_seek -- Move internal result pointer
fbsql_database_password -- Sets or retrieves the password for a FrontBase database
fbsql_database -- Get or set the database name used with a connection
fbsql_db_query -- Send a FrontBase query
fbsql_db_status -- Get the status for a given database
fbsql_drop_db -- Drop (delete) a FrontBase database
fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation
fbsql_error -- Returns the text of the error message from previous FrontBase operation
fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
fbsql_fetch_assoc -- Fetch a result row as an associative array
fbsql_fetch_field -- Get column information from a result and return as an object
fbsql_fetch_lengths -- Get the length of each output in a result
fbsql_fetch_object -- Fetch a result row as an object
fbsql_fetch_row -- Get a result row as an enumerated array
fbsql_field_flags -- Get the flags associated with the specified field in a result
fbsql_field_len -- Returns the length of the specified field
fbsql_field_name -- Get the name of the specified field in a result
fbsql_field_seek -- Set result pointer to a specified field offset
fbsql_field_table -- Get name of the table the specified field is in
fbsql_field_type -- Get the type of the specified field in a result
fbsql_free_result -- Free result memory
fbsql_get_autostart_info -- No description given yet
fbsql_hostname -- Get or set the host name used with a connection
fbsql_insert_id -- Get the id generated from the previous INSERT operation
fbsql_list_dbs -- List databases available on a FrontBase server
fbsql_list_fields -- List FrontBase result fields
fbsql_list_tables -- List tables in a FrontBase database
fbsql_next_result -- Move the internal result pointer to the next result
fbsql_num_fields -- Get number of fields in result
fbsql_num_rows -- Get number of rows in result
fbsql_password -- Get or set the user password used with a connection
fbsql_pconnect -- Open a persistent connection to a FrontBase Server
fbsql_query -- Send a FrontBase query
fbsql_read_blob -- Read a BLOB from the database
fbsql_read_clob -- Read a CLOB from the database
fbsql_result -- Get result data
fbsql_rollback -- Rollback a transaction to the database
fbsql_select_db -- Select a FrontBase database
fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set
fbsql_set_password -- Change the password for a given user
fbsql_set_transaction -- Set the transaction locking and isolation
fbsql_start_db -- Start a database on local or remote server
fbsql_stop_db -- Stop a database on local or remote server
fbsql_tablename -- Get table name of field
fbsql_username -- Get or set the host user used with a connection
fbsql_warnings -- Enable or disable FrontBase warnings

Anterior | Principal | Próxima
fam_suspend_monitor | Acima | fbsql_affected_rows


fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation

Description

int fbsql_affected_rows ( [resource link_identifier])

fbsql_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query associated with link_identifier. If the link identifier isn't specified, the last link opened by fbsql_connect() is assumed.

Nota: If you are using transactions, you need to call fbsql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the commit.

If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero.

Nota: When using UPDATE, FrontBase will not update columns where the new value is the same as the old value. This creates the possibility that fbsql_affected_rows() may not actually equal the number of rows matched, only the number of rows that were literally affected by the query.

If the last query failed, this function will return -1.

See also: fbsql_num_rows().

Anterior | Principal | Próxima
FrontBase Functions | Acima | fbsql_autocommit


fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommit -- Enable or disable autocommit

Description

bool fbsql_autocommit ( resource link_identifier [, bool OnOff])

fbsql_autocommit() returns the current autocommit status. If the optional OnOff parameter is given the auto commit status will be changed. With OnOff set to TRUE each statement will be committed automatically, if no errors was found. With OnOff set to FALSE the user must commit or rollback the transaction using either fbsql_commit() or fbsql_rollback().

See also: fbsql_commit() and fbsql_rollback()

Anterior | Principal | Próxima
fbsql_affected_rows | Acima | fbsql_blob_size


fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_blob_size -- Get the size of a BLOB

Description

int fbsql_blob_size ( string blob_handle [, resource link_identifier])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_autocommit | Acima | fbsql_change_user


fbsql_change_user

(no version information, might be only in CVS)

fbsql_change_user -- Change logged in user of the active connection

Description

resource fbsql_change_user ( string user, string password [, string database [, resource link_identifier]])

fbsql_change_user() changes the logged in user of the current active connection, or the connection given by the optional parameter link_identifier. If a database is specified, this will default or current database after the user has been changed. If the new user and password authorization fails, the current connected user stays active.

Anterior | Principal | Próxima
fbsql_blob_size | Acima | fbsql_clob_size


fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_clob_size -- Get the size of a CLOB

Description

int fbsql_clob_size ( string clob_handle [, resource link_identifier])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_change_user | Acima | fbsql_close


fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_close -- Close FrontBase connection

Description

bool fbsql_close ( [resource link_identifier])

Returns: TRUE on success, FALSE on error.

fbsql_close() closes the connection to the FrontBase server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is used.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

Exemplo 1. fbsql_close() example

<?php
    $link = fbsql_connect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    echo "Connected successfully";
    fbsql_close($link);
?>

See also: fbsql_connect() and fbsql_pconnect().

Anterior | Principal | Próxima
fbsql_clob_size | Acima | fbsql_commit


fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commit -- Commits a transaction to the database

Description

bool fbsql_commit ( [resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

fbsql_commit() ends the current transaction by writing all inserts, updates and deletes to the disk and unlocking all row and table locks held by the transaction. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_rollback()

Anterior | Principal | Próxima
fbsql_close | Acima | fbsql_connect


fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connect -- Open a connection to a FrontBase Server

Description

resource fbsql_connect ( [string hostname [, string username [, string password]]])

Returns a positive FrontBase link identifier on success, or an error message on failure.

fbsql_connect() establishes a connection to a
FrontBase server.  The following defaults are assumed for missing
optional parameters: hostname = 'NULL',
username = '_SYSTEM' and
password = empty password.

If a second call is made to fbsql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling fbsql_close().

Exemplo 1. fbsql_connect() example

<?php

    $link = fbsql_connect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    echo "Connected successfully";
    fbsql_close($link);

?>

See also fbsql_pconnect() and fbsql_close().

Anterior | Principal | Próxima
fbsql_commit | Acima | fbsql_create_blob


fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blob -- Create a BLOB

Description

string fbsql_create_blob ( string blob_data [, resource link_identifier])

Returns: A resource handle to the newly created blob.

fbsql_create_blob() creates a blob from blob_data. The returned resource handle can be used with insert and update commands to store the blob in the database.

Exemplo 1. fbsql_create_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "blobfile.bin";
    $fp = fopen($filename, "rb");
    $blobdata = fread($fp, filesize($filename));
    fclose($fp);

    $blobHandle = fbsql_create_blob($blobdata, $link);

    $sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_clob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Principal | Próxima
fbsql_connect | Acima | fbsql_create_clob


fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clob -- Create a CLOB

Description

string fbsql_create_clob ( string clob_data [, resource link_identifier])

Returns: A resource handle to the newly created CLOB.

fbsql_create_clob() creates a clob from clob_data. The returned resource handle can be used with insert and update commands to store the clob in the database.

Exemplo 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "clob_file.txt";
    $fp = fopen($filename, "rb");
    $clobdata = fread($fp, filesize($filename));
    fclose($fp);

    $clobHandle = fbsql_create_clob($clobdata, $link);

    $sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Principal | Próxima
fbsql_create_blob | Acima | fbsql_create_db


fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_db -- Create a FrontBase database

Description

bool fbsql_create_db ( string database_name [, resource link_identifier])

fbsql_create_db() attempts to create a new database named database_name on the server associated with the specified connection link_identifier.

Exemplo 1. fbsql_create_db() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    if (fbsql_create_db("my_db")) {
        echo "Database created successfully\n";
    } else {
        printf("Error creating database: %s\n", fbsql_error());
    }
?>

See also: fbsql_drop_db().

Anterior | Principal | Próxima
fbsql_create_clob | Acima | fbsql_data_seek


fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seek -- Move internal result pointer

Description

bool fbsql_data_seek ( resource result_identifier, int row_number)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

fbsql_data_seek() moves the internal row pointer of the FrontBase result associated with the specified result identifier to point to the specified row number. The next call to fbsql_fetch_row() would return that row.

Row_number starts at 0.

Exemplo 1. fbsql_data_seek() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");

    fbsql_select_db("samp_db")
        or die("Could not select database");

    $query = "SELECT last_name, first_name FROM friends;";
    $result = fbsql_query($query)
        or die("Query failed");

    // fetch rows in reverse order

    for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
        if (!fbsql_data_seek($result, $i)) {
            printf("Cannot seek to row %d\n", $i);
            continue;
        }

        if (!($row = fbsql_fetch_object($result)))
            continue;

        echo $row->last_name . $row->first_name . "<br />\n";
    }

    fbsql_free_result($result);
?>

Anterior | Principal | Próxima
fbsql_create_db | Acima | fbsql_database_password


fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_password -- Sets or retrieves the password for a FrontBase database

Description

string fbsql_database_password ( resource link_identifier [, string database_password])

Returns: The database password associated with the link identifier.

fbsql_database_password() sets and retrieves the database password used by the connection. if a database is protected by a database password, the user must call this function before calling fbsql_select_db(). if the second optional parameter is given the function sets the database password for the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Exemplo 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    fbsql_database_password($link, "secret db password");
    fbsql_select_db($database, $link);
?>

See also: fbsql_connect(),
fbsql_pconnect() and
fbsql_select_db().

Anterior | Principal | Próxima
fbsql_data_seek | Acima | fbsql_database


fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database -- Get or set the database name used with a connection

Description

string fbsql_database ( resource link_identifier [, string database])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_database_password | Acima | fbsql_db_query


fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_query -- Send a FrontBase query

Description

resource fbsql_db_query ( string database, string query [, resource link_identifier])

Returns: A positive FrontBase result identifier to the query result, or FALSE on error.

fbsql_db_query() selects a database and executes a query on it. If the optional link identifier isn't specified, the function will try to find an open link to the FrontBase server and if no such link is found it'll try to create one as if fbsql_connect() was called with no arguments

See also fbsql_connect().

Anterior | Principal | Próxima
fbsql_database | Acima | fbsql_db_status


fbsql_db_status

(PHP 4 >= 4.1.0, PHP 5)

fbsql_db_status -- Get the status for a given database

Description

int fbsql_db_status ( string database_name [, resource link_identifier])

Returns: An integer value with the current status.

fbsql_db_status() requests the current status of the database specified by database_name. If the link_identifier is omitted the default link_identifier will be used.

The return value can be one of the following constants:

  • FALSE - The exec handler for the host was invalid. This error will occur when the link_identifier connects directly to a database by using a port number. FBExec can be available on the server but no connection has been made for it.

  • FBSQL_UNKNOWN - The Status is unknown.

  • FBSQL_STOPPED - The database is not running. Use fbsql_start_db() to start the database.

  • FBSQL_STARTING - The database is starting.

  • FBSQL_RUNNING - The database is running and can be used to perform SQL operations.

  • FBSQL_STOPPING - The database is stopping.

  • FBSQL_NOEXEC - FBExec is not running on the server and it is not possible to get the status of the database.

See also: fbsql_start_db() and fbsql_stop_db().

Anterior | Principal | Próxima
fbsql_db_query | Acima | fbsql_drop_db


fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_db -- Drop (delete) a FrontBase database

Description

bool fbsql_drop_db ( string database_name [, resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

Anterior | Principal | Próxima
fbsql_db_status | Acima | fbsql_errno


fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation

Description

int fbsql_errno ( [resource link_identifier])

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

See also: fbsql_error() and fbsql_warnings().

Anterior | Principal | Próxima
fbsql_drop_db | Acima | fbsql_error


fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_error -- Returns the text of the error message from previous FrontBase operation

Description

string fbsql_error ( [resource link_identifier])

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_error() to retrieve the error text. Note that this function only returns the error text from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

See also: fbsql_errno() and fbsql_warnings().

Anterior | Principal | Próxima
fbsql_errno | Acima | fbsql_fetch_array


fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Description

array fbsql_fetch_array ( resource result [, int result_type])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_array() is an extended version of fbsql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

The optional second argument result_type in fbsql_fetch_array() is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

For further details, see also fbsql_fetch_row() and fbsql_fetch_assoc().

Exemplo 1. fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Anterior | Principal | Próxima
fbsql_error | Acima | fbsql_fetch_assoc


fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assoc -- Fetch a result row as an associative array

Description

array fbsql_fetch_assoc ( resource result)

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC for the optional second parameter. It only returns an associative array. This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

For further details, see also fbsql_fetch_row() and fbsql_fetch_array().

Exemplo 1. fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Anterior | Principal | Próxima
fbsql_fetch_array | Acima | fbsql_fetch_field


fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_field -- Get column information from a result and return as an object

Description

object fbsql_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

fbsql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • max_length - maximum length of the column

  • not_null - 1 if the column cannot be NULL

  • type - the type of the column

Exemplo 1. fbsql_fetch_field() example

<?php
fbsql_connect($host, $user, $password)
    or die("Could not connect");
$result = fbsql_db_query("database", "select * from table")
    or die("Query failed");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

See also fbsql_field_seek().

Anterior | Principal | Próxima
fbsql_fetch_assoc | Acima | fbsql_fetch_lengths


fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengths -- Get the length of each output in a result

Description

array fbsql_fetch_lengths ( [resource result])

Returns: An array that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

fbsql_fetch_lengths() stores the lengths of
each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array, starting at
offset 0.

See also: fbsql_fetch_row().

Anterior | Principal | Próxima
fbsql_fetch_field | Acima | fbsql_fetch_object


fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_object -- Fetch a result row as an object

Description

object fbsql_fetch_object ( resource result [, int result_type])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Exemplo 1. fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

See also: fbsql_fetch_array() and fbsql_fetch_row().

Anterior | Principal | Próxima
fbsql_fetch_lengths | Acima | fbsql_fetch_row


fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_row -- Get a result row as an enumerated array

Description

array fbsql_fetch_row ( resource result)

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

See also: fbsql_fetch_array(),
fbsql_fetch_object(),
fbsql_data_seek(),
fbsql_fetch_lengths(), and
fbsql_result().

Anterior | Principal | Próxima
fbsql_fetch_object | Acima | fbsql_field_flags


fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flags -- Get the flags associated with the specified field in a result

Description

string fbsql_field_flags ( resource result, int field_offset)

fbsql_field_flags() returns the field flags of the specified field. The flags are reported as a single word per flag separated by a single space, so that you can split the returned value using explode().

Anterior | Principal | Próxima
fbsql_fetch_row | Acima | fbsql_field_len


fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_len -- Returns the length of the specified field

Description

int fbsql_field_len ( resource result, int field_offset)

fbsql_field_len() returns the length of the specified field.

Anterior | Principal | Próxima
fbsql_field_flags | Acima | fbsql_field_name


fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_name -- Get the name of the specified field in a result

Description

string fbsql_field_name ( resource result, int field_index)

fbsql_field_name() returns the name of the specified field index. result must be a valid result identifier and field_index is the numerical offset of the field.

Nota: field_index starts at 0.

e.g. The index of the third field would actually be 2, the index of the fourth field would be 3 and so on.

Exemplo 1. fbsql_field_name() example

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

The above example would produce the following output:

user_id
password

Anterior | Principal | Próxima
fbsql_field_len | Acima | fbsql_field_seek


fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seek -- Set result pointer to a specified field offset

Description

bool fbsql_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to fbsql_fetch_field() doesn't include a field offset, the field offset specified in fbsql_field_seek() will be returned.

See also: fbsql_fetch_field().

Anterior | Principal | Próxima
fbsql_field_name | Acima | fbsql_field_table


fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_table -- Get name of the table the specified field is in

Description

string fbsql_field_table ( resource result, int field_offset)

Returns the name of the table that the specified field is in.

Anterior | Principal | Próxima
fbsql_field_seek | Acima | fbsql_field_type


fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_type -- Get the type of the specified field in a result

Description

string fbsql_field_type ( resource result, int field_offset)

fbsql_field_type() is similar to the fbsql_field_name() function. The arguments are identical, but the field type is returned instead. The field type will be one of "int", "real", "string", "blob", and others as detailed in the FrontBase documentation.

Exemplo 1. fbsql_field_type() example

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Your '" . $table . "' table has " . $fields . " fields and " . $rows . " records <br />";
echo "The table has the following fields <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Anterior | Principal | Próxima
fbsql_field_table | Acima | fbsql_free_result


fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_result -- Free result memory

Description

bool fbsql_free_result ( resource result)

fbsql_free_result() will free all memory associated with the result identifier result.

fbsql_free_result() only needs to be called if you are concerned about how much memory is being used for queries that return large result sets. All associated result memory is automatically freed at the end of the script's execution.

Anterior | Principal | Próxima
fbsql_field_type | Acima | fbsql_get_autostart_info


fbsql_get_autostart_info

(PHP 4 >= 4.1.0, PHP 5)

fbsql_get_autostart_info -- No description given yet

Description

array fbsql_get_autostart_info ( [resource link_identifier])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_free_result | Acima | fbsql_hostname


fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostname -- Get or set the host name used with a connection

Description

string fbsql_hostname ( resource link_identifier [, string host_name])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_get_autostart_info | Acima | fbsql_insert_id


fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_id -- Get the id generated from the previous INSERT operation

Description

int fbsql_insert_id ( [resource link_identifier])

fbsql_insert_id() returns the ID generated for an column defined as DEFAULT UNIQUE by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

fbsql_insert_id() returns 0 if the previous query does not generate an DEFAULT UNIQUE value. If you need to save the value for later, be sure to call fbsql_insert_id() immediately after the query that generates the value.

Nota: The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Anterior | Principal | Próxima
fbsql_hostname | Acima | fbsql_list_dbs


fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbs -- List databases available on a FrontBase server

Description

resource fbsql_list_dbs ( [resource link_identifier])

fbsql_list_dbs() will return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() function to traverse this result pointer.

Exemplo 1. fbsql_list_dbs() example

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

The above example would produce the following output:

database1
database2
database3
...

Nota: The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Anterior | Principal | Próxima
fbsql_insert_id | Acima | fbsql_list_fields


fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fields -- List FrontBase result fields

Description

resource fbsql_list_fields ( string database_name, string table_name [, resource link_identifier])

fbsql_list_fields() retrieves information
about the given tablename. Arguments are the database name and
the table name. A result pointer is returned which can be used
with fbsql_field_flags(),
fbsql_field_len(),
fbsql_field_name(), and
fbsql_field_type().

A result identifier is a positive integer. The function returns FALSE if an error occurs. A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Exemplo 1. fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

The above example would produce the following output:

field1
field2
field3
...

Anterior | Principal | Próxima
fbsql_list_dbs | Acima | fbsql_list_tables


fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tables -- List tables in a FrontBase database

Description

resource fbsql_list_tables ( string database [, resource link_identifier])

fbsql_list_tables() takes a database name and returns a result pointer much like the fbsql_db_query() function. The fbsql_tablename() function should be used to extract the actual table names from the result pointer.

Anterior | Principal | Próxima
fbsql_list_fields | Acima | fbsql_next_result


fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_result -- Move the internal result pointer to the next result

Description

bool fbsql_next_result ( resource result_id)

When sending more than one SQL statement to the server or executing a stored procedure with multiple results will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the words from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Exemplo 1. fbsql_next_result() example

<?php
    $link = fbsql_connect("localhost", "_SYSTEM", "secret");
    fbsql_select_db("MyDB", $link);
    $SQL = "Select * from table1; select * from table2;";
    $rs = fbsql_query($SQL, $link);
    do {
        while ($row = fbsql_fetch_row($rs)) {
        }
    } while (fbsql_next_result($rs));
    fbsql_free_result($rs);
    fbsql_close($link);
?>

Anterior | Principal | Próxima
fbsql_list_tables | Acima | fbsql_num_fields


fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fields -- Get number of fields in result

Description

int fbsql_num_fields ( resource result)

fbsql_num_fields() returns the number of fields in a result set.

See also:
fbsql_db_query(),
fbsql_query(),
fbsql_fetch_field(), and
fbsql_num_rows().

Anterior | Principal | Próxima
fbsql_next_result | Acima | fbsql_num_rows


fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rows -- Get number of rows in result

Description

int fbsql_num_rows ( resource result)

fbsql_num_rows() returns the number of rows in a result set. This command is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

Exemplo 1. fbsql_num_rows() example

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

See also: fbsql_affected_rows(),
fbsql_connect(),
fbsql_select_db(), and
fbsql_query().

Anterior | Principal | Próxima
fbsql_num_fields | Acima | fbsql_password


fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_password -- Get or set the user password used with a connection

Description

string fbsql_password ( resource link_identifier [, string password])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_num_rows | Acima | fbsql_pconnect


fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnect -- Open a persistent connection to a FrontBase Server

Description

resource fbsql_pconnect ( [string hostname [, string username [, string password]]])

Returns: A positive FrontBase persistent link identifier on success, or FALSE on error.

fbsql_pconnect() establishes a connection to a FrontBase server. The following defaults are assumed for missing optional parameters: host = 'localhost', username = "_SYSTEM" and password = empty password.

To set Frontbase server port number, use fbsql_select_db().

fbsql_pconnect() acts very much like fbsql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use.

This type of links is therefore called 'persistent'.

Anterior | Principal | Próxima
fbsql_password | Acima | fbsql_query


fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query -- Send a FrontBase query

Description

resource fbsql_query ( string query [, resource link_identifier])

fbsql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if fbsql_connect() was called with no arguments, and use it.

Nota: The query string shall always end with a semicolon.

fbsql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.

The following query is syntactically invalid, so fbsql_query() fails and returns FALSE:

Exemplo 1. fbsql_query() example

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

The following query is semantically invalid if my_col is not a column in the table my_tbl, so fbsql_query() fails and returns FALSE:

Exemplo 2. fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl")
    or die ("Invalid query");
?>

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

Assuming the query succeeds, you can call fbsql_num_rows() to find out how many rows were returned for a SELECT statement or fbsql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result(). When you are done with the result set, you can free the resources associated with it by calling fbsql_free_result(). Although, the memory will automatically be freed at the end of the script's execution.

See also: fbsql_affected_rows(),
fbsql_db_query(),
fbsql_free_result(),
fbsql_result(),
fbsql_select_db(), and
fbsql_connect().

Anterior | Principal | Próxima
fbsql_pconnect | Acima | fbsql_read_blob


fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blob -- Read a BLOB from the database

Description

string fbsql_read_blob ( string blob_handle [, resource link_identifier])

Returns: A string containing the BLOB specified by blob_handle.

fbsql_read_blob() reads BLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Exemplo 1. fbsql_read_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the blob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the BLOB data in the first row
    $blob_data = fbsql_read_blob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Principal | Próxima
fbsql_query | Acima | fbsql_read_clob


fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clob -- Read a CLOB from the database

Description

string fbsql_read_clob ( string clob_handle [, resource link_identifier])

Returns: A string containing the CLOB specified by clob_handle.

fbsql_read_clob() reads CLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Exemplo 1. fbsql_read_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the clob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the CLOB data in the first row
    $clob_data = fbsql_read_clob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Principal | Próxima
fbsql_read_blob | Acima | fbsql_result


fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_result -- Get result data

Description

mixed fbsql_result ( resource result, int row [, mixed field])

fbsql_result() returns the contents of one cell from a FrontBase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tabledname.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than fbsql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

Recommended high-performance alternatives:
fbsql_fetch_row(),
fbsql_fetch_array(), and
fbsql_fetch_object().

Anterior | Principal | Próxima
fbsql_read_clob | Acima | fbsql_rollback


fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollback -- Rollback a transaction to the database

Description

bool fbsql_rollback ( [resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

fbsql_rollback() ends the current transaction by rolling back all statements issued since last commit. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_commit()

Anterior | Principal | Próxima
fbsql_result | Acima | fbsql_select_db


fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_db -- Select a FrontBase database

Description

bool fbsql_select_db ( string database_name [, resource link_identifier])

fbsql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

The client contacts FBExec to obtain the port number to use for the connection to the database. If the database name is a number the system will use that as a port number and it will not ask FBExec for the port number. The FrontBase server can be stared as FRontBase -FBExec=No -port=<port number> <database name>.

Every subsequent call to fbsql_query() will be made on the active database.

if the database is protected with a database password, the user must call fbsql_database_password() before selecting the database.

See also
fbsql_connect(),
fbsql_pconnect(),
fbsql_database_password(), and
fbsql_query().

Anterior | Principal | Próxima
fbsql_rollback | Acima | fbsql_set_lob_mode


fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set

Description

bool fbsql_set_lob_mode ( resource result, string database_name)

Returns: TRUE on success, FALSE on error.

fbsql_set_lob_mode() sets the mode for retrieving LOB data from the database. When BLOB and CLOB data is stored in FrontBase it can be stored direct or indirect. Direct stored LOB data will always be fetched no matter the setting of the lob mode. If the LOB data is less than 512 bytes it will always be stored directly.

  • FBSQL_LOB_DIRECT - LOB data is retrieved directly. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, all CLOB and BLOB columns will be returned as ordinary columns. This is the default value on a new FrontBase result.

  • FBSQL_LOB_HANDLE - LOB data is retrieved as handles to the data. When data is fetched from the database with fbsql_fetch_row (), and other fetch functions, LOB data will be returned as a handle to the data if the data is stored indirect or the data if it is stored direct. If a handle is returned it will be a 27 byte string formatted as "@'000000000000000000000000'".

See also:
    fbsql_create_blob(),
    fbsql_create_clob(),
    fbsql_read_blob(), and
    fbsql_read_clob().

Anterior | Principal | Próxima
fbsql_select_db | Acima | fbsql_set_password


fbsql_set_password

(PHP 5)

fbsql_set_password -- Change the password for a given user

Description

bool fbsql_set_password ( resource link_identifier, string user, string password, string old_password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_set_lob_mode | Acima | fbsql_set_transaction


fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transaction -- Set the transaction locking and isolation

Description

void fbsql_set_transaction ( resource link_identifier, int Locking, int Isolation)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_set_password | Acima | fbsql_start_db


fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_db -- Start a database on local or remote server

Description

bool fbsql_start_db ( string database_name [, resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

fbsql_start_db()

See also: fbsql_db_status() and fbsql_stop_db().

Anterior | Principal | Próxima
fbsql_set_transaction | Acima | fbsql_stop_db


fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_db -- Stop a database on local or remote server

Description

bool fbsql_stop_db ( string database_name [, resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

fbsql_stop_db()

See also: fbsql_db_status() and fbsql_start_db().

Anterior | Principal | Próxima
fbsql_start_db | Acima | fbsql_tablename


fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablename -- Get table name of field

Description

string fbsql_tablename ( resource result, int i)

fbsql_tablename() takes a result pointer returned by the fbsql_list_tables() function as well as an integer index and returns the name of a table. The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

Exemplo 1. fbsql_tablename() example

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_tablename($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>

Anterior | Principal | Próxima
fbsql_stop_db | Acima | fbsql_username


fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_username -- Get or set the host user used with a connection

Description

string fbsql_username ( resource link_identifier [, string username])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fbsql_tablename | Acima | fbsql_warnings


fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warnings -- Enable or disable FrontBase warnings

Description

bool fbsql_warnings ( [bool OnOff])

Returns TRUE if warnings is turned on otherwise FALSE.

fbsql_warnings() enables or disables FrontBase warnings.

Anterior | Principal | Próxima
fbsql_username | Acima | filePro


filePro

Manual do PHP
Anterior Próxima

XXIX. filePro

Introdução

Estes funções permitem acesso somente para leitura em dados guardados em um banco de dados filePro.

filePro é uma marca registrada de fP Technologies, Inc. Você pode encontrar maiores informações sobre o filePro em http://www.fptech.com/.

Instalação

O suporte ao filePro no PHP não esta ativado por padrão. Para ativar o suporte filePro somente para leitura embutido, você precisa usar a opção de configuração --enable-filepro quando estiver compilando o PHP.

Índice
filepro_fieldcount -- Conta quantos campos tem em um banco de dados filePro
filepro_fieldname -- Obtém o nome de um campo
filepro_fieldtype -- Obtém o tipo de um campo
filepro_fieldwidth -- Obtém a largura de um campo
filepro_retrieve -- Obtém dados de um banco de dados filePro
filepro_rowcount -- Conta o número de linhas em um banco de dados filePro
filepro -- Lê e verifica o arquivo de mapa

Anterior | Principal | Próxima
fbsql_warnings | Acima | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4 , PHP 5)

filepro_fieldcount -- Conta quantos campos tem em um banco de dados filePro

Descrição

int filepro_fieldcount ( void )

Retorna o número de campos (colunas) em um banco de dados filePro aberto.

Veja também filepro().

Anterior | Principal | Próxima
filePro | Acima | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4 , PHP 5)

filepro_fieldname -- Obtém o nome de um campo

Descrição

string filepro_fieldname ( int field_number)

Retorna o nome do campo correspondente a field_number.

Anterior | Principal | Próxima
filepro_fieldcount | Acima | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4 , PHP 5)

filepro_fieldtype -- Obtém o tipo de um campo

Descrição

string filepro_fieldtype ( int field_number)

Retorna o tipo de campo correspondente a field_number.

Anterior | Principal | Próxima
filepro_fieldname | Acima | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4 , PHP 5)

filepro_fieldwidth -- Obtém a largura de um campo

Descrição

int filepro_fieldwidth ( int field_number)

Retorna a largura do campo correspondente a field_number.

Anterior | Principal | Próxima
filepro_fieldtype | Acima | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4 , PHP 5)

filepro_retrieve -- Obtém dados de um banco de dados filePro

Descrição

string filepro_retrieve ( int row_number, int field_number)

Retorna dados do local especificado no banco de dados. O parâmetro row_number deve ser entre zero e o total de linhas menos um (0..filepro_rowcount() - 1). Da mesma maneira, field_number aceita valores entre zero e o total de campos menos um (0..filepro_fieldcount() - 1).

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Anterior | Principal | Próxima
filepro_fieldwidth | Acima | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4 , PHP 5)

filepro_rowcount -- Conta o número de linhas em um banco de dados filePro

Descrição

int filepro_rowcount ( void )

Retorna o número de linhas no banco de dados filePro aberto.

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Veja também filepro().

Anterior | Principal | Próxima
filepro_retrieve | Acima | filepro


filepro

(PHP 3, PHP 4 , PHP 5)

filepro -- Lê e verifica o arquivo de mapa

Descrição

bool filepro ( string directory)

Esta lê e verifica o arquivo de mapa, que guarda a quantidade de campos e informações.

Não é feita nenhuma trava, então você deve evitar modificar seu banco de dados filePro enquanto ele esta aberto no PHP.

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Anterior | Principal | Próxima
filepro_rowcount | Acima | Filesystem (Sistema de arquivos)


Filesystem (Sistema de arquivos)

Manual do PHP
Anterior Próxima

XXX. Filesystem (Sistema de arquivos)

Introdução

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do Filesystem e Streams

Nome | Padrão | Alterável
allow_url_fopen | "1" | PHP_INI_ALL
user_agent | NULL | PHP_INI_ALL
default_socket_timeout | "60" | PHP_INI_ALL
from | NULL | ??
auto_detect_line_endings | "Off" | PHP_INI_ALL

Descrição resumida das diretivas de configuração.

allow_url_fopen boolean

Esta opção ativa o dispositivo URL fopen wrappers que permite o acesso a objetos URL como arquivos. São disponibilizados por padrão wrappers para acesso de arquivos remotos utilizando os protocolos FTP ou HTTP, e algumas estensões como a zlib podem registar wrappers adicionais.

Nota: Esta opção foi introduzida imediatamente antes da liberação da versão 4.0.3. Até essa versão e incluindo a 4.0.3, você somente podia desabilitar este recurso na compilação, usando a opção --disable-url-fopen-wrapper.

Atenção

Nas versões Windows anterioes a PHP 4.3, as funções seguintes não
suportavam acesso de arquivos remotos: include(),
include_once(), require(),
require_once() e as funções imagecreatefromXXX
da extensão Referência XLI, Image Functions.

user_agent string

Define o user agent que o PHP irá enviar.

default_socket_timeout integer

Timeout padrão (em segundos) para streams baseados em socket.

Nota: Esta opção de configuração foi incluida no PHP 4.3.

from="joe@example.com" string

Define a senha do FTP anonimo (seu endereço de e-mail).

auto_detect_line_endings boolean

Quando ativo, o PHP irá examinar os dados lidos por fgets() e file() para verificar se está sendo utilizado a convensão de fim de linha Unix, MS-DOS ou Macintosh.

Isto ativa a interoperabilidade do PHP com sistemas Macintosh, mas seu padrão é Off, porque isso causa uma pequena perda de performance na detecção da convenção de fim de linha num primeiro momento e porque as pessoas que utilizam o fim de linha como separadores de itens sob sistemas Unix podem experimentar problemas de falta de compatibilidade.

Nota: Esta opção de configuração foi introduzida no PHP 4.3.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

GLOB_BRACE (integer)

GLOB_ONLYDIR (integer)

GLOB_MARK (integer)

GLOB_NOSORT (integer)

GLOB_NOCHECK (integer)

GLOB_NOESCAPE (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

FILE_USE_INCLUDE_PATH (integer)

FILE_APPEND (integer)

FILE_IGNORE_NEW_LINES (integer)

FILE_SKIP_EMPTY_LINES (integer)

Veja Também

Para funções relacionadas, veja também as seções Deritório e Execução de Programas.

Para uma lista e descrição dos vários wrappers URL que podem ser utilizados como arquivos remotos, veja em Apêndice J.

Índice
basename -- Retorna a parte nome do arquivo do caminho/path
chgrp -- Modifica o grupo do arquivo
chmod -- Modifica as permissões do arquivo
chown -- Modifica o dono do arquivo
clearstatcache -- Limpa as informações em cache de arquivos
copy -- Copia arquivo
delete -- Veja unlink() ou unset()
dirname -- Retorna o componente diretório de um caminho/path
disk_free_space -- Retorna o espaço disponivel no diretório
disk_total_space -- Retorna o tamanho total do diretório
diskfreespace -- Sinônimo de disk_free_space()
fclose -- Fecha um ponteiro de arquivo aberto
feof -- Testa pelo fim-de-arquivo (eof) em um ponteiro de arquivo
fflush -- Força a liberação do buffer para um arquivo
fgetc -- Le um caracter do ponteiro de arquivo
fgetcsv -- Le uma linha do ponteiro de arquivos e a interpreta por campos CSV
fgets -- Le uma linha de um ponteiro de arquivo
fgetss -- Ler uma linha de um ponteiro de arquivo e retira as tags HTML
file_exists -- Checa se um arquivo ou diretório existe
file_get_contents -- Le todo o conteúdo de um arquivo para uma string
file_put_contents -- Write a string to a file
file -- Le um arquivo inteiro para um array
fileatime -- Obtém o último horário de acesso do arquivo
filectime -- Ler o tempo de modificação do inode do arquivo
filegroup -- Lê o grupo do arquivo
fileinode -- Lê o inode do arquivo
filemtime -- Le o tempo de modificação do arquivo
fileowner -- Lê o dono (owner) do arquivo
fileperms -- Lê as permissões do arquivo
filesize -- Lê o tamanho do arquivo
filetype -- Lê o tipo de arquivo (file type)
flock -- Monitor de travamento de arquivos portátil
fnmatch -- Verifica se um nome de arquivo bate com padrão (wildcards)
fopen -- Abri um arquivo ou uma URL
fpassthru -- Imprime todo os dados restantes de um ponteiro de arquivo
fputs -- Sinônimo de fwrite()
fread -- Leitura binary-safe de arquivo
fscanf -- Interpreta a leitura de um arquivo de acordo com um formato
fseek -- Procura (seeks) em um ponteiro de arquivo
fstat -- Lê a informação sobre um arquivo usando um ponteiro de arquivo aberto
ftell -- Retorna a posição de leitura/gravação do ponteiro do arquivo
ftruncate -- Corta (trunca) um arquivo para um tamanho especificado
fwrite -- Gravação em arquivos binary-safe
glob -- Localiza diretórios/arquivos que combinem com o padrão
is_dir -- Diz se o caminho é um diretório
is_executable -- Diz se um arquivo é executável
is_file -- Diz se o arquivo é um arquivo comum (não é diretório)
is_link -- Diz se o arquivo é um link simbólico (symbolic link)
is_readable -- Diz se o arquivo é legivel (readable)
is_uploaded_file -- Diz se o arquivo foi uploaded via HTTP POST
is_writable -- Diz se pode-se escrever para o arquivo (writable)
is_writeable -- Esta é uma função sinônima (alias) de is_writable()
link -- Criando um hard link
linkinfo -- Ler informações sobre um link
lstat -- Obtem informações sobre um arquivo ou link simbólico
mkdir -- Criar um diretório
move_uploaded_file -- Move um arquivo carregado para uma nova localização
parse_ini_file -- Interpreta um arquivo de configuração
pathinfo -- Retorna informação sobre o path de um arquivo
pclose -- Fecha um processo de um ponteiro de arquivo
popen -- Abre um processo como ponteiro de arquivo
readfile -- Lê e exibe o conteúdo de um arquivo
readlink -- Retornar o alvo de um link simbólico
realpath -- Retorna o path absoluto canonicalizado
rename -- Renomear um arquivo
rewind -- Reinicializa a posição do ponteiro de arquivos para o início
rmdir -- Remove um diretório
set_file_buffer -- Sinônimo de stream_set_write_buffer()
stat -- Obtem informações sobre um arquivo
symlink -- Cria um link simbólico
tempnam -- Cria um nome de arquivo único
tmpfile -- Cria um arquivo temporário
touch -- Muda o tempo de modificação do arquivo
umask -- Modificar a umask atual
unlink -- Apaga um arquivo

Anterior | Principal | Próxima
filepro | Acima | basename


basename

(PHP 3, PHP 4 , PHP 5)

basename -- Retorna a parte nome do arquivo do caminho/path

Descrição

string basename ( string path [, string sufixo])

Dado uma string contendo um caminho para um arquivo, essa função irá retornar o nome base do arquivo. Se o nome do arquivo termina com o sufixo, este também será retirado.

No Windows, tanto a barra (/) quanto a barra invertida (\) são usadas como caracter de separacao do caminho. Em outros ambientes, somente a barra (/).

Exemplo 1. exemplo do basename()

<?php
$caminho = "/home/httpd/html/index.php";
$arquivo = basename ($caminho);        // $arquivo = "index.php"
$arquivo = basename ($caminho,".php"); // $arquivo = "index"
?>

Nota: O parametro sufixo foi adicionado no PHP 4.1.0.

Veja também: dirname()

Anterior | Principal | Próxima
Filesystem (Sistema de arquivos) | Acima | chgrp


chgrp

(PHP 3, PHP 4 , PHP 5)

chgrp -- Modifica o grupo do arquivo

Descrição

bool chgrp ( string arquivo, mixed grupo)

Tenta modificar o grupo do arquivo para o grupo (nome ou número). Somente o superusuário pode mudar o grupo de um arquivo arbitrário; outros usuários somente podem mudar o grupo de um arquivo para qualquer grupo qual o usuário pertença.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também chown() e chmod().

Anterior | Principal | Próxima
basename | Acima | chmod


chmod

(PHP 3, PHP 4 , PHP 5)

chmod -- Modifica as permissões do arquivo

Descrição

bool chmod ( string arquivo, int modo)

Tenta mudar as permissões do arquivo especificado por arquivo para o dado em modo.

Note que modo não é necessariamente um número octal, então strings (como "g+w") não funcionarão. Para garantir que a operação seja bem sucedida é necessário prefixar modo com zero (0):

<?php
chmod ("/arquivo/diretorio", 755);   // decimal; provavelmente incorreto
chmod ("/arquivo/diretorio", "u+rwx,go+rx"); // string; incorreto
chmod ("/arquivo/diretorio", 0755);  // octal; representação correta do modo
?>

O parâmetro modo consiste em três números em octal especificando as restrições de acesso para o proprietário, grupo de usuário do proprietário e finalmente qualquer outro, nessa ordem. Cada número pode ser calculado pela adição das permissões necessárias para o alvo. O número 1 significa direito de execução, 2 significa direito de escrita, 4 significa direito de leitura. Some esses números para ter os direitos desejados. Você pode ler mais sobre os modos em sistemas UNIX com 'man 1 chmod' e 'man 2 chmod'.

<?php
// Escrita e leitura para o proprietario, nada ninguem mais
chmod ("/somedir/somefile", 0600);

// Escrita e leitura para o proprietario, leitura para todos os outros
chmod ("/somedir/somefile", 0644);

// Tudo para o proprietario, leitura e execucao para os outros
chmod ("/somedir/somefile", 0755);

// Tudo para o proprietario, leitura e execucao para o grupo do prop
chmod ("/somedir/somefile", 0750);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: O usuário atual é aquela sob o qual o PHP é executado. Provavelmente não é o mesmo usuário que você normalmente usa quande acessa uma conta shell ou FTP.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também chown() e chgrp().

Anterior | Principal | Próxima
chgrp | Acima | chown


chown

(PHP 3, PHP 4 , PHP 5)

chown -- Modifica o dono do arquivo

Descrição

bool chown ( string arquivo, mixed usuario)

Tenta modificar o dono do arquivo para o usuario (nome ou número). Somente o superusuário pode modificar o dono de um arquivo.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também chmod().

Anterior | Principal | Próxima
chmod | Acima | clearstatcache


clearstatcache

(PHP 3, PHP 4 , PHP 5)

clearstatcache -- Limpa as informações em cache de arquivos

Descrição

void clearstatcache ( void )

Quando você chama stat(), lstat() ou qualquer uma das funções afetadas (listadas abaixo), o PHP mantém em cache as informações que essas funções retornam para melhoria de performance. Entretanto, em certos casos você pode precisar limpar as informações cacheadas. Por exemplo, se um mesmo arquivo é verificado várias vezes em um único script, e esse arquivo corre o risco de ser apagado ou modificado durante a operação do script, você precisa limpar os dados do cache. Nesses casos, você pode utilizar a função clearstatcache() para limpar todas as informações que o PHP mantém sobre um arquivo.

Nota: Esta função guarda infomações sobre arquivos específicos, de forma que você somente precisa chamar clearstatcache() se você estiver realizando várias operações sobre o mesmo arquivo e necessita que a informação sobre esse arquivo em particular não seja cacheada.

As funções afetadas são stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), e
fileperms().

Anterior | Principal | Próxima
chown | Acima | copy


copy

(PHP 3, PHP 4 , PHP 5)

copy -- Copia arquivo

Descrição

bool copy ( string origem, string destino)

Faz uma cópia do arquivo origem para destino. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. exemplo do copy()

<?php
if (!copy($arquivo, $arquivo.'.bak')) {
    print ("erro copiando arquivo $arquivo...<br>\n");
}
?>

Nota: A partir do PHP 4.0.3, ambos origem e destino podem ser URLs se "fopen wrappers" estiver ativo. Veja fopen() para mais detalhes. Se dest é uma URL, a operação de cópia pode falhar se o wrapper não suportar a sobrescrita de arquivos existentes.

Atenção

Se o arquivo destino já existir, ele será sobrescrito.

See also move_uploaded_file(), rename(), e a seção do manual sobre manipulação de uploads de arquivos.

Anterior | Principal | Próxima
clearstatcache | Acima | delete


delete

(no version information, might be only in CVS)

delete -- Veja unlink() ou unset()

Descrição

void delete ( string file)

Esta é uma seção falsa do manual, criada para satisfazer as pessoas que estão procurando por unlink() ou unset() no lugar errado.

Veja também: unlink() para deletar arquivos, unset() para apagar váriaveis.

Anterior | Principal | Próxima
copy | Acima | dirname


dirname

(PHP 3, PHP 4 , PHP 5)

dirname -- Retorna o componente diretório de um caminho/path

Descrição

string dirname ( string path)

Dada uma string contendo um caminho para um arquivo, esta função irá retornar o nome do diretório.

No Windows, tanto barra (/) quanto a barra invertida (\) são usadas como caracter separador no path. Em outros ambientes é utilizado a barra (/).

Exemplo 1. exemplo do dirname()

<?php
$path = "/etc/passwd";
$file = dirname ($path); // $file = "/etc"
?>

Nota: A partir do PHP 4.0.3, dirname() foi modificada para ser conformante com o POSIX. Essencialemente, isto significa que se não há barras no path, um ponto ('.') é retornado, indicando o diretório atual. Antes, a string retornada era o path com todos os /componente removidos. Ou seja, você receberá uma barra ou ponto de dirname() em situações onde a funcionalidade anterior devolveria uma string vazia.

Veja também basename(), pathinfo() e realpath().

Anterior | Principal | Próxima
delete | Acima | disk_free_space


disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_space -- Retorna o espaço disponivel no diretório

Descrição

float disk_free_space ( string diretorio)

Dado uma string contendo um diretório, esta função retornará o numero de bytes disponíveis no sistema de arquivos ou partição de disco.

Exemplo 1. exemplo de disk_free_space()

<?php
// $df contém o número de bytes disponível em "/"
$df = disk_free_space("/");
?>

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também disk_total_space()

Anterior | Principal | Próxima
dirname | Acima | disk_total_space


disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_space -- Retorna o tamanho total do diretório

Descrição

float disk_total_space ( string diretorio)

Dado uma string contendo um diretório, esta função retornará o numero total de bytes do sistema de arquivos ou a partição de disco.

Exemplo 1. disk_total_space() example

<?php
// $df contém o numero total de bytes disponíveis em "/"
$df = disk_total_space("/");
?>

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também disk_free_space()

Anterior | Principal | Próxima
disk_free_space | Acima | diskfreespace


diskfreespace

diskfreespace -- Sinônimo de disk_free_space()

Descrição

Esta função é um apelido para disk_free_space().

Anterior | Principal | Próxima
disk_total_space | Acima | fclose


fclose

(PHP 3, PHP 4 , PHP 5)

fclose -- Fecha um ponteiro de arquivo aberto

Descrição

bool fclose ( int handle)

O arquivo apontado por handle é fechado.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

O ponteiro para o arquivo tem que ser válido e tem que apontar para um arquivo aberto por fopen() ou fsockopen().

Exemplo 1. Exemplo fclose()

<?php

  $handle = fopen('qualquerarquivo.txt', 'r');

  fclose($handle);

?>

Anterior | Principal | Próxima
diskfreespace | Acima | feof


feof

(PHP 3, PHP 4 , PHP 5)

feof -- Testa pelo fim-de-arquivo (eof) em um ponteiro de arquivo

Descrição

bool feof ( resource handle)

Retorna TRUE se o ponteiro estiver no fim do arquivo (eof) ou um erro ocorrer. Caso contrário retorna FALSE.

O ponteiro para o arquivo tem que ser válido e tem que apontar para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen().

Anterior | Principal | Próxima
fclose | Acima | fflush


fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush -- Força a liberação do buffer para um arquivo

Descrição

bool fflush ( resource handle)

Esta função força a escrita de toda saída cacheada no buffer do arquivo apontado pelo recurso handle. Retorna TRUE se obtiver sucesso e caso contrário FALSE.

O ponteiro de arquivo tem que ser válido e apontar para um arquivo que foi aberto com sucesso por fopen(), popen() ou fsockopen().

Anterior | Principal | Próxima
feof | Acima | fgetc


fgetc

(PHP 3, PHP 4 , PHP 5)

fgetc -- Le um caracter do ponteiro de arquivo

Descrição

string fgetc ( resource handle)

Retorna uma string contendo somente um caracter lido do arquivo apontado por handle. Retorna FALSE no fim do arquivo (eof).

O ponteiro de arquivo tem que ser válido e apontar para um arquivo aberto com sucesso por fopen(), popen(), ou fsockopen().

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Exemplo 1. Um exemplo de fgetc()

<?php
$fp = fopen('algumarquivo.txt', 'r');
if (!$fp) {
    echo 'Não é possivel abrir algumarquivo.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Nota: Esta função é compatível com dados binários

Veja também fread(), fopen(),
popen(), fsockopen() e
fgets().

Anterior | Principal | Próxima
fflush | Acima | fgetcsv


fgetcsv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

fgetcsv -- Le uma linha do ponteiro de arquivos e a interpreta por campos CSV

Descrição

array fgetcsv ( resource handle, int length [, string delimiter [, string enclosure]])

Similar à fgets() exceto que fgetcsv() interpreta a linha que lê por campos no formato CSV e retorna um vetor (array) contendo os campos lidos. O terceiro parâmetro delimiter (opcional) tem como padrão a vígula, e o também opcional enclosure tem como padrão aspas. Tanto delimiter como enclosure só podem ter um caracter. Se qualquer um deles tiver mais que um caracter, somente o primeiro deles serão utilizados.

Nota: O parâmetro enclosure foi acrescentado no PHP 4.3.0.

O parâmetro handle tem que ser um ponteiro de arquivo válido para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen().

length tem que ser maior do que a maior linha a ser encontrada no arquivo CSV (incluindo caracteres de terminação de linha).

fgetcsv() retorna FALSE ao encontrar um erro, incluindo fim de arquivo (eof).

Nota: Uma linha em branco em um arquivo CSV será retornada como um array contendo um único campo nulo (null), e não será tratado como um erro.

Exemplo 1. Lê e imprime todo o conteúdo de um arquivo CSV

<?php
$row = 1;
$handle = fopen ("test.csv","r");
while ($data = fgetcsv ($handle, 1000, ",")) {
    $num = count ($data);
    print "<p> $num campos na linha $row: <br>";
    $row++;
    for ($c=0; $c < $num; $c++) {
        print $data[$c] . "<br>";
    }
}
fclose ($handle);
?>

Veja também explode(), file() e pack()

Anterior | Principal | Próxima
fgetc | Acima | fgets


fgets

(PHP 3, PHP 4 , PHP 5)

fgets -- Le uma linha de um ponteiro de arquivo

Descrição

string fgets ( resource handle [, int length])

Retorna uma string com até length - 1 bytes lidos do arquivo apontado por handle. A leitura acaba quando length - 1 bytes foram lidos, encontra-se um fim de linha (newline) (que é incluido no valor retornado) ou no fim de arquivo (EOF) (o que acontecer primeiro). Se nenhum length for informado, o default é 1Kb, ou 1024 bytes.

Se um erro ocorrer, retorna FALSE.

Equívocos comuns:

Pessoas acostumadas a semântica do fgets em 'C' devem notar a diferenca em como o fim do arquivo (EOF) é retornado.

O ponteiro para o arquivo deve ser válido e deve apontar para um
arquivo aberto com sucesso por fopen(),
popen() ou
fsockopen().

Um simples exemplo segue:

Exemplo 1. Lendo um arquivo linha a linha

<?php
$handle = fopen ("/tmp/arquivodeentrada.txt", "r");
while (!feof ($handle)) {
    $buffer = fgets($handle, 4096);
    echo $buffer;
}
fclose ($handle);
?>

Nota: O parâmetro length se tornou opcional a partir do PHP 4.2.0, e se omitido, tem default para 1024 bytes para o comprimento da linha. A partir do PHP 4.3, omitindo length fará continuar a leitura a partir do stream até encontrar o fim da linha. Se a maioria das linhas no arquivo forem todar maiores que 8 Kb, haverá mais eficiência de recursos se seus scripts informarem o comprimento máximo das linhas.

Nota: Esta função é binary safe a partir do PHP 4.3. Versões anteriores não são seguras para dados binários.

Nota: Se você está tendo problemas com o PHP no reconhecimento do final de linha quando criando ou lendo arquivos num computador Macintosh, você pode habilitar a opção auto_detect_line_endings.

Veja também fread(),
fgetc(),
stream_get_line(),
fopen(),
popen(),
fsockopen() e
socket_set_timeout().

Anterior | Principal | Próxima
fgetcsv | Acima | fgetss


fgetss

(PHP 3, PHP 4 , PHP 5)

fgetss -- Ler uma linha de um ponteiro de arquivo e retira as tags HTML

Descrição

string fgetss ( resource handle, int length [, string allowable_tags])

Idêntico a fgets(), exceto que fgetss tenta retirar qualquer tag HTML ou PHP do texto que ele lê.

Você pode utilizar o terceiro parâmetro opcional para especificar quais tags não devem ser retiradas.

Nota: allowable_tags foi adicionado no PHP 3.0.13, PHP 4.0.0.

Nota: Se você está tendo problemas com o PHP no reconhecimento do final de linha quando criando ou lendo arquivos num computador Macintosh, você pode habilitar a opção auto_detect_line_endings.

Veja também fgets(), fopen(),
fsockopen(), popen() e
strip_tags().

Anterior | Principal | Próxima
fgets | Acima | file_exists


file_exists

(PHP 3, PHP 4 , PHP 5)

file_exists -- Checa se um arquivo ou diretório existe

Descrição

bool file_exists ( string nomedoarquivo)

Retorna TRUE se o arquivo ou diretório expecificado por nomedoarquivo existe; FALSE caso contrário.

No Windows, use //computername/share/filename ou \\\\computername\share\filename para checar arquivos em compartilhamentos de rede.

Exemplo 1. Testando se um arquivo existe

<?php
$filename = '/caminho/para/qualquer.txt';

if (file_exists($filename)) {
    print "O arquivo $filename existe";
} else {
    print "O arquivo $filename não existe";
}
?>

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_readable(), is_writable(), is_file() e file().

Anterior | Principal | Próxima
fgetss | Acima | file_get_contents


file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents -- Le todo o conteúdo de um arquivo para uma string

Descrição

string file_get_contents ( string filename [, int use_include_path [, resource context]])

Idêntico a file(), exceto que file_get_contents() retorna o arquivo em uma string.

file_get_contents() é o método preferível para ser ler o conteúdo de um arquivo em uma string. Ela usa tecnicas de mapeamento de memório suportadas em seu sistema operacional para melhorar a performance.

Nota: Esta função é compatível com dados binários

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Nota: O suporte ao contexto foi acrescentado no PHP 5.0.0.

Veja também: fgets(), file(),
fread(), include()
e readfile().

Anterior | Principal | Próxima
file_exists | Acima | file_put_contents


file_put_contents

(PHP 5)

file_put_contents -- Write a string to a file

Description

int file_put_contents ( string filename, string data [, int flags [, resource context]])

Identical to calling fopen(), fwrite(), and fclose() successively. The function returns the amount of bytes that were written to the file.

flags can take FILE_USE_INCLUDE_PATH and/or FILE_APPEND, however the FILE_USE_INCLUDE_PATH option should be used with caution.

Nota: Esta função é compatível com dados binários

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

See also:
fopen(),
fwrite(),
fclose(), and
file_get_contents().

Anterior | Principal | Próxima
file_get_contents | Acima | file


file

(PHP 3, PHP 4 , PHP 5)

file -- Le um arquivo inteiro para um array

Descrição

array file ( string filename [, int use_include_path [, int use_include_path]])

Idêntico a readfile(), exceto que file() retorna o arquivo em um array. Cada elemento do array corresponde a uma linha no arquivo, inclusive com o caracter de nova linha. Em caso de falha, file() retorna FALSE.

Você pode usar o parâmetro opcional use_include_path como "1", se você deseja procurar o arquivo no include_path também.

<?php
// Le um arquivo em um array. Nesse exemplo você pode obter via HTTP para obter
// o código fonte HTML de uma URL.
$lines = file ('http://www.exemplo.com/');

// Roda através do array, mostrando o fonte HTML com numeração de linhas.
foreach ($lines as $line_num => $line) {
    echo "Linha #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
}

// Outro exemplo, onde obtemos a página web inteira como uma string. Veja também file_get_contents().
$html = implode ('', file ('http://www.exemplo.com/'));
?>

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Nota: Cada linha do array resultante terá os caracteres de fim de linha, então você precisa utilizar trim() se não quiser esses caracteres presentes.

Nota: Se você está tendo problemas com o PHP no reconhecimento do final de linha quando criando ou lendo arquivos num computador Macintosh, você pode habilitar a opção auto_detect_line_endings.

Nota: A partir do PHP 4.3.0, você pode utilizar file_get_contents() para retornar o conteúdo de um arquivo como uma string.

No PHP 4.3.0 file() se tornou segura para arquivos binários.

Nota: O suporte ao contexto foi acrescentado no PHP 5.0.0

Veja também readfile(),
fopen(), fsockopen(),
popen(), file_get_contents()
e include().

Anterior | Principal | Próxima
file_put_contents | Acima | fileatime


fileatime

(PHP 3, PHP 4 , PHP 5)

fileatime -- Obtém o último horário de acesso do arquivo

Descrição

int fileatime ( string nomedoarquivo)

Retorna a data e hora em que o arquivo foi acessado pela última vez, ou FALSE em caso de erro. O tempo que é retornado é um timestamp UNIX.

Nota: O atime do arquivo supostamente deve mudar quando os blocos de informação do arquivo forem lidos. Isto pode ser caro em termos de performance quando uma aplicação freqüentemente acessa um número muito grande de arquivos ou diretórios. Alguns filesystems Unix podem ser montados com updates dos atimes desabilitados para aumentar a performance destas aplicações; USENET news spools é um exemplo comum. Nestes filesystems esta função é inútil.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Exemplo 1. Exemplo de fileatime()

<?php

// Exibe algo como: arquivo.txt teve o ultimo acesso em: December 29 2002 22:16:23.

$filename = 'arquivo.txt';
if (file_exists($filename)) {
    echo "$filename teve o ultimo acesso em: " . date ("F d Y H:i:s.", fileatime($filename));
}

?>

Veja também filemtime(),
fileinode() e
date().

Anterior | Principal | Próxima
file | Acima | filectime


filectime

(PHP 3, PHP 4 , PHP 5)

filectime -- Ler o tempo de modificação do inode do arquivo

Descrição

int filectime ( string nomedoarquivo)

Retorna o tempo em que o arquivo foi modificado pela última vez, ou FALSE em caso de erro. O tempo é retornado como um timestamp Unix.

Nota: Na maior parte dos filesystems Unix, um arquivo é considerado modificado quando a informação do inode é modificada; isto é, quando as permissões, dono (owner), grupo (group), ou outro metadado do inode é modificado. Veja também filemtime() (o que é o que você deseja usar quando criando rodapés com informações sobre última vez que o arquivo foi modificado em web pages) e fileatime().

Note também que em alguns textos Unix o ctime do arquivo é referido como sendo o horário de criação do arquivo. Isto é errado. Não há tempo de criação de arquivos Unix na maior parte dos filesystems Unix.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Exemplo 1. Exemplo de fileatime()

<?php

// Exibe algo como: arquivo.txt foi modificado em: December 29 2002 22:16:23.

$filename = 'arquivo.txt';
if (file_exists($filename)) {
    echo "$filename foi modificado em: " . date ("F d Y H:i:s.", filectime($filename));
}

?>

Veja também filemtime()

Anterior | Principal | Próxima
fileatime | Acima | filegroup


filegroup

(PHP 3, PHP 4 , PHP 5)

filegroup -- Lê o grupo do arquivo

Descrição

int filegroup ( string nomedoarquivo)

Retorna o group ID do arquivo, ou FALSE no caso de um erro. O group ID é retornado em um formato numérico. Use posix_getgrgid() para resolver para o nome do grupo. Em caso de falha, FALSE é retornado com um erro no nível E_WARNING.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

veja também fileowner() e safe_mode_gid.

Anterior | Principal | Próxima
filectime | Acima | fileinode


fileinode

(PHP 3, PHP 4 , PHP 5)

fileinode -- Lê o inode do arquivo

Descrição

int fileinode ( string nomedoarquivo)

Retorna o número do inode do arquivo, ou FALSE em caso de erro.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também stat()

Anterior | Principal | Próxima
filegroup | Acima | filemtime


filemtime

(PHP 3, PHP 4 , PHP 5)

filemtime -- Le o tempo de modificação do arquivo

Descrição

int filemtime ( string nomedoarquivo)

Retorna a data/hora em que o arquivo foi modificado pela última vez, ou FALSE em caso de erro. O tempo é retornado como um timestamp Unix, o formato que função date().

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Nota: Esta função retorna o tempo quando os blocos de informação do arquivo são escritos, isto é, o tempo de quando o conteúdo do arquivo foi mudado.

Exemplo 1. Exemplo filemtime()

<?php
// exibe algo como: arquivo.txt foi modificado em December 29 2002 22:16:23.

$filename = 'arquivo.txt';
if (file_exists($filename)) {
    echo "$filename foi modificado em " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Veja também filectime(), stat(), touch() e getlastmod().

Anterior | Principal | Próxima
fileinode | Acima | fileowner


fileowner

(PHP 3, PHP 4 , PHP 5)

fileowner -- Lê o dono (owner) do arquivo

Descrição

int fileowner ( string nomedoarquivo)

Retorna o ID do usuário(user ID) do dono (owner) do arquivo, ou FALSE caso um erro. O ID do usuário é retornado no formato numérico, use posix_getpwuid() para obter o username do usuário.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também stat()

Anterior | Principal | Próxima
filemtime | Acima | fileperms


fileperms

(PHP 3, PHP 4 , PHP 5)

fileperms -- Lê as permissões do arquivo

Descrição

int fileperms ( string filename)

Retorna as permissões do arquivo, ou FALSE em caso de erro.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_readable() e stat()

Anterior | Principal | Próxima
fileowner | Acima | filesize


filesize

(PHP 3, PHP 4 , PHP 5)

filesize -- Lê o tamanho do arquivo

Descrição

int filesize ( string nomedoarquivo)

Retorna o tamanho do arquivo, ou FALSE em caso de erro.

Nota: Como o tipo inteiro do PHP é sinalizado e muitas plataformas utilizam inteiros de 32 bits, filesize() pode retornar resultados inesperados para arquivos que sejam maiores que 2 Gb. Para arquivos entre 2 Gb e 4 Gb você pode resolver esse problema utilizando sprintf("%u", filesize($file)).

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Exemplo 1. Exemplo de filesize()

<?php

// Exibe algo como: arquivo.txt: 1024 bytes

$filename = 'arquivo.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

Veja também file_exists()

Anterior | Principal | Próxima
fileperms | Acima | filetype


filetype

(PHP 3, PHP 4 , PHP 5)

filetype -- Lê o tipo de arquivo (file type)

Descrição

string filetype ( string nomedoarquivo)

Retorna o tipo do arquivo (file type). Valores possiveis são fifo, char, dir, block, link, file e unknown (desconhecido).

Retorna FALSE se um erro ocorrer. filetype() também produzirá um erro E_NOTICE se a chamada a stat falhar ou se o tipo de arquivo for desconhecido.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Exemplo 1. Exemplo de filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Veja também is_dir(), is_file(),
is_link(), file_exists(),
stat() e mime_content_type().

Anterior | Principal | Próxima
filesize | Acima | flock


flock

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

flock -- Monitor de travamento de arquivos portátil

Descrição

bool flock ( int handle, int operation [, int &wouldblock])

O PHP suporta uma maneira portável de lock arquivos inteiros em uma advisory way (que significa que todos os programas acessando tem que usar o mesmo tipo de travamento ou não irá funcionar).

flock() opera em fp, que tem que ser um ponteiro de arquivo aberto com sucesso. operacao é um dos seguintes valores:

  • Para obter um lock compartilhado (leitura), utilize operation como LOCK_SH (ou use 1 se a versão do PHP for anterior a 4.0.1).

  • Para obter um lock exclusivo (gravação), utilize operacao como LOCK_EX (ou use 2 se a versão do PHP for anterior a 4.0.1).

  • Para retirar um lock (compartilhado ou exclusivo), uyilize operacao como LOCK_UN (ou use 3 se a versão do PHP for anterior a 4.0.1).

  • Se você não quer usar flock() para bloquear enquanto travando, adicione LOCK_NB (4 se a versão do PHP for anterior a 4.0.1) a operacao.

flock() permite a você fazer um simples modelo leitura/gravação (reader/writer) que pode ser usado em virtualmente todas as plataformas (incluindo a maior parte dos Unixes e até mesmo Windows). O terceiro argumento opcional é usado como TRUE se a lock irá bloquear (EWOULDBLOCK errno condition).

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. flock() example

<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // faca um lock exclusivo
    fwrite($fp, "escrevemos algo aqui\n");
    flock($fp, LOCK_UN); // libera o lock
} else {
    echo "Não pude travar o arquivo !";
}

fclose($fp);

?>

Nota: Uma vez que flock() requer um ponteiro de arquivo, você precisa utilizar um lock de arquivo especial para proteger i acessi a um arquivo ao qual você pretende truncar quando abrindo no modo de escrita (com um argumento "w" ou "w+" em fopen()).

Atenção

flock() não funcionará em NFS ou em qualquer outro sistema de arquivos em rede. Verifique a documentação do seu sistema operacional para mais detalhes.

Na maior parte dos sistemas operacionais flock() é implementada no nível do processo. Quando utilizando um servidor com uma API de multiprocessamento (como ISAPI), você não pode confiar em flock() para proteger os arquivos contra outros scripts PHP rodando em threads paralelas da mesma instância do servidor!

flock() não é suportado em sistemas de arquivos antiquados como a FAT e seus derivados, e sempre retornará FALSE sob esses ambientes (especialmente para usuários do Windows 98).

Anterior | Principal | Próxima
filetype | Acima | fnmatch


fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatch -- Verifica se um nome de arquivo bate com padrão (wildcards)

Descrição

array fnmatch ( string pattern, string string [, int flags])

fnmatch() checa se a string se encaixa com o pattern.

Isto é especialmente útil para nomes de arquivos, mas também pode ser utilizado em strings. O usuário comum poderá utilizar curingas shell na sua forma mais simples ('?' e '*') com fnmatch() em vez de ereg() ou preg_match() para pesquisas realizadas em código, numa forma mais inteligível para usuários não programadores.

Exemplo 1. Verificando um nome de cor com um padrão shell

<?php
if(fnmatch("*gr[ae]y", $color)) {
  echo "alguma forma da palavra gray ...";
}
?>

Veja também glob(),
ereg(),
preg_match()
e a manpage UNIX de fnmatch(3) para nomes de flags
(já que não estão documentadas aqui ).

Anterior | Principal | Próxima
flock | Acima | fopen


fopen

(PHP 3, PHP 4 , PHP 5)

fopen -- Abri um arquivo ou uma URL

Descrição

resource fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])

fopen() conecta um recurso nomeado, especificado em filename para um stream. Se filename está na forma "protocolo://...", é assumido que seja uma URL e o PHP irá procurar por um manipulador de protocolo (também conhecido como wrapper) conforme o prefixo. Se nenhum wrapper para o protocolo estiver registrado, o PHP irá emitir um alerta para ajudá-lo a rastrear problemas potenciais em seu script, presumindo que filename é um nome de arquivo comum.

Se o PHP decidir que filename se refere a um arquivo local, então ele tentará abrir o stream para aquele arquivo. Esse arquivo precisa ser acessível pelo PHP, então você precisa certificar-se que as permissões de acesso que garantam esse acesso. Se você está com safe mode ativado ou open_basedir, essas restrições serão aplicadas.

Se o PHP decidir que filename se refere a um protocolo registrado, e que o protocolo está registrado como um URL de rede, o PHP irá verificar se allow_url_fopen está ativado. Se ele estiver desligado, o PHP irá emitir um alerta e a chamada a fopen irá falhar.

Nota: A lista de protocolos registrados pode ser encontrada em Apêndice J. Alguns protocolos (também conhecidos como wrappers) suportam opções de context e/ou php.ini. Veja na página específica do protocolo em uso para uma lista de opções possíveis. (por exemplo, o valor php.ini user_agent utilizado pelo wrapper http) Para uma descrição de contexts e o parâmetro zcontext, veja Referência CV, Stream Functions.

O parâmetro mode configura o tipo de acesso que você precisa no stream. Pode ser um dos seguintes:

Tabela 1. Lista dos possíveis modos de fopen() para o parâmetro mode

mode | Descrição
'r' | Abre somente leitura; coloca o ponteiro do arquico no começo do arquivo.
'r+' | Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo.
'w' | Abre para escrita somente; coloca o ponteiro do arquivo no começo do arquivo e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo não existe, tenta criá-lo.
'w+' | Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no começo e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo não existe, tenta criá-lo.
'a' | Abre para escrita somente; coloca o ponteiro do arquivo no final. Se o arquivo não existe, tenta criá-lo.
'a+' | Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no final. Se o arquivo não existe, tenta criá-lo.
'x' | Cria e abre o arquivo para escrita somente; coloca o ponteiro no início do arquivo. Se o arquivo já existe, a chamada a fopen() irá falhar, retornando FALSE e gerando um erro nível E_WARNING. Se o arquivo não existe, tenta criá-lo. Isto é o equivalente a informar as flags O_EXCL|O_CREAT numa chamada a open(2). Esta opção é suportada no PHP 4.3.2 e posteriores, e somente funciona em arquivos locais.
'x+' | Cria e abre um arquivo para escrita e leitura; coloca o ponteiro do arquivo no início. Se o arquivo já existe, a chamada a fopen() irá falhar, retornando FALSE e gerando um erro nível E_WARNING. Se o arquivo não existe, tenta criá-lo. Isto é o equivalente a informar as flags O_EXCL|O_CREAT numa chamada a open(2). Esta opção é suportada no PHP 4.3.2 e posteriores, e somente funciona em arquivos locais.

Nota: Sistemas operacionais diferentes tem convenções de delimitação de linhas diferentes. Quando você escreve num arquivo e deseja inserir uma quebra de linha, você precisa utilizar o(s) caractere(s) de fim de linha adequado(s) em seu sistema operacional. Sistemas baseados no Unix utilizam \n como final de linha, sistemas baseados no Windows usam \r\n e sistemas baseados no Macintosh usam \r.

Se escrever caracteres de fim de linha inadequados em seus arquivos, eles deverão "parecer engraçados" quando você os abrir em outras aplicações.

O Windows oferece uma flag de tradução do modo texto ('t') que traduz, transparentemente, \n para \r\n quando trabalhando no arquivo. Em contraste, você também pode utilizar 'b' para forçar o modo binário, que não irá traduzir o arquivo. Para usar essas flags, informe ou 'b' ou 't' como o último caracter no parâmetro mode.

O modo do sistema de tradução default depende da versao da SAPI sob o qual você está usando o PHP, então é encorajado a sempre utilizar a flag apropriada por razões de portabilidade. Você deve usar o modo 't' se estiver trabalhando em arquivos texto simples e utilizar \n para delimitar as linhas em seu script, de forma que você pode esperar que eles sejam lidos em outras aplicações como o Notepad. Você deve usar 'b' em todos os outros casos.

Se você não especificar a flag 'b' quando trabalhando com arquivos binários, você pode experimentar problemas estranhos com seus dados, incluindo arquivos de imagens danificados e problemas estranhos com os caracteres \r\n.

Para portabilidade, é estremamente recomendado que você sempre utilize a flag 'b' quando abrindo arquivos com fopen().

Novamente, por portabilidade, é estremamente recomendável que você re-escreva seu código nas situações em que o modo 't' deva ser utilizado para corrigir os fim de linha, onde o modo 'b' não deva ser utilizado.

A partir do PHP 4.3.2, o modo padrão é configurado para binário em todas as plataformas que distinguem entre modo texto e binário. Se você está tendo problemas em seus scripts depois de um upgrade, tente acrescentar a flag't' como um paliativo até que você tenha tornado seus scripts portáveis como mencionado acima.

Você pode usar o terceiro pparâmetro opcional como "1", se você quiser procurar pelo arquivo no include_path também.

Se a abertura falhar, a função retorna FALSE e um erro nível E_WARNING é gerado. Você pode utilizar @ para suprimir esse alerta.

Exemplo 1. exemplo do fopen()

<?php
$handle = fopen ("/home/rasmus/file.txt", "r");
$handle = fopen ("/home/rasmus/file.gif", "wb");
$handle = fopen ("http://www.example.com/", "r");
$handle = fopen ("ftp://user:password@example.com/somefile.txt", "w");
?>

Se você está tendo problemas com a leitura e gravação para arquivos e você está usando a versão de modulo de servidor do PHP, lembre-se de que os arquivos e diretórios que você está usando precisam ser acessíveis ao processo do servidor HTTP.

Na plataforma Windows, tenha cuidado para usar uma segunda barra invertida (escape) nos caminhos de arquivos, ou usar a barra normal.

<?php
$handle = fopen ("c:\\data\\info.txt", "r");
?>

Veja também: Apêndice J,
fclose(),
fgets(),
fread(),
fwrite(),
fsockopen(),
file(),
file_exists(),
is_readable(),
stream_set_timeout() e
popen().

Anterior | Principal | Próxima
fnmatch | Acima | fpassthru


fpassthru

(PHP 3, PHP 4 , PHP 5)

fpassthru -- Imprime todo os dados restantes de um ponteiro de arquivo

Descrição

int fpassthru ( int handle)

Lê até o fim do arquivo (EOF) do ponteiro de arquivo dado e imprime os resultados para a buffer de saída.

Se um error ocorrer, a função fpassthru() retorna FALSE. No sucesso, fpassthru() retorna o número de caracteres lidos do handle e passado para a exibição.

O ponteiro de arquivo tem que ser válido e apontar para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen(). Você pode precisar chamar rewind() para reiniciar o ponteiro do arquivo para o início do arquivo caso você já tenha escrito dados no arquivo. O arquivo é fechado quando fpassthru() acaba de ler (deixando handle sem utilidade).

Se você somente quiser jogar o conteúdo de um arquivo para o buffer de saída, sem primeiro modificar ou procurar por um detalhe qualquer, você pode querer usar a função readfile(), que vai economizar uma chamada a função fopen().

Nota: Quando utilizando fpassthru() em um arquivo binário em sistemas Windows, você precisa verificar se abriu o arquivo em modo binário, acrescentando um b no modo informado na chamada de fopen().

Você é encorajado a utilizar o modo b quando trabalhando com arquivos binários, mesmo que seu sistema não requira isso, de forma que seus scripts se tornem mais portáveis.

Exemplo 1. Using fpassthru() with binary files

<?php

// abre o arquivo em modo binário
$name = ".\public\dev\img\ok.png";
$fp = fopen($name, 'rb');

// envia os headers
header("Content-Type: image/png");
header("Content-Length: ".filesize($name));

// manda a imagem e pára o script
fpassthru($fp);
exit;

?>

Veja também readfile(),
fopen(), popen() e
fsockopen()

Anterior | Principal | Próxima
fopen | Acima | fputs


fputs

fputs -- Sinônimo de fwrite()

Descrição

Esta função é um sinônimo de fwrite().

Anterior | Principal | Próxima
fpassthru | Acima | fread


fread

(PHP 3, PHP 4 , PHP 5)

fread -- Leitura binary-safe de arquivo

Descrição

string fread ( resource handle, int length)

fread() lê até length bytes do ponteiro de arquivo informado em handle. A leitura é interrompida quando length bytes foram lidos ou o fim do arquivo (eof) foi alcançado, ou (para streams de rede) quando um pacote se torna disponível, o que ocorrer primeiro.

<?php
// ler o conteúdo do arquivo para uma string
$filename = "/usr/local/qualquer.txt";
$handle = fopen ($filename, "r");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Atenção

Em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows) o arquivo tem que ser aberto com 'b' incluído como parametro na função fopen().

<?php
$filename = "c:\\files\\figura.gif";
$handle = fopen ($filename, "rb");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Atenção

Quando lendo de streams de rede ou canais (pipes), como aqueles retornados pela leitura de arquivos remotos ou de popen() e proc_open(), a leitura irá parar depois que um pacote se torna disponível. Isto significa que você deve juntar os dados em blocos como demonstrado no exemplo seguinte.

<?php
$handle = fopen ("http://www.example.com/", "rb");
$conteudo = "";
do {
    $data = fread($handle, 8192);
    if (strlen($data) == 0) {
        break;
    }
    $conteudo .= $data;
} while(true);
fclose ($handle);
?>

Nota: O exemplo acima tem uma performance melhor que o jeito comum usando while(!feof()), porque ele economiza o overhead de uma chamada de função por iteração.

Nota: Se você quer apenas pegar o conteúdo de um arquivo para uma string, utilize file_get_contents() que tem uma performance ainda melhor que o código acima.

Veja também fwrite(), fopen(),
fsockopen(), popen(),
fgets(), fgetss(),
fscanf(), file() e
fpassthru().

Anterior | Principal | Próxima
fputs | Acima | fscanf


fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf -- Interpreta a leitura de um arquivo de acordo com um formato

Descrição

mixed fscanf ( resource handle, string formato [, string var1])

A função fscanf() é semelhante a sscanf(), mas usa como entrada um arquivo associado com handle e interpreta a entrada de acordo com o formato especificado. Se somente dois parametros forem passados para a função, os valores interpretados serão retornados como um array. De outro modo, se parametros opcionais são passados a função irá retornar o número de valores utilizados. Os parametros opcionais tem que ser passados por referência.

Qualquer espaço em branco na string formato baterá quaisquer outros espaços no stream de entrada. Isto significa que qualquer tabulação \t na string formato poderá bater com um caracter de espaço simples no stream de entrada.

Exemplo 1. Exemplo do fscanf()

<?php
$handle = fopen ("users.txt","r");
while ($userinfo = fscanf ($handle, "%s\t%s\t%s\n")) {
    list ($name, $profission, $countrycode) = $userinfo;
    //... fazer algo com os valores
}
fclose($handle);
?>

Exemplo 2. users.txt

javier  argonauta        pe
hiroshi escultor         jp
robert  tradutor us
luigi   florista it

Nota: Antes do PHP 4.3.0, o maior número de caracteres lidos do arquivo era 512 (ou o primeiro \n, o que viesse primeiro). A partir do PHP 4.3.0, qualquer número longo pode ser lidos e interpretados.

Veja também fread(), fgets(),
fgetss(), sscanf(),
printf() e sprintf().

Anterior | Principal | Próxima
fread | Acima | fseek


fseek

(PHP 3, PHP 4 , PHP 5)

fseek -- Procura (seeks) em um ponteiro de arquivo

Descrição

int fseek ( int handle, int offset [, int whence])

Modifica o indicador de posição do arquivo referenciado por handle. A nova posição é obtida, medindo em bytes do início do arquivo, é obtida ao adicionar offset a posição especificada por whence, cujo valor é definido como se segue:

SEEK_SET - Use a posição igual à offset bytes.
SEEK_CUR - Use a posição para a localização atual mais offset.
SEEK_END - Use a posição para o fim do arquivo (eof) mais offset. (Para mover para uma posição anterior ao fim de arquivo, você precisa passar um valor negativo em offset.)

Se whence não é especificado é presumido ser SEEK_SET.

Em caso de sucesso, retorna 0; caso contrário, retorna -1. Note que fazer um seek depois do fim do arquivo (eof) é considerado um erro.

Exemplo 1. Exemplo de fseek()

<?php

$fp = fopen('arquivo.txt');

// lê alguns dados
$data = fgets($fp, 4096);

// move de volta para o inicio do arquivo
// o mesmo que rewind($fp);
fseek($fp, 0);

?>

Não pode ser usado em ponteiros de arquivo retornados por fopen() se for usado o formato "http://" ou "ftp://".

Nota: O argumento whence foi adicionado depois do PHP 4.0.0.

Veja também ftell() e rewind().

Anterior | Principal | Próxima
fscanf | Acima | fstat


fstat

(PHP 4 , PHP 5)

fstat -- Lê a informação sobre um arquivo usando um ponteiro de arquivo aberto

Descrição

array fstat ( resource handle)

Obtêm estatísticas do arquivo aberto pelo ponteiro de arquivos handle. Esta função é similar a função stat() exceto que ela opera em um ponteiro de arquivo aberto ao invéz de um nome de arquivo.

Retorna um array com as estatísticas de um arquivo. O formato do array é descrito em detalhes na página do manual sobre stat().

Exemplo 1. fstat() example

<?php

// abre o arquivo
$fp = fopen("/etc/passwd", "r");

// colhe as estatísticas
$fstat = fstat($fp);

// fecha o arquivo
fclose($fp);

// imprime somente a parte de índices associativos
print_r(array_slice($fstat, 13));

?>

Que imprime:

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Anterior | Principal | Próxima
fseek | Acima | ftell


ftell

(PHP 3, PHP 4 , PHP 5)

ftell -- Retorna a posição de leitura/gravação do ponteiro do arquivo

Descrição

int ftell ( resource handle)

Retorna a posição do ponteiro de arquivo referenciado por por handle. Por exemplo, retorna a posição em um stream de arquivo.

Se um error ocorrer, retorna FALSE.

O ponteiro de arquivo tem que ser válidoe apontar para um arquivo aberto com sucesso por fopen() ou popen().

Exemplo 1. Exemplo de ftell()

<?php

// abre o arquivo e lê alguns dados
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// onde nós estamos ?
echo ftell($fp); // 11

fclose($fp);

?>

Veja também fopen(), popen(), fseek() e rewind().

Anterior | Principal | Próxima
fstat | Acima | ftruncate


ftruncate

(PHP 4 , PHP 5)

ftruncate -- Corta (trunca) um arquivo para um tamanho especificado

Descrição

bool ftruncate ( resource handle, int size)

Pega o ponteiro de arquivo, handle, e corta o arquivo no tamanho, size, Retorna TRUE em caso de sucesso ou FALSE em falhas..

Nota: Antes do PHP 4.3.3, ftruncate() retornava o integer 1 em caso de sucesso, em vez do boolean TRUE.

Veja também fopen() e fseek().

Anterior | Principal | Próxima
ftell | Acima | fwrite


fwrite

(PHP 3, PHP 4 , PHP 5)

fwrite -- Gravação em arquivos binary-safe

Descrição

int fwrite ( resource handle, string string [, int comprimento])

fwrite() grava os conteúdos de string para o stream de arquivo apontado por handle. Se o argumento comprimento é dado, a gravação irá parar depois de que comprimento bytes foram escritos ou o fim da string é alcançada, o que ocorrer primeiro.

fwrite() retorna o número de bytes gravados, ou FALSE em caso de erro.

Note que se o argumento comprimento é dado, então a opção de configuração magic_quotes_runtime será ignorada e nenhuma barra será retirada do string.

Nota: Em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows) o arquivo tem que ser aberto com 'b' incluído no parametro mode do fopen().

Exemplo 1. Exemplo fwrite

<?php
$filename = 'teste.txt';
$somecontent = "Acrescentando isto no arquivo\n";

// Tendo certeza que o arquivo existe e que há permissão de escrita primeiro.
if (is_writable($filename)) {

    // Em nosso exemplo, nós estamos abrindo $filename em modo de append (acréscimo).
    // O ponteiro do arquivo estará no final dele desde
    // que será aqui que $somecontent será escrito com fwrite().
    if (!$handle = fopen($filename, 'a')) {
         print "Erro abrindo arquivo ($filename)";
         exit;
    }

    // Escrevendo $somecontent para o arquivo aberto.
    if (!fwrite($handle, $somecontent)) {
        print "Erro escrevendo no arquivo ($filename)";
        exit;
    }

    print "Sucesso: escrito ($somecontent) no arquivo ($filename)";

    fclose($);

} else {
    print "The file $filename is not writable";
}
?>

Veja também fread(), fopen(),
fsockopen(), popen() e
fputs().

Anterior | Principal | Próxima
ftruncate | Acima | glob


glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Localiza diretórios/arquivos que combinem com o padrão

Descrição

array glob ( string pattern [, int flags])

A função glob() procura por todos os caminhos de arquivos que batem com o padrão pattern de acordo com as regras do sistema operacional. Nenhuma expansão ou substituição de variável é realizada.

Retorna um array contendo os arquivos/diretórios localizados ou FALSE em caso de erro.

Flags válidas:

  • GLOB_MARK - Acrescenta um hífem a cada item retornado

  • GLOB_NOSORT - Retornam os arquivos confome eles aparecem no diretório (sem ordenação)

  • GLOB_NOCHECK - Retorna o padrão de busca se nenhum arquivo for encontrado

  • GLOB_NOESCAPE - Evita contra-barras para metacaracteres

  • GLOB_BRACE - Expande {a,b,c} para procurar 'a', 'b', ou 'c'

  • GLOB_ONLYDIR - Retorna somente diretórios que batam com o padrão (sem arquivos)

Nota: Antes do PHP 4.3.3 GLOB_ONLYDIR não estava disponível no Windows e em outros sistemas que não utilizavam a biblioteca GNU C.

Exemplo 1. Maneira conveniente de como glob() pode substituir opendir() e similares.

<?php
foreach (glob("*.txt") as $filename) {
    echo "Tamanho de $filename " . filesize($filename) . "\n";
}

/* Irá produzir algo como:

Tamanho de funclist.txt 44686
Tamanho de funcsummary.txt 267625
Tamanho de quickref.txt 137820

*/
?>

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também opendir(),
readdir(),
closedir() e fnmatch().

Anterior | Principal | Próxima
fwrite | Acima | is_dir


is_dir

(PHP 3, PHP 4 , PHP 5)

is_dir -- Diz se o caminho é um diretório

Descrição

bool is_dir ( string filename)

Retorna TRUE se o filename existe e é um diretório. Se filename for um caminho relativo, o mesmo será checado relativo ao diretório atual.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também chdir(), dir,
opendir(), is_file() e
is_link().

Anterior | Principal | Próxima
glob | Acima | is_executable


is_executable

(PHP 3, PHP 4 , PHP 5)

is_executable -- Diz se um arquivo é executável

Descrição

bool is_executable ( string nomedoarquivo)

Retorna TRUE se no nomedoarquivo existe e é executável.

is_executable() se tornou disponível no Windows a partir do PHP versão 5.0.0.

Exemplo 1. is_executable() example

<?php

$file = '/home/vincent/arquivo.sh';

if(is_executable($file)) {
    echo $file.' é executável';
} else {
    echo $file.' não é executável';
}

?>

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_file() e is_link().

Anterior | Principal | Próxima
is_dir | Acima | is_file


is_file

(PHP 3, PHP 4 , PHP 5)

is_file -- Diz se o arquivo é um arquivo comum (não é diretório)

Descrição

bool is_file ( string nomedoarquivo)

Retorna TRUE se o nome do nomedoarquivo existe e é um arquivo comum.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_dir() e is_link().

Anterior | Principal | Próxima
is_executable | Acima | is_link


is_link

(PHP 3, PHP 4 , PHP 5)

is_link -- Diz se o arquivo é um link simbólico (symbolic link)

Descrição

bool is_link ( string arquivo)

Retorna TRUE se o nomedoarquivo existe e é um link simbólico (symbolic link).

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_dir(), is_file() e readlink().

Anterior | Principal | Próxima
is_file | Acima | is_readable


is_readable

(PHP 3, PHP 4 , PHP 5)

is_readable -- Diz se o arquivo é legivel (readable)

Descrição

bool is_readable ( string nomedoarquivo)

Retorna TRUE se o nomedoraquivo existe e é legível (readable).

Lembre-se que o PHP deve estar acessando o arquivo como o mesmo usuário que o servidor de web roda (frequentemente 'nobody'). Limitações do safemode não são levadas em consideração.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_writable(),
file_exists() e
fgets().

Anterior | Principal | Próxima
is_link | Acima | is_uploaded_file


is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3, PHP 5)

is_uploaded_file -- Diz se o arquivo foi uploaded via HTTP POST

Descrição

bool is_uploaded_file ( string filename)

Retorna TRUE se o arquivo com o nome filename foi uploaded via HTTP POST. Isto é útil para ter certeza que um usuário malicioso, não está tentando confundir o script em trabalhar em arquivos que não deve estar trabalhando --- por exemplo, /etc/passwd.

Este tipo de confirmação é importante principalmente se existe alguma chance que qualquer coisa feita com os arquivos carregados poderiam revelar o seu conteúdo para o usuário, ou mesmo para outros usuários no mesmo sistema.

is_uploaded_file() está disponível somente em versões do PHP 3 depois da 3.0.16 e em versões do PHP 4 posteriores a 4.0.2. Se você ainda está utilizando uma versão anterior, você pode utilizar o seguinte código para se proteger:

Nota: O exemplo seguinte não funcionará em versões do PHP posteriores a 4.0.2. Isto depende de uma funcionalidade interna do PHP que mudou depois dessa versão.

<?php
/* Teste de arquivo carregado pelo usuário */
function is_uploaded_file($filename) {
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* Pode haver uma barra no final do php.ini... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* Utilize isto se por acaso você não tiver
 * move_uploaded_file() em versões antigas: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo "Possível ataque de carregamento de arquivo: filename '$HTTP_POST_FILES[userfile]'.";
}
?>

Veja também move_uploaded_file() e a seção Manipulando upload de arquivos para um exemplo de utilização desta função.

Anterior | Principal | Próxima
is_readable | Acima | is_writable


is_writable

(PHP 4 , PHP 5)

is_writable -- Diz se pode-se escrever para o arquivo (writable)

Descrição

bool is_writable ( string arquivo)

Retorna TRUE se o arquivo existe e pode ser escrito nele. O argumento arquivo pode ser um nome de diretório, deixando você saber se o diretório pode ser escrito (writeable).

Lembre-se que o PHP deve estar acessando o arquivo como o mesmo usuário que o servidor de web roda (frequentemente 'nobody'). Limitações do safemode não são levadas em consideração.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também is_readable(),
file_exists() e
fwrite().

Anterior | Principal | Próxima
is_uploaded_file | Acima | is_writeable


is_writeable

is_writeable -- Esta é uma função sinônima (alias) de is_writable()

Descrição

Esta é uma função sinônima (alias) para is_writable()

Anterior | Principal | Próxima
is_writable | Acima | link


link

(PHP 3, PHP 4 , PHP 5)

link -- Criando um hard link

Descrição

bool link ( string target, string link)

link() cria um hard link. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também symlink() para criar soft links, e readlink() assim como linkinfo().

Anterior | Principal | Próxima
is_writeable | Acima | linkinfo


linkinfo

(PHP 3, PHP 4 , PHP 5)

linkinfo -- Ler informações sobre um link

Descrição

int linkinfo ( string path)

linkinfo() retorna o campo st_dev da structure em C do UNIX retornado pela chamada do sistema (system call) lstat. Esta função é usada para verificar se um link (apontado por path) realmente existe (usando o mesmo metodo que a macro S_ISLNK definida em stat.h). Retorna 0 ou FALSE em caso de erro.

Exemplo 1. Exemplo de linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Veja também symlink(), link(), e readlink().

Anterior | Principal | Próxima
link | Acima | lstat


lstat

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

lstat -- Obtem informações sobre um arquivo ou link simbólico

Descrição

array lstat ( string filename)

Pega as estatísticas do arquivo ou link simbólico com o nome de filename. Esta função é identica a stat() exceto que se o parâmetro nomedoarquivo é um link simbólico, e o status do link simbólico é retornado e não o status do arquivo apontando pelo link simbólico.

veja a página do manual para stat() para informações sobre a estrutura do array retornado que lstat() retorn.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

See also stat().

Anterior | Principal | Próxima
linkinfo | Acima | mkdir


mkdir

(PHP 3, PHP 4 , PHP 5)

mkdir -- Criar um diretório

Descrição

bool mkdir ( string pathname [, int mode])

Tenta criar o diretório pathname.

Note que você provavelmente quer especificar o mode como um número octal, o que significa que ele deve ter o zero inicial. O mode é também modificado pela umaks atual, o que você pode mudar usando umask().

Nota: O parâmetro mode é ignorado no Windows, e se tornou opcional no PHP 4.2.0.

O parâmetro mode é 0777 por padrão, que significa o acesso mais liberal. Para informações sobre os modos, veja a função chmod().

<?php
mkdir ("/path/to/my/dir", 0700);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também rmdir().

Anterior | Principal | Próxima
lstat | Acima | move_uploaded_file


move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file -- Move um arquivo carregado para uma nova localização

Descrição

bool move_uploaded_file ( string nomedoarquivo, string destino)

Esta função primeiro checa o arquivo informado nomedoarquivo é um arquivo válido uploadeado (significando que ele foi carregado pelo mecanismo do PHP de HTTP POST). Se o arquivo é válido, ele será movido para o nomedoarquivo dado pelo destino.

Se nomedoarquivo não é um arquivo carregado válido, então não haverá nenhuma ação e move_uploaded_file() irá retornar FALSE.

Se nomedoarquivo é um arquivo uploadeado válido e não pode ser movido por alguma razão, nenhuma ação irá ocorrer, e move_uploaded_file() irá retornar FALSE. Adicionalmente, um aviso será emitido.

Este tipo de confirmação é importante principalmente se existe alguma chance que qualquer coisa feita com os arquivos carregados poderem revelar o seu conteúdo para o usuário, ou mesmo para outros usuários no mesmo sistema.

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Nota: move_uploaded_file() não é afetado pelas restrições de UIN normais do safe mode. Isto não é inseguro porque move_uploaded_file() somente opera sobre arquivos carregados pelo PHP.

Atenção

Se o arquivo destino já existir, então ele será sobrescrito.

Veja também is_uploaded_file() e a seção Manipulando o upload de arquivos para um exemplo de utilização desta função.

Anterior | Principal | Próxima
mkdir | Acima | parse_ini_file


parse_ini_file

(PHP 4 , PHP 5)

parse_ini_file -- Interpreta um arquivo de configuração

Descrição

array parse_ini_file ( string nomedoarquivo [, bool processar_secoes])

parse_ini_file() carrega o arquivo INI informado no nomedoarquivo, e retorna as configurações dele em um array associativo. Ao usar processar_secoes como TRUE, você receberá um array multidimensional, com os nomes das seções e os parametros incluidos. O padrão (default) para processar_secoes é FALSE.

Nota: Esta função não tem nada a ver com o arquivo php.ini. Este já é processado na hora que você executa o script. Esta função pode ser usada para ler os arquivos de configuração de sua própria aplicação.

Nota: Se o arquivo INI tem qualquer caracter não alfanumérico, eles precisam estar delimitados por aspas (").

Nota: Desde o PHP 4.2.1, esta função é afetada por safe mode e open_basedir.

Nota: Há palavras reservadas que não podem ser utilizadas como chaves para arquivos INI. Elas incluem: null, yes, no, true, e false.

A estrutura do arquivo ini é similar a do php.ini.

Constantes podem ser interpretadas no arquivo INI se você definir uma constante existente no INI antes de executar parse_ini_file(), sendo parte integrante dos resultados. Somente valores no INI são avaliados. Por exemplo:

Exemplo 1. Conteúdo de exemplo.ini

; Este é um arquivo de configuração de exemplo
; Comentário começam com ';', como no php.ini

[primeira_secao]
um = 1
cinco = 5
animal = PASSARO

[segunda_secao]
path = /usr/local/bin
URL = "http://www.example.com/~username"

Exemplo 2. exemplo de parse_ini_file()

<?php

define ('PASSARO', 'Passaro Dodo');

// Parse sem as seções
$ini_array = parse_ini_file("exemplo.ini");
print_r($ini_array);

// Parse com as seções
$ini_array = parse_ini_file("exemplo.ini", TRUE);
print_r($ini_array);

?>

Irá produzir:

Array
(
    [um] => 1
    [cinco] => 5
    [animal] => Passaro Dodo
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
)
Array
(
    [primeira_secao] => Array
        (
            [um] => 1
            [cinco] => 5
            [animal] => Dodo bird
        )

    [segunda_secao] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

Anterior | Principal | Próxima
move_uploaded_file | Acima | pathinfo


pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo -- Retorna informação sobre o path de um arquivo

Descrição

array pathinfo ( string path)

pathinfo() retorna um array associatico contendo informações sobre o path. O seguinte elementos do array são retornados: dirname, basename e extension.

Exemplo 1. Exemplo de pathinfo()

<?php

$partes_do_path = pathinfo("/www/htdocs/index.html");

echo $partes_do_path["dirname"] . "\n";
echo $partes_do_path["basename"] . "\n";
echo $partes_do_path["extension"] . "\n";

?>

Produzirá:

/www/htdocs
index.html
html

Nota: Para informações na recuperação da informação do diretório atual, leia a seção variáveis predefinidas reservadas.

Veja também dirname(),
basename(), parse_url()
e realpath().

Anterior | Principal | Próxima
parse_ini_file | Acima | pclose


pclose

(PHP 3, PHP 4 , PHP 5)

pclose -- Fecha um processo de um ponteiro de arquivo

Descrição

int pclose ( resource handle)

Fecha um ponteiro de arquivo a uma pipe aberta por popen().

O ponteiro de arquivo tem que ser válido e tem que ser retornado por uma chamada bem sucedida a função popen().

Retorna o status da finalização do processo que estava rodando.

Veja também popen().

Anterior | Principal | Próxima
pathinfo | Acima | popen


popen

(PHP 3, PHP 4 , PHP 5)

popen -- Abre um processo como ponteiro de arquivo

Descrição

resource popen ( string command, string mode)

Abre uma pipe para um processo executado ao se dar um fork para o comando dado por command.

Retorna um ponteiro de arquivo idêntico ao retornado por fopen(), exceto que ele é unidirecional (somente pode ser usado para leitura ou gravação) e tem que ser fechado com pclose. Este ponteiro pode ser usado com fgets(), fgetss() e fputs().

Caso um erro ocorra retorna FALSE.

Nota: Se você está procurando por suporte bidirecional (via dupla), utilize proc_open().

Exemplo 1. Exemplo de popen()

<?php
$handle = popen ("/bin/ls", "r");
?>

Se o comando a ser executado não for encontrado um recurso válido será retornado. Isso pode parecer esquisito, mas tem sentido: permite que você acesse a mensagem de erro retornado pelo sistema operacional.

<?php
error_reporting(E_ALL);

/* Add redirection so we can get stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Veja também pclose(), fopen() e proc_open().

Anterior | Principal | Próxima
pclose | Acima | readfile


readfile

(PHP 3, PHP 4 , PHP 5)

readfile -- Lê e exibe o conteúdo de um arquivo

Descrição

int readfile ( string nomedoarquivo [, bool use_include_path [, resource context]])

Lê um arquivo e escreve o seu conteúdo para o buffer de saída (output buffer).

Retorna o número de bytes lido do arquivo. Se um error ocorrer, retorna FALSE e ao menos que a função seja chamada como @readfile(), uma mensagem de erro será impressa.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Você pode usar o segundo parâmetro opcional e o configurar para TRUE, se você quiser procurar o arquivo no include_path também.

Veja também fpassthru(),
file(), fopen(),
include(), require(),
virtual() e Apêndice J.

Anterior | Principal | Próxima
popen | Acima | readlink


readlink

(PHP 3, PHP 4 , PHP 5)

readlink -- Retornar o alvo de um link simbólico

Descrição

string readlink ( string path)

readlink() faz o mesmo que a função do C readlink e retorna os conteúdos do path do link simbólico ou 0 em caso de erro.

Exemplo 1. Exemplo de readlink()

<?php

// Exibe algo como /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Veja também symlink(),
readlink() e
linkinfo().

Anterior | Principal | Próxima
readfile | Acima | realpath


realpath

(PHP 4 , PHP 5)

realpath -- Retorna o path absoluto canonicalizado

Descrição

string realpath ( string path)

realpath() expande todos os links simbólicos e resolve referencias para '/./', '/../' e extra caracteres '/' na entrada pelo path e retorna o path absoluto canonicalizado . O path resultante não conterá nenhum link simbólico ou componentes '/./' e '/../'.

realpath() retorna FALSE em caso de falha, por exemplo, se o caminho não existir.

Exemplo 1. exemplo de realpath()

<?php
$real_path = realpath ("../../index.php");
?>

Veja também: basename(),
dirname() e
pathinfo().

Anterior | Principal | Próxima
readlink | Acima | rename


rename

(PHP 3, PHP 4 , PHP 5)

rename -- Renomear um arquivo

Descrição

bool rename ( string nomeantigo, string novonome)

Tenta renomear nomeantigo para novonome.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo de rename()

<?php
  rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Nota: Antes do PHP 4.3.3, rename() não podia renomear arquivos entre partições em sistemas *NIX.

Veja também copy(),
unlink() e
move_uploaded_file().

Anterior | Principal | Próxima
realpath | Acima | rewind


rewind

(PHP 3, PHP 4 , PHP 5)

rewind -- Reinicializa a posição do ponteiro de arquivos para o início

Descrição

bool rewind ( resource handle)

Muda o indicador de ponteiro de arquivo handle para o início do stream do arquivo.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

O ponteiro de arquivo tem que ser válido e tem que apontar para um arquivo aberto com sucesso por fopen().

Nota: Se você abriu um arquivo no modo acréscimo (append - "a"), qualque dado que escrever no arquivo será sempre anexado no final, não importando a posição do ponteiro.

Veja também fseek() e ftell().

Anterior | Principal | Próxima
rename | Acima | rmdir


rmdir

(PHP 3, PHP 4 , PHP 5)

rmdir -- Remove um diretório

Descrição

bool rmdir ( string dirname)

Tenta remover o diretório com o nome de dirname. O diretório tem que estar vazio e as permissões relevantes autorizarem a esta operação. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também mkdir() e unlink().

Anterior | Principal | Próxima
rewind | Acima | set_file_buffer


set_file_buffer

set_file_buffer -- Sinônimo de stream_set_write_buffer()

Descrição

Esta função é um apelido para stream_set_write_buffer().

Anterior | Principal | Próxima
rmdir | Acima | stat


stat

(PHP 3, PHP 4 , PHP 5)

stat -- Obtem informações sobre um arquivo

Descrição

array stat ( string filename)

Coleta estatísticas do arquivo informado em filename. Se filename for um link simbólico, estatísticas serão do próprio arquivo, não do link. lstat() é idêntica a stat(), exceto que ela busca as estatísticas do symlink.

Em caso de erro, stat() retorna FALSE e também dispara um alerta.

Retorna um array com as estatísticas do arquivo com os seguintes elementos. Esse array é baseado no zero. Além de retornar esses elemtos de uma maneira numérica, eles podem ser acessados através de índices associativos, como informado ao lado de cada parâmetro. Isto foi acrescentado no PHP 4.0.6:

Tabela 1. Formato de retorno de stat() e fstat()

Índice Numérico | Índice Associativo (desde o PHP 4.0.6) | Descrição
0 | dev | device number / número do dispositivo
1 | ino | inode number / número do inode
2 | mode | inode protection mode / modo de proteção do inode
3 | nlink | number of links / número de links
4 | uid | userid of owner / userid do proprietário
5 | gid | groupid of owner / groupid do proprietário
6 | rdev | device type, if inode device * / tipo do dispositivo
7 | size | size in bytes / tamanho em bytes
8 | atime | time of last access (unix timestamp) / horário último acesso
9 | mtime | time of last modification (unix timestamp) / horário última modificação
10 | ctime | time of last change (unix timestamp) / horário última alteração
11 | blksize | blocksize of filesystem IO * / tamanho do bloco no sistema de arquivos
12 | blocks | number of blocks allocated / número de blocos alocados
* - somente disponível em sistemas que suportem st_blksize. Outros sistemas (como o Windows) retornam -1.

Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.

Nota: Esta função não trabalha com arquivos remotos, de forma que o arquivo a ser examinado precisa ser acessível pelo sistema de arquivos do servidor.

Veja também lstat(),
fstat(),
filemtime() e
filegroup().

Anterior | Principal | Próxima
set_file_buffer | Acima | symlink


symlink

(PHP 3, PHP 4 , PHP 5)

symlink -- Cria um link simbólico

Descrição

bool symlink ( string alvo, string link)

symlink() cria um link simbólico do alvo existente com o nome especificado em link.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também link() para criar hard links, e readlink() junto com linkinfo().

Anterior | Principal | Próxima
stat | Acima | tempnam


tempnam

(PHP 3, PHP 4 , PHP 5)

tempnam -- Cria um nome de arquivo único

Descrição

string tempnam ( string dir, string prefix)

Cria um nome de arquivo temporário único no diretório especificado. Se o diretório não existe, tempnam() pode gerar o nome de arquivo no diretório temporário do sistema. Retorna o nome gerado.

Antes do PHP 4.0.6 o comportamento da função tempnam() era dependente do sistema. No Windows a váriavel de ambiente do sistema TMP irá sobreescrever o parâmetro dir; no Linux a váriavel de ambiente TMPDIR tem precedência, enquanto SVR4 irá sempre usar o parâmetro dir se o diretório para o qual ele aponta existe. Consulte a documentação do seu sistema para a função tempnam(3) na dúvida.

Nota: Se o PHP não conseguir criar um arquivo informado em dir, deve ser por causa de um erro no default do sistema.

Retorna o nome do novo arquivo temporário, ou a string FALSE string em caso de erro.

Exemplo 1. Exemplo de tempnam()

<?php
$tmpfname = tempnam ("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "writing to tempfile");
fclose($handle);

// fazer alguma coisa

unlink($tmpfname);
?>

Nota: O comportamento desta função mudou na versão 4.0.3. O arquivo temporário é também criado para evitar uma condição de corrida (race) onde o arquivo pode aparecer no filesystem entre o tempo que a string foi gerada e antes que o script tem tempo para criar o arquivo. Note que você precisa remover o arquivo caso não vá mais utilizá-lo, pois isso não é feito automaticamente.

Veja também tmpfile() e unlink().

Anterior | Principal | Próxima
symlink | Acima | tmpfile


tmpfile

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

tmpfile -- Cria um arquivo temporário

Descrição

resource tmpfile ( void )

Cria um arquivo temporário com um nome único em modo de gravação, retornando o handle do arquivo em modo similar ao retornado por fopen(). O arquivo é automáticamente apagado quando fechado (usando fclose()), ou quando o script acaba.

Para detalhes consulte a documentação do seu sistem na função tmpfile(3), assim como o header stdio.h.

Exemplo 1. Exemplo de tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "escrevendo no arquivo temporario");
fclose($temp); // isto remove o arquivo
?>

Veja também tempnam().

Anterior | Principal | Próxima
tempnam | Acima | touch


touch

(PHP 3, PHP 4 , PHP 5)

touch -- Muda o tempo de modificação do arquivo

Descrição

bool touch ( string filename [, int time [, int atime]])

Tenta mudar o tempo de acesso e modificação do arquivo filename para o valor informado em time. Se a opção time não é informada, o hora atual será usado. Isto é o equivalente ao que comando (Unix) utime faz. Se a terceira opção atime for passada, o tempo de acesso do arquivo informado será modificado para o valor de atime. Note que a data/hora do último acesso do arquivo sempre é alterado, independentemente do número de parâmetros.

Se o arquivo não existe, ele é criado. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. exemplo da função touch()

<?php
if (touch ($nomedoarquivo)) {
    print "o tempo do $nomedoarquivo foi modificado
           para o dia e hora de atuais";
} else {
    print "Desculpe, não foi possivel modificar o tempo de $nomedoarquivo";
}
?>

Anterior | Principal | Próxima
tmpfile | Acima | umask


umask

(PHP 3, PHP 4 , PHP 5)

umask -- Modificar a umask atual

Descrição

int umask ( [int mask])

umask() modifica o umask do PHP para o mask & 0777 e retorna o umask antigo. Quando o PHP está sendo utilizado como um módulo do servidor, o umask é restaurado ao final de cada pedido.

umask() sem argumentos simplesmente retorna o umask atual.

Anterior | Principal | Próxima
touch | Acima | unlink


unlink

(PHP 3, PHP 4 , PHP 5)

unlink -- Apaga um arquivo

Descrição

int unlink ( string nomedoarquivo)

Deleta nomedoarquivo. Similar a função C no Unix unlink(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: A partir do PHP 5.0.0 unlink() também pode ser utilizado com alguns wrappers de url. Veja em Apêndice J a lista de wrappers suportados por unlink().

Veja também rmdir() para remover diretórios.

Anterior | Principal | Próxima
umask | Acima | Forms Data Format Functions


Forms Data Format Functions

Manual do PHP
Anterior Próxima

XXXI. Forms Data Format Functions

Introdução

Forms Data Format (FDF) is a format for handling forms within PDF documents. You should read the documentation at http://partners.adobe.com/asn/acrobat/forms.jsp for more information on what FDF is and how it is used in general.

The general idea of FDF is similar to HTML forms. The difference is basically the format how data is transmitted to the server when the submit button is pressed (this is actually the Form Data Format) and the format of the form itself (which is the Portable Document Format, PDF). Processing the FDF data is one of the features provided by the fdf functions. But there is more. One may as well take an existing PDF form and populated the input fields with data without modifying the form itself. In such a case one would create a FDF document (fdf_create()) set the values of each input field (fdf_set_value()) and associate it with a PDF form (fdf_set_file()). Finally it has to be sent to the browser with MimeType application/vnd.fdf. The Acrobat reader plugin of your browser recognizes the MimeType, reads the associated PDF form and fills in the data from the FDF document.

If you look at an FDF-document with a text editor you will find a catalogue object with the name FDF. Such an object may contain a number of entries like Fields, F, Status etc.. The most commonly used entries are Fields which points to a list of input fields, and F which contains the filename of the PDF-document this data belongs to. Those entries are referred to in the FDF documentation as /F-Key or /Status-Key. Modifying this entries is done by functions like fdf_set_file() and fdf_set_status(). Fields are modified with fdf_set_value(), fdf_set_opt() etc..

Requisitos

You need the FDF toolkit SDK available from http://partners.adobe.com/asn/acrobat/forms.jsp. As of PHP 4.3 you need at least SDK version 5.0. The FDF toolkit library is available in binary form only, platforms supported by Adobe are Win32, Linux, Solaris and AIX.

Instalação

You must compile PHP with --with-fdftk[=DIR].

Nota: If you run into problems configuring PHP with fdftk support, check whether the header file fdftk.h and the library libfdftk.so are at the right place. The configure script supports both the directory structure of the FDF SDK distribution and the usual DIR/include / DIR/lib layout, so you can point it either directly to the unpacked distribution directory or put the header file and the appropriate library for your platform into e.g. /usr/local/include and /usr/local/lib and configure with --with-fdftk=/usr/local.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy fdftk.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

fdf

Most fdf functions require a fdf resource as their first parameter. A fdf resource is a handle to an opened fdf file. fdf resources may be obtained using fdf_create(), fdf_open() and fdf_open_string().

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

FDFValue (integer)

FDFStatus (integer)

FDFFile (integer)

FDFID (integer)

FDFFf (integer)

FDFSetFf (integer)

FDFClearFf (integer)

FDFFlags (integer)

FDFSetF (integer)

FDFClrF (integer)

FDFAP (integer)

FDFAS (integer)

FDFAction (integer)

FDFAA (integer)

FDFAPRef (integer)

FDFIF (integer)

FDFEnter (integer)

FDFExit (integer)

FDFDown (integer)

FDFUp (integer)

FDFFormat (integer)

FDFValidate (integer)

FDFKeystroke (integer)

FDFCalculate (integer)

FDFNormalAP (integer)

FDFRolloverAP (integer)

FDFDownAP (integer)

Exemplos

The following examples shows just the evaluation of form data.

Exemplo 1. Evaluating a FDF document

<?php
// Open fdf from input string provided by the extension
// The pdf form contained several input text fields with the names
// volume, date, comment, publisher, preparer, and two checkboxes
// show_publisher and show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo "The volume field has the value '<b>$volume</b>'<br />";

$date = fdf_get_value($fdf, "date");
echo "The date field has the value '<b>$date</b>'<br />";

$comment = fdf_get_value($fdf, "comment");
echo "The comment field has the value '<b>$comment</b>'<br />";

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "The publisher field has the value '<b>$publisher</b>'<br />";
} else
  echo "Publisher shall not be shown.<br />";

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "The preparer field has the value '<b>$preparer</b>'<br />";
} else
  echo "Preparer shall not be shown.<br />";
fdf_close($fdf);
?>

Índice
fdf_add_doc_javascript -- Adds javascript code to the FDF document
fdf_add_template -- Adds a template into the FDF document
fdf_close -- Close an FDF document
fdf_create -- Create a new FDF document
fdf_enum_values -- Call a user defined function for each document value
fdf_errno -- Return error code for last fdf operation
fdf_error -- Return error description for fdf error code
fdf_get_ap -- Get the appearance of a field
fdf_get_attachment -- Extracts uploaded file embedded in the FDF
fdf_get_encoding -- Get the value of the /Encoding key
fdf_get_file -- Get the value of the /F key
fdf_get_flags -- Gets the flags of a field
fdf_get_opt -- Gets a value from the opt array of a field
fdf_get_status -- Get the value of the /STATUS key
fdf_get_value -- Get the value of a field
fdf_get_version -- Gets version number for FDF API or file
fdf_header -- Sets FDF-specific output headers
fdf_next_field_name -- Get the next field name
fdf_open_string -- Read a FDF document from a string
fdf_open -- Open a FDF document
fdf_remove_item -- Sets target frame for form
fdf_save_string -- Returns the FDF document as a string
fdf_save -- Save a FDF document
fdf_set_ap -- Set the appearance of a field
fdf_set_encoding -- Sets FDF character encoding
fdf_set_file -- Set PDF document to display FDF data in
fdf_set_flags -- Sets a flag of a field
fdf_set_javascript_action -- Sets an javascript action of a field
fdf_set_opt -- Sets an option of a field
fdf_set_status -- Set the value of the /STATUS key
fdf_set_submit_form_action -- Sets a submit form action of a field
fdf_set_target_frame -- Set target frame for form display
fdf_set_value -- Set the value of a field
fdf_set_version -- Sets version number for a FDF file

Anterior | Principal | Próxima
unlink | Acima | fdf_add_doc_javascript


fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascript -- Adds javascript code to the FDF document

Description

bool fdf_add_doc_javascript ( resource fdfdoc, string script_name, string script_code)

Adds a script to the FDF, which Acrobat then adds to the doc-level scripts of a document, once the FDF is imported into it. It is strongly suggested to use '\r' for linebreaks within script_code.

Exemplo 1. Adding JavaScript code to a FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

will create a FDF like this:

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Anterior | Principal | Próxima
Forms Data Format Functions | Acima | fdf_add_template


fdf_add_template

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

fdf_add_template -- Adds a template into the FDF document

Description

bool fdf_add_template ( resource fdfdoc, int newpage, string filename, string template, int rename)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fdf_add_doc_javascript | Acima | fdf_close


fdf_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_close -- Close an FDF document

Description

bool fdf_close ( resource fdf_document)

The fdf_close() function closes the FDF document.

See also fdf_open().

Anterior | Principal | Próxima
fdf_add_template | Acima | fdf_create


fdf_create

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_create -- Create a new FDF document

Description

resource fdf_create ( void )

The fdf_create() creates a new FDF document. This function is needed if one would like to populate input fields in a PDF document with data.

Exemplo 1. Populating a PDF document

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

See also fdf_close(),
         fdf_save(),
         fdf_open().

Anterior | Principal | Próxima
fdf_close | Acima | fdf_enum_values


fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_values -- Call a user defined function for each document value

Description

bool fdf_enum_values ( resource fdfdoc, callback function [, mixed userdata])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fdf_create | Acima | fdf_errno


fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errno -- Return error code for last fdf operation

Description

int fdf_errno ( void )

fdf_errno() returns the error code set by the last fdf_...() function call. This is zero for a successfull operation or a non-zero error code on failure. A textual description may be obtained using the fdf_error() function.

See also fdf_error().

Anterior | Principal | Próxima
fdf_enum_values | Acima | fdf_error


fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_error -- Return error description for fdf error code

Description

string fdf_error ( [int error_code])

fdf_error() returns a textual description for the fdf error code given in error_code. The function uses the internal error code set by the last operation if no error_code is given, so fdf_error() is a convenient shortcut for fdf_error(fdf_errno()).

See also fdf_errno().

Anterior | Principal | Próxima
fdf_errno | Acima | fdf_get_ap


fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_ap -- Get the appearance of a field

Description

bool fdf_get_ap ( resource fdf_document, string field, int face, string filename)

The fdf_get_ap() function gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file. The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP. The appearance is stored in filename.

Anterior | Principal | Próxima
fdf_error | Acima | fdf_get_attachment


fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachment -- Extracts uploaded file embedded in the FDF

Description

array fdf_get_attachment ( resource fdf_document, string fieldname, string savepath)

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath. savepath may be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Nota: There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

The returned array contains the following fields:

  • path - path were the file got stored

    size - size of the stored file in bytes

    type - mimetype if given in the FDF

Exemplo 1. Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>

Anterior | Principal | Próxima
fdf_get_ap | Acima | fdf_get_encoding


fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encoding -- Get the value of the /Encoding key

Description

string fdf_get_encoding ( resource fdf_document)

The fdf_get_encoding() returns the value of the /Encoding key. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

See also fdf_set_encoding().

Anterior | Principal | Próxima
fdf_get_attachment | Acima | fdf_get_file


fdf_get_file

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_file -- Get the value of the /F key

Description

string fdf_get_file ( resource fdf_document)

The fdf_set_file() returns the value of the /F key.

See also fdf_set_file().

Anterior | Principal | Próxima
fdf_get_encoding | Acima | fdf_get_flags


fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flags -- Gets the flags of a field

Description

fdf_get_flags ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fdf_get_file | Acima | fdf_get_opt


fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_opt -- Gets a value from the opt array of a field

Description

mixed fdf_get_opt ( resource fdfdof, string fieldname [, int element])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fdf_get_flags | Acima | fdf_get_status


fdf_get_status

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_status -- Get the value of the /STATUS key

Description

string fdf_get_status ( resource fdf_document)

The fdf_get_status() returns the value of the /STATUS key.

See also fdf_set_status().

Anterior | Principal | Próxima
fdf_get_opt | Acima | fdf_get_value


fdf_get_value

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_value -- Get the value of a field

Description

string fdf_get_value ( resource fdf_document, string fieldname [, int which])

The fdf_get_value() function returns the value for the requested fieldname.

Elements of an array field can be retrieved by passing the optional which, starting at zero. For non-array fields the optional parameter which will be ignored.

Nota: Array support and optional which parameter were added in PHP 4.3.

See also fdf_set_value().

Anterior | Principal | Próxima
fdf_get_status | Acima | fdf_get_version


fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_version -- Gets version number for FDF API or file

Description

string fdf_get_version ( [resource fdf_document])

This function will return the fdf version for the given fdf_document, or the toolkit API version number if no parameter is given.

For the current FDF toolkit 5.0 the API version number is '5.0' and the document version number is either '1.2', '1.3' or '1.4'.

See also fdf_set_version().

Anterior | Principal | Próxima
fdf_get_value | Acima | fdf_header


fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_header -- Sets FDF-specific output headers

Description

bool fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Anterior | Principal | Próxima
fdf_get_version | Acima | fdf_next_field_name


fdf_next_field_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_next_field_name -- Get the next field name

Description

string fdf_next_field_name ( resource fdf_document [, string fieldname])

The fdf_next_field_name() function returns the name of the field after the field in fieldname or the field name of the first field if the second parameter is NULL.

Exemplo 1. Detecting all fieldnames in a FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
  echo "field: $field\n";
}
?>

See also fdf_enum_fields() and fdf_get_value().

Anterior | Principal | Próxima
fdf_header | Acima | fdf_open_string


fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_string -- Read a FDF document from a string

Description

resource fdf_open_string ( string fdf_data)

The fdf_open_string() function reads form data from a string. fdf_data must contain the data as returned from a PDF form or created using fdf_create() and fdf_save_string().

You can fdf_open_string() together with $HTTP_FDF_DATA to process fdf form input from a remote client.

Exemplo 1. Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

See also
fdf_open(),
fdf_close(),
fdf_create() and
fdf_save_string().

Anterior | Principal | Próxima
fdf_next_field_name | Acima | fdf_open


fdf_open

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_open -- Open a FDF document

Description

resource fdf_open ( string filename)

The fdf_open() function opens a file with form data. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

You can process the results of a PDF form POST request by writing the data received in $HTTP_FDF_DATA to a file and open it using fdf_open(). Starting with PHP 4.3 you can also use fdf_open_string() which handles temporary file creation and cleanup for you.

Exemplo 1. Accessing the form data

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

See also
fdf_open_string(),
fdf_close(),
fdf_create() and
fdf_save().

Anterior | Principal | Próxima
fdf_open_string | Acima | fdf_remove_item


fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_item -- Sets target frame for form

Description

bool fdf_remove_item ( resource fdfdoc, string fieldname, int item)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
fdf_open | Acima | fdf_save_string


fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_string -- Returns the FDF document as a string

Description

string fdf_save_string ( resource fdf_document)

The fdf_save_string() function returns the FDF document as a string.

Exemplo 1. Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

will output something like

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

See also fdf_save(),
fdf_open_string(),
fdf_create() and
fdf_close().

Anterior | Principal | Próxima
fdf_remove_item | Acima | fdf_save


fdf_save

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_save -- Save a FDF document

Description

bool fdf_save ( resource fdf_document [, string filename])

The fdf_save() function saves a FDF document. The resulting FDF will be written to filename. Without a filename fdf_save() will write the FDF to the default PHP output stream.

See also fdf_save_string(),
fdf_create() and
fdf_close().

Anterior | Principal | Próxima
fdf_save_string | Acima | fdf_set_ap


fdf_set_ap

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_ap -- Set the appearance of a field

Description

bool fdf_set_ap ( resource fdf_document, string field_name, int face, string filename, int page_number)

The fdf_set_ap() function sets the appearance of a field (i.e. the value of the /AP key). The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP.

Anterior | Principal | Próxima
fdf_save | Acima | fdf_set_encoding


fdf_set_encoding

(PHP 4 >= 4.1.0, PHP 5)

fdf_set_encoding -- Sets FDF character encoding

Description

bool fdf_set_encoding ( resource fdf_document, string encoding)

fdf_set_encoding() sets the character encoding in FDF document fdf_document. encoding should be the valid encoding name. Currently the following values are supported: "Shift-JIS", "UHC", "GBK","BigFive". An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Anterior | Principal | Próxima
fdf_set_ap | Acima | fdf_set_file


fdf_set_file

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_file -- Set PDF document to display FDF data in

Description

bool fdf_set_file ( resource fdf_document, string url [, string target_frame])

The fdf_set_file() selects a different PDF document to display the form results in then the form it originated from. The url needs to be given as an absolute URL.

The frame to display the document in may be selected using the optional parameter target_frame or the function fdf_set_target_frame().

Exemplo 1. Passing FDF data to a second form

<?php
  /* set content type for Adobe FDF */
  fdf_header();

  /* start new fdf */
  $fdf = fdf_create();

  /* set field "foo" to value "bar" */
  $fdf_set_value($fdf, "foo", "bar");

  /* tell client to display FDF data using "fdf_form.pdf" */
  fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

  /* output fdf */
  fdf_save();

  /* clean up */
  fdf_close();
?>

See also fdf_get_file() and fdf_set_target_frame().

Anterior | Principal | Próxima
fdf_set_encoding | Acima | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flags -- Sets a flag of a field

Description

bool fdf_set_flags ( resource fdf_document, string fieldname, int whichFlags, int newFlags)

The fdf_set_flags() sets certain flags of the given field fieldname.

See also fdf_set_opt().

Anterior | Principal | Próxima
fdf_set_file | Acima | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_action -- Sets an javascript action of a field

Description

bool fdf_set_javascript_action ( resource fdf_document, string fieldname, int trigger, string script)

fdf_set_javascript_action() sets a javascript action for the given field fieldname.

See also fdf_set_submit_form_action().

Anterior | Principal | Próxima
fdf_set_flags | Acima | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_opt -- Sets an option of a field

Description

bool fdf_set_opt ( resource fdf_document, string fieldname, int element, string str1, string str2)

The fdf_set_opt() sets options of the given field fieldname.

See also fdf_set_flags().

Anterior | Principal | Próxima
fdf_set_javascript_action | Acima | fdf_set_status


fdf_set_status

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_status -- Set the value of the /STATUS key

Description

bool fdf_set_status ( resource fdf_document, string status)

The fdf_set_status() sets the value of the /STATUS key. When a client receives a FDF with a status set it will present the value in an alert box.

See also fdf_get_status().

Anterior | Principal | Próxima
fdf_set_opt | Acima | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_action -- Sets a submit form action of a field

Description

bool fdf_set_submit_form_action ( resource fdf_document, string fieldname, int trigger, string script, int flags)

The fdf_set_submit_form_action() sets a submit form action for the given field fieldname.

See also fdf_set_javascript_action().

Anterior | Principal | Próxima
fdf_set_status | Acima | fdf_set_target_frame


fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frame -- Set target frame for form display

Description

bool fdf_set_target_frame ( resource fdf_document, string frame_name)

Sets the target frame to display a result PDF defined with fdf_save_file() in.

See also fdf_save_file().

Anterior | Principal | Próxima
fdf_set_submit_form_action | Acima | fdf_set_value


fdf_set_value

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_value -- Set the value of a field

Description

bool fdf_set_value ( resource fdf_document, string fieldname, mixed value [, int isName])

The fdf_set_value() function sets the value for a field named fieldname. The value will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

Nota: In older versions of the fdf toolkit last parameter determined if the field value was to be converted to a PDF Name (isName = 1) or set to a PDF String (isName = 0). The value is no longer used in the current toolkit version 5.0. For compatibility reasons it is still supported as an optional parameter beginning with PHP 4.3, but ignored internally.

Support for value arrays was added in PHP 4.3.

See also fdf_get_value() and fdf_remove_item().

Anterior | Principal | Próxima
fdf_set_target_frame | Acima | fdf_set_version


fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_version -- Sets version number for a FDF file

Description

string fdf_set_version ( resource fdf_document, string version)

This function will set the fdf version for the given fdf_document. Some features supported by this extension are only available in newer fdf versions. For the current FDF toolkit 5.0 version may be either '1.2', '1.3' or '1.4'.

See also fdf_get_version().

Anterior | Principal | Próxima
fdf_set_value | Acima | FriBiDi


FriBiDi

Manual do PHP
Anterior Próxima

XXXII. FriBiDi

Introdução

FriBiDi é uma implementação livre de Unicode Bidirectional Algorithm.

Requisitos

Você deverá copiar e instalar o pacote FriBiDi.

Instalação

Para ativar o suporte FriBiDi no PHP você deverá compilar o PHP com a opção de configuração --with-fribidi[=DIR] aonde DIR é o diretório de instalação do FriBiDi.

Configuração durante execução

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

FRIBIDI_CHARSET_UTF8 (integer)

FRIBIDI_CHARSET_8859_6 (integer)

FRIBIDI_CHARSET_8859_8 (integer)

FRIBIDI_CHARSET_CP1255 (integer)

FRIBIDI_CHARSET_CP1256 (integer)

FRIBIDI_CHARSET_ISIRI_3342 (integer)

Índice
fribidi_log2vis -- Converte uma string lógica para uma visual

Anterior | Principal | Próxima
fdf_set_version | Acima | fribidi_log2vis


fribidi_log2vis

(PHP 4 >= 4.0.4)

fribidi_log2vis -- Converte uma string lógica para uma visual

Descrição

string fribidi_log2vis ( string str, string direction, int charset)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
FriBiDi | Acima | FTP


FTP

Manual do PHP
Anterior Próxima

XXXIII. FTP

Introdução

As funções nesta extenção implementam o acesso de clientes para servidores de arquivos usando o File Transfer Protocol (FTP) como definido em http://www.faqs.org/rfcs/rfc959. Esta extenção permite acesso detalhado ao servidor FTP provendo um grande controle ao script. Se você quer somente ler ou escrever em um servidor FTP, você pode considerar o uso do wrapper ftp:// com as funções do sistema de arquivo o que prove um meio fácil e intuitivo.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Para utilizar as funções de FTP na sua configuração do PHP, você deve adicionar a opção --enable-ftp quando estiver instalando o PHP 4 ou --with-ftp quando estiver instalando o PHP 3.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Este extenção usa um tipo resource, o qual é o identificador da conexão FTP, retornado por ftp_connect().

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

FTP_ASCII (integer)

FTP_TEXT (integer)

FTP_BINARY (integer)

FTP_IMAGE (integer)

FTP_TIMEOUT_SEC (integer)

Veja ftp_set_option() para maiores informações.

As seguintes constantes foram introduzidas no PHP 4.3.0.

FTP_AUTOSEEK (integer)

Veja ftp_set_option() para maiores informações.

FTP_AUTORESUME (integer)

Determina automaticamente a posição de reinício e início para requisições GET e PUT (funciona somente se FTP_AUTOSEEK estiver ativada)

FTP_FAILED (integer)

A transferência assincronoma falhou

FTP_FINISHED (integer)

A transferência assincronoma terminou

FTP_MOREDATA (integer)

A transferência assincronoma ainda esta ativa

Exemplos

Exemplo 1. Exemplo de FTP

<?php
// Cria a conexão
$conn_id = ftp_connect($ftp_server);

// login com o nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// confere a conexão
if ((!$conn_id) || (!$login_result)) {
        echo "A conexão FTP falhou!";
        echo "Tentou conectar ao servidor $ftp_server para o usuário $ftp_user_name";
        exit;
    } else {
        echo "Conectaado ao servidor $ftp_server, para o usuário $ftp_user_name";
    }

// carrega o arquivo
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// confere o upload do arquivo
if (!$upload) {
        echo "O upload FTP falhou!";
    } else {
        echo "Carregado o arquivo $source_file no servidor $ftp_server como $destination_file";
    }

// fecha a conexão FTP
ftp_close($conn_id);
?>

Índice
ftp_alloc -- Allocates space for a file to be uploaded.
ftp_cdup -- Muda para o diretório acima
ftp_chdir -- Muda o diretório em um servidor FTP
ftp_chmod -- Estabelece as permissões de um arquivo via FTP
ftp_close -- Fecha uma conexão FTP
ftp_connect -- Abre uma conexão FTP
ftp_delete -- Exclui um arquivo no servidor FTP
ftp_exec -- Solicita a execução de um programa no servidor FTP
ftp_fget -- Copia um arquivo de um servidor FTP e salva para um arquivo aberto
ftp_fput -- Carrega um arquivo aberto para um servidor FTP
ftp_get_option -- Obtém opções em tempo de executão da conexão FTP atual
ftp_get -- Copia um arquivo de um servidor FTP
ftp_login -- Realiza o login em uma conexão FTP
ftp_mdtm -- Retorna o tempo da última modificação em um arquivo
ftp_mkdir -- Cria um diretório
ftp_nb_continue -- Continua recuperando/enviando um arquivo(sem bloquear)
ftp_nb_fget -- Obtém um arquivo de um servidor FTP e escreve para um ponteiro de arquivo (sem bloquear)
ftp_nb_fput -- Salva um arquivo aberto para um servidor FTP(sem bloquear)
ftp_nb_get -- Obtém um arquivo do servidor FTP e salva em um arquivo local(sem bloquear)
ftp_nb_put -- Salva um arquivo em um servidor FTP(sem bloquear)
ftp_nlist -- Retorna uma lista de arquivos do diretório indicado
ftp_pasv -- Muda o modo passivo para on(ligado) ou off(desligado)
ftp_put -- Salva um arquivo em um servidor FTP
ftp_pwd -- Retorna o nome do diretório atual no servidor FTP
ftp_quit -- Apelido para ftp_close()
ftp_raw -- Envia um comando arbitrário ao servidor FTP
ftp_rawlist -- Retorna uma lista detalhada dos arquivos em um diretório
ftp_rename -- Renomeia um arquivo no servidor FTP
ftp_rmdir -- Remove um diretório
ftp_set_option -- Define opções do FTP em tempo de execução
ftp_site -- Envia um comando SITE para o servidor
ftp_size -- Retorna o tamanho de um arquivo
ftp_ssl_connect -- Abre uma conexão segura SSL-FTP
ftp_systype -- Retorna o tipo de sistema do servidor FTP

Anterior | Principal | Próxima
fribidi_log2vis | Acima | ftp_alloc


ftp_alloc

(PHP 5)

ftp_alloc -- Allocates space for a file to be uploaded.

Description

bool ftp_alloc ( resource ftp_stream, int filesize [, string &result])

Sends an ALLO command to the remote FTP server to allocate filesize bytes of space. Returns TRUE on success, or FALSE on failure.

Nota: Many FTP servers do not support this command. These servers may return a failure code (FALSE) indicating the command is not supported or a success code (TRUE) to indicate that pre-allocation is not necessary and the client should continue as though the operation were successful. Because of this, it may be best to reserve this function for servers which explicitly require preallocation.

A textual representation of the servers response will be returned by reference in result is a variable is provided.

Exemplo 1. ftp_alloc() example

<?php

$file = "/home/user/myfile";

/* connect to the server */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Space successfully allocated on server.  Sending $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Unable to allocate space on server.  Server said: $result\n";
}

ftp_close($conn_id);

?>

See also: ftp_put(), and ftp_fput().

Anterior | Principal | Próxima
FTP | Acima | ftp_cdup


ftp_cdup

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_cdup -- Muda para o diretório acima

Descrição

bool ftp_cdup ( resource ftp_stream)

Muda para o diretório acima.

Exemplo 1. Exemplo ftp_cdup()

<?php
// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// muda o diretório atual para html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// retorna o diretório acima
if (ftp_cdup($conn_id)) {
  echo "cdup bem sucedido\n";
} else {
  echo "cdup não foi bem sucedido\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ftp_chdir().

Anterior | Principal | Próxima
ftp_alloc | Acima | ftp_chdir


ftp_chdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_chdir -- Muda o diretório em um servidor FTP

Descrição

bool ftp_chdir ( resource ftp_stream, string directory)

Muda o diretório atual para o especificado em directory.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo ftp_chdir()

<?php

// estabelece a conexão
$conn_id = ftp_connect($ftp_server);

// login com o nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// confere a conexão
if ((!$conn_id) || (!$login_result)) {
    die("A conexão FTP falhou!");
}

echo "Diretório atual: " . ftp_pwd($conn_id) . "\n";

// tenta mudar para algumDiretorio
if (ftp_chdir($conn_id, "algumDiretorio")) {
    echo "O diretório atual agora é: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Não foi possível mudar o diretório\n";
}
// fecha a conexão
ftp_close($conn_id);
?>

Veja também ftp_cdup().

Anterior | Principal | Próxima
ftp_cdup | Acima | ftp_chmod


ftp_chmod

(PHP 5)

ftp_chmod -- Estabelece as permissões de um arquivo via FTP

Descrição

string ftp_chmod ( resource ftp_stream, int modo, string filename)

Estabele as permissões para o arquivo remoto especificado em filename para modo indicado como um octal.

Exemplo 1. Exemplo ftp_chmod()

<?php
$file = 'public_html/index.php';

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// tenta usar o chmod em $file para 644
if (ftp_chmod($conn_id, 0644, $file)) {
   echo "chmod bem sucedido no arquivo $file para 644\n";
} else {
echo "não foipossível usar o chmod no arquivo $file\n";
}

// fecha a conexão
ftp_close($conn_id);
?>

Em caso de sucesso retorna as novas permissões do arquivo ou FALSE se houver erro.

Veja também chmod().

Anterior | Principal | Próxima
ftp_chdir | Acima | ftp_close


ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_close -- Fecha uma conexão FTP

Descrição

void ftp_close ( resource ftp_stream)

ftp_close() fecha ftp_stream e libera o resource. Após utilizar esta função, você não pode mais utilizar a conexão FTP e deve criar uma nova com ftp_connect().

Exemplo 1. Exemplo ftp_close()

<?php

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// mostra o diretório atual
echo ftp_pwd($conn_id); // /

// fecha esta conexão
ftp_close($conn_id);
?>

Veja também ftp_connect().

Anterior | Principal | Próxima
ftp_chmod | Acima | ftp_connect


ftp_connect

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_connect -- Abre uma conexão FTP

Descrição

resource ftp_connect ( string host [, int port [, int timeout]])

Retorna uma conexão FTP em caso de sucesso ou FALSE se houver um erro.

ftp_connect() abre uma conexão FTP para o host especificado. O parâmetro host não deve conter nenhuma barra ao final e nem o prefixo ftp://. O parâmetro port especifica uma porta alternativa para conectar. Se for omitido ou for zero, então a porta padrão do FTP, 21, será usada.

O parâmetro timeout especifica um limite de tempo para todas as operações seguintes. Se for omitido o valor padrão é de 90 segundos. Este limite pode ser obtido e modificado a qualquer hora com ftp_set_option() e ftp_get_option().

Nota: O parâmetro timeout tornou-se disponível aparir do PHP 4.2.0.

Exemplo 1. Exemplo ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// estabelece a conexão ou morre
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

?>

Veja também ftp_close() e ftp_ssl_connect().

Anterior | Principal | Próxima
ftp_close | Acima | ftp_delete


ftp_delete

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_delete -- Exclui um arquivo no servidor FTP

Descrição

bool ftp_delete ( resource ftp_stream, string path)

ftp_delete() apaga o arquivo especificado por path no servidor FTP.

Exemplo 1. Exemplo ftp_delete()

<?php
$file = 'public_html/old.txt';

// Define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// tenta excluir $file
if (ftp_delete($conn_id, $file)) {
   echo "O arquivo $file foi excluído\n";
} else {
   echo "não foi possível excluir $file\n";
}

// fecha a conexão
ftp_close($conn_id);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ftp_connect | Acima | ftp_exec


ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_exec -- Solicita a execução de um programa no servidor FTP

Descrição

bool ftp_exec ( resource ftp_stream, string comando)

Envia uma requisição SITE EXEC comando para o servidor FTP. Retorna TRUE se o comando foi bem sucedido (o servidor enviou o código de resposta: 200); se não retorna FALSE.

Exemplo 1. Exemplo ftp_exec()

<?php

$command = 'ls -al';

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ($res = ftp_exec($conn_id, $command)) {
    echo "$command foi executado<br />\n";
    echo nl2br($res);
} else {
    echo 'Não foi possível executar ' . $command;
}

?>

Veja também ftp_raw().

Anterior | Principal | Próxima
ftp_delete | Acima | ftp_fget


ftp_fget

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_fget -- Copia um arquivo de um servidor FTP e salva para um arquivo aberto

Descrição

bool ftp_fget ( resource ftp_stream, resource handle, string arquivo_remoto, int modo [, int resumepos])

ftp_fget() obtém arquivo_remoto apartir do servidor FTP, e o escreve para um ponteiro de arquivo, handle. O modo de transferência especificado deve ser FTP_ASCII ou FTP_BINARY.

Nota: O parâmetro resumepos foi adicionado no PHP 4.3.0.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ftp_get(), ftp_nb_get() e ftp_nb_fget().

Anterior | Principal | Próxima
ftp_exec | Acima | ftp_fput


ftp_fput

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_fput -- Carrega um arquivo aberto para um servidor FTP

Descrição

bool ftp_fput ( resource ftp_stream, string arquivo_remoto, resource handle, int modo [, int startpos])

ftp_fput() carrega os dados do ponteiro de arquivo handle até o final do arquivo. Os resultados são guardados no arquivo_remoto no servidor FTP. O modo de transferência especificado deve ser FTP_ASCII ou FTP_BINARY.

Exemplo 1. Exemplo ftp_fput()

<?php

// abre algum arquivo para leitura
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// tenta carregar $file
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "O arquivo foi carregado com sucesso $file\n";
} else {
    echo "Houve um problema ao carregar o arquivo $file\n";
}

// fecha a conexão e o manipulador de arquivo
ftp_close($conn_id);
fclose($fp);

?>

Nota: O parâmetro startpos foi adicionado no PHP 4.3.0.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ftp_put(), ftp_nb_fput() e ftp_nb_put().

Anterior | Principal | Próxima
ftp_fget | Acima | ftp_get_option


ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_option -- Obtém opções em tempo de executão da conexão FTP atual

Descrição

mixed ftp_get_option ( resource ftp_stream, int option)

Retorna o valor em caso de sucesso ou FALSE se a option(opção) não for suportada. No último caso, uma mensagem de aviso também é enviada.

Esta retorna o valor para a option requerida para a ftp_stream especificada. Atualmente, as seguinte opções são suportadas:

Tabela 1. Opções FTP em tempo de execução suportadas

FTP_TIMEOUT_SEC Retorna o limite de tempo atual para as operações de rede.

Exemplo 1. ftp_get_option() example

<?php
// Get the timeout of the given FTP stream
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Veja também ftp_set_option().

Anterior | Principal | Próxima
ftp_fput | Acima | ftp_get


ftp_get

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_get -- Copia um arquivo de um servidor FTP

Descrição

bool ftp_get ( resource ftp_stream, string arquivo_local, string arquivo_remoto, int modo [, int resumepos])

ftp_get() obtém o arquivo_remoto apartir do servidor FTP, e o salva em arquivo_local no computador local. O modo de transferência especificado deve ser FTP_ASCII ou FTP_BINARY.

Nota: O parâmetro resumepos foi adicionado no PHP 4.3.0.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo ftp_get()

<?php

// define algumas variavéis
$arquivo_local = 'local.zip';
$server_file = 'server.zip';

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// tenta fazer o download de $server_file e salvar em $local_file
if (ftp_get($conn_id, $arquivo_local, $server_file, FTP_BINARY)) {
    echo "Foi salvo como $arquivo_local\n";
} else {
    echo "houve um probema\n";
}

// fecha a conexão
ftp_close($conn_id);

?>

Veja também ftp_fget(), ftp_nb_get() e ftp_nb_fget().

Anterior | Principal | Próxima
ftp_get_option | Acima | ftp_login


ftp_login

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_login -- Realiza o login em uma conexão FTP

Descrição

bool ftp_login ( resource ftp_stream, string username, string password)

Realiza o login em na conexão FTP indicada.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// estabelace a conexão ou morre
$conn_id = ftp_connect($ftp_server) or die("Não pude conectar ao servidor $ftp_server");

// tenta realizar o login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Conectado como $ftp_user@$ftp_server\n";
} else {
    echo "Não foi possível conectar como $ftp_user\n";
}

// fecha a conexão
ftp_close($conn_id);
?>

Anterior | Principal | Próxima
ftp_get | Acima | ftp_mdtm


ftp_mdtm

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_mdtm -- Retorna o tempo da última modificação em um arquivo

Descrição

int ftp_mdtm ( resource ftp_stream, string remote_file)

ftp_mdtm() obtém o tempo da última modificação de um arquivi e retorna como um timestamp Unix. Se houver algum erro, ou se o arquivo não existir, retorna -1.

Retorna um timestamp Unix em caso de sucesso ou -1 em caso de erro.

Exemplo 1. Exemplo ftp_mdtm()

<?php

$file = 'somefile.txt';

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  obtém o tempo da última modificação
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt foi modificado em: March 26 2003 14:16:41.
    echo "$file foi modificado em: " . date("F d Y H:i:s.", $buff);
} else {
    echo "não foi possível obter mdtime";
}

// fecha a conexão
ftp_close($conn_id);

?>

Nota: Nem todos os servidores suportam isto!

Nota: ftp_mdtm() não funciona com diretórios.

Anterior | Principal | Próxima
ftp_login | Acima | ftp_mkdir


ftp_mkdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_mkdir -- Cria um diretório

Descrição

string ftp_mkdir ( resource ftp_stream, string diretório)

Cria o diretório especificado no servidor FTP.

Retorna o nome do diretório recem criado em caso de sucesso ou FALSE em caso de erro.

Veja também ftp_rmdir().

Anterior | Principal | Próxima
ftp_mdtm | Acima | ftp_nb_continue


ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continue -- Continua recuperando/enviando um arquivo(sem bloquear)

Descrição

int ftp_nb_continue ( resource ftp_stream)

Continua recuperando/enviando um arquivo sem bloquear a execução do script.

Exemplo 1. Exemplo ftp_nb_continue()

<?php

// começa o download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // continua baixando...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro ao baixar o arquivo...";
   exit(1);
}
?>

Retorna FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Anterior | Principal | Próxima
ftp_mkdir | Acima | ftp_nb_fget


ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fget -- Obtém um arquivo de um servidor FTP e escreve para um ponteiro de arquivo (sem bloquear)

Descrição

int ftp_nb_fget ( resource ftp_stream, resource handle, string arquivo_remoto, int modo [, int resumepos])

A função ftp_nb_fget() obtém arquivo_remoto apartir de um servidor FTP, e o escreve para o ponteiro de arquivo indicado, handle. O modo de transferência deve ser FTP_ASCII ou FTP_BINARY. A diferença entre esta função e a função ftp_fget() é que esta função obtém o arquivo sem sincronia, então o seu programa pode realizar outras operações enquando o arquivo esta sendo obtido.

Exemplo 1. Exemplo ftp_nb_fget()

<?php

// abre algum arquivo para leitura
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// começa o download
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // faça o que você quiser
   echo ".";

   // continue baixando...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro ao baixar o arquivo...";
   exit(1);
}

// fecha o ponteiro do arquivo
fclose($fp);
?>

Retorna FTP_FAILED, FTP_FINISHED, ou FTP_MOREDATA.

Veja também ftp_nb_get(),
ftp_nb_continue(), ftp_fget() e
ftp_get().

Anterior | Principal | Próxima
ftp_nb_continue | Acima | ftp_nb_fput


ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fput -- Salva um arquivo aberto para um servidor FTP(sem bloquear)

Descrição

int ftp_nb_fput ( resource ftp_stream, string arquivo_remoto, resource handle, int modo [, int startpos])

ftp_nb_fput() envia os dados do ponteiro de arquivo handle até o final do arquivo. O resultado é guardado no arquivo_remoto no servidor FTP. O modo de transferência especificado deve ser FTP_ASCII ou FTP_BINARY. A diferença entre esta função e a função ftp_fput() é que esta função envia o arquivo sem sincronia, então o seu programa pode realizar outras operações enquando o arquivo esta sendo enviado.

Exemplo 1. Exemplo ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Começa o upload
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faça o que você quiser
   echo ".";

   // Continue o upload...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro ao fazer o upload do arquivo...";
   exit(1);
}

fclose($fp);
?>

Retorna FTP_FAILED, FTP_FINISHED, ou FTP_MOREDATA.

Veja também ftp_nb_put(),
ftp_nb_continue(), ftp_put()
e ftp_fput().

Anterior | Principal | Próxima
ftp_nb_fget | Acima | ftp_nb_get


ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Obtém um arquivo do servidor FTP e salva em um arquivo local(sem bloquear)

Descrição

int ftp_nb_get ( resource ftp_stream, string arquivo_local, string arquivo_remoto, int modo [, int resumepos])

ftp_nb_get() obtém o arquivo_remoto apartir do servidor FTP e o salva em arquivo_local no computador local. O modo de transferencia especificado deve ser FTP_ASCII ou FTP_BINARY. A diferença entre esta função e a função ftp_get() é que esta função obtém o arquivo sem sincronia, então o seu programa pode realizar outras operações enquando o arquivo esta sendo obtido.

Retorna FTP_FAILED, FTP_FINISHED, ou FTP_MOREDATA.

Exemplo 1. ftp_nb_get() example

<?php

// Inicia o download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faça o que quizer
   echo ".";

   // Continue o download...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro no download do arquivo...";
   exit(1);
}
?>

Exemplo 2. Continuando o download com ftp_nb_get()

<?php

// Começa
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// OU: $ret = ftp_nb_get($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Faça o que quizer
   echo ".";

   // Continue o download...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro no download do arquivo...";
   exit(1);
}
?>

Exemplo 3. Continuando um download na posição 100 para um novo arquivo com ftp_nb_get()

<?php

// Desabilita o Autoseek
ftp_set_option($my_connection, FTP_AUTOSEEK, FALSE);

// Começa
$ret = ftp_nb_get($my_connection, "novo_arquivo", "LEIAME", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

    /* ... */

   // Continue o download...
   $ret = ftp_nb_continue($my_connection);
}
?>

No exemplo acima, "novo_arquivo" é 100 bytes menor do que "LEIAME" que esta no servidor FTP porque nós começamos a ler a partir da posição 100. Se nós não tivessemos desabilitado FTP_AUTOSEEK, os primeiros 100 bytes de "novo_arquivo" seriam '\0'.

Veja também ftp_nb_fget(),
ftp_nb_continue(),
ftp_get() e ftp_fget().

Anterior | Principal | Próxima
ftp_nb_fput | Acima | ftp_nb_put


ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put -- Salva um arquivo em um servidor FTP(sem bloquear)

Descrição

bool ftp_nb_put ( resource ftp_stream, string arquivo_remoto, string arquivo_local, int modo [, int startpos])

ftp_nb_put() salva o arquivo_local no servidor FTP como arquivo_remoto. O modo de transferência especificado deve ser FTP_ASCII ou FTP_BINARY. A diferença entre esta função e a função ftp_put() é que esta função obtém o arquivo sem sincronia, então o seu programa pode realizar outras operações enquando o arquivo esta sendo obtido.

Retorna FTP_FAILED, FTP_FINISHED, ou FTP_MOREDATA.

Exemplo 1. Exemplo ftp_nb_put()

<?php

// Inicia o Upload
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faça o que quizer
   echo ".";

   // Continue o upload...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro ao fazer o upload do arquivo...";
   exit(1);
}
?>

Exemplo 2. Continuando um upload com ftp_nb_put()

<?php

// Começa
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// OR: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Faça o que quizer
   echo ".";

   // Continue o upload...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Houve um erro ao fazer o upload do arquivo...";
   exit(1);
}
?>

Veja também ftp_nb_fput(),
ftp_nb_continue(), ftp_put()
e ftp_fput().

Anterior | Principal | Próxima
ftp_nb_get | Acima | ftp_nlist


ftp_nlist

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_nlist -- Retorna uma lista de arquivos do diretório indicado

Descrição

array ftp_nlist ( resource ftp_stream, string directory)

Retorna uma matriz de nomes de arquivos do diretório especificado em caso de sucesso ou FALSE se ouver um erro.

Exemplo 1. Exemplo ftp_nlist()

<?php

// estabelece o conexão
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// obtém o conteúdo do diretório atual
$contents = ftp_nlist($conn_id, ".");

// mostra $contents
var_dump($contents);
?>

O exemplo acima vai mostrar algo parecido com:

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Veja também ftp_rawlist().

Anterior | Principal | Próxima
ftp_nb_put | Acima | ftp_pasv


ftp_pasv

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_pasv -- Muda o modo passivo para on(ligado) ou off(desligado)

Descrição

bool ftp_pasv ( resource ftp_stream, bool pasv)

ftp_pasv() liga o modo passivo se o parâmetro pasv for TRUE. Ele desliga o modo passivo de o parâmetro pasv for FALSE. No modo passivo, as conexões de dados são iniciadas pelo cliente, ao invés de serem pelo servidor.

Exemplo 1. Exemplo ftp_pasv()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// ativa o modo passivo
ftp_pasv($conn_id, true);

// faz o upload de um arquivo
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
   echo "upload bem sucedido $file\n";
} else {
   echo "Houve um problema ao fazer o upload do arquivo $file\n";
}

// fecha a conexão
ftp_close($conn_id);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ftp_nlist | Acima | ftp_put


ftp_put

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_put -- Salva um arquivo em um servidor FTP

Descrição

bool ftp_put ( resource ftp_stream, string arquivo_remoto, string arquivo_local, int modo [, int startpos])

ftp_put() salva o arquivo_local no servidor FTP como arquivo_remoto. O modo de transferência especificado deve ser FTP_ASCII ou FTP_BINARY.

Nota: O parâmetro startpos foi adicionado no PHP 4.3.0.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// faz o upload
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
   echo "upload bem sucedido de $file\n";
} else {
   echo "Houve um problema ao fazer o upload de $file\n";
}

// fecha a conexão
ftp_close($conn_id);
?>

Veja também ftp_fput(), ftp_nb_fput() e ftp_nb_put().

Anterior | Principal | Próxima
ftp_pasv | Acima | ftp_pwd


ftp_pwd

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_pwd -- Retorna o nome do diretório atual no servidor FTP

Descrição

string ftp_pwd ( resource ftp_stream)

Retorna o diretório atual ou FALSE se houver erro.

Exemplo 1. Exemplo ftp_pwd()

<?php

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário  e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// muda o diretório para public_html
ftp_chdir($conn_id, 'public_html');

// mostra o diretório atual
echo ftp_pwd($conn_id); // /public_html

// fecha a conexão
ftp_close($conn_id);
?>

Anterior | Principal | Próxima
ftp_put | Acima | ftp_quit


ftp_quit

ftp_quit -- Apelido para ftp_close()

Descrição

Esta função é um apelido para ftp_close().

Anterior | Principal | Próxima
ftp_pwd | Acima | ftp_raw


ftp_raw

(PHP 5)

ftp_raw -- Envia um comando arbitrário ao servidor FTP

Descrição

array ftp_raw ( resource ftp_stream, string comand0)

Envia um comando arbitrário para o servidor FTP. Retorna a resposta do servidor como uma matriz de strings. Não é feita nenhuma interpretação na string de resposta, nem a função ftp_raw() deterina se o comando foi bem sucedido.

Exemplo 1. Usando ftp_raw() para fazer o login no servidor FTP manualmente.

<?php
$fp = ftp_connect("ftp.example.com");

/* Isto é o mesmo que:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Veja também ftp_exec().

Anterior | Principal | Próxima
ftp_quit | Acima | ftp_rawlist


ftp_rawlist

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rawlist -- Retorna uma lista detalhada dos arquivos em um diretório

Descrição

array ftp_rawlist ( resource ftp_stream, string directory)

ftp_rawlist() executa um comando FTP LIST, e retorna o resultado como uma matriz. Cada elemento da matriz corresponde a uma linha de texto. A saída não é interpretada de nenhuma maneira. O identificador de tipo de sistema retornado por ftp_systype() pode ser utilizado para determinar como os resultados devem ser interpretados.

Exemplo 1. Exemplo ftp_rawlist()

<?php

// define a conexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// obtém a lista de arquivos para /
$buff = ftp_rawlist($conn_id, '/');

// fecha a conexão
ftp_close($conn_id);

// mostra a saída
var_dump($buff);
?>

O exemplo acima irá mostrar algo similar a:

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Veja também ftp_nlist().

Anterior | Principal | Próxima
ftp_raw | Acima | ftp_rename


ftp_rename

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rename -- Renomeia um arquivo no servidor FTP

Descrição

bool ftp_rename ( resource ftp_stream, string from, string to)

ftp_rename() renomeia um arquivo ou diretório que tem atualmente o nome from para o novo nome to, usando a conexão FTP ftp_stream.

Exemplo 1. Exemplo ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// define a comexão básica
$conn_id = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// tenta renomear $olf_file para $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
echo "O arquivo $old_file foi renomeado para $new_file\n";
} else {
echo "Houve um problema ao renomear $old_file para $new_file\n";
}

// fecha a conexão
ftp_close($conn_id);
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ftp_rawlist | Acima | ftp_rmdir


ftp_rmdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rmdir -- Remove um diretório

Descrição

bool ftp_rmdir ( resource ftp_stream, string diretório)

Remove o diretório especificado. O diretório deve ser um caminho absoluto ou relativo para um diretório vazio.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo ftp_rmdir()

<?php

$dir = 'www/';

// Define a conexão básica
$conn_id = ftp_connect($ftp_server);

// Login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_rmdir($conn_id, $dir)) {
     echo "Foi excluído com sucesso $dir\n";
} else {
    echo "Houve um problema ao excluir $dir\n";
}

ftp_close($conn_id);

?>

Veja também ftp_mkdir().

Anterior | Principal | Próxima
ftp_rename | Acima | ftp_set_option


ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_option -- Define opções do FTP em tempo de execução

Descrição

bool ftp_set_option ( resource ftp_stream, int opção, mixed valor)

Retorna TRUE se a opção puder ser estabelecida; FALSE se não. Uma mensagem de aviso será mostrada se o parâmetro opção não for suportado ou se o valor passado não seja esperado para a opção indicada.

Esta opção conecta varias opções em tempo de execução para a conexão FTP especificada. O parâmetro valor depende de qual opção é escolhida para ser alterada. Atualmente as seguintes opções são suportadas:

Tabela 1. Opções suportadas

FTP_TIMEOUT_SEC | Modifica o limite de tempo em segundos para as operações de rede. O valor deve ser um inteiro e maior do que 0. O valor de limite de tempo padrão é 90 segundos.
FTP_AUTOSEEK | Quando ativado, requesições GET ou PUT com um parâmetro resumepos ou startpos irão primeiro procurar a posição especificada no arquivo. Isto esta ativado por padrão.

Exemplo 1. Exemplo ftp_set_option()

<?php
// Define o limite de tempo para 10 segundos
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Veja também ftp_get_option().

Anterior | Principal | Próxima
ftp_rmdir | Acima | ftp_site


ftp_site

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

ftp_site -- Envia um comando SITE para o servidor

Descrição

bool ftp_site ( resource ftp_stream, string cmd)

ftp_site() envia o comando especificado por cmd para o servidor FTP. Comandos SITE não são padronizados e variam de servidor a servidor. Eles são uteis para gerenciar coisas como permissões de aqruivos e membros de grupos.

Exemplo 1. Enviando um comando SITE para um servidor FTP

<?php
/* Conecta ao servidor FTP */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Não foi possível conectar com ftp.example.com');

/* Login como "user" com senha "pass" */
if (!ftp_login($conn, 'user', 'pass')) die('Erro ao fazer o login em ftp.example.com');

/* Executa o comando: "SITE CHMOD 0600 /home/user/privatefile" no servidor FTP*/
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "O comando foi executado.\n";
} else {
   die('O comando falhou.');
}
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ftp_raw().

Anterior | Principal | Próxima
ftp_set_option | Acima | ftp_size


ftp_size

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_size -- Retorna o tamanho de um arquivo

Descrição

int ftp_size ( resource ftp_stream, string arquivo_remoto)

ftp_size() retorna o tamanho de um arquivo_remoto em bytes. Se houver um erro, ou se o arquivo indicado não existir, ou se for um diretório, é retornado -1. Nem todos os servidores suportam isto.

Retorna o tamanho do arquivo em caso de sucesso ou -1 em caso de erro.

Exemplo 1. Exemplo ftp_size()

<?php

$file = 'somefile.txt';

// Define a conexão básica
$conn_id = ftp_connect($ftp_server);

// Login com nome de usuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "o tamanho de $file é $res bytes";
} else {
    echo "não foi possível obter o tamanho";
}

ftp_close($conn_id);
// Fecha a conexão
?>

Veja também ftp_rawlist().

Anterior | Principal | Próxima
ftp_site | Acima | ftp_ssl_connect


ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connect -- Abre uma conexão segura SSL-FTP

Descrição

resource ftp_ssl_connect ( string host [, int port [, int timeout]])

Retorna uma conexão SSL-FTP em caso de sucesso, se não retorna FALSE.

ftp_ssl_connect() abre uma conexão SSL-FTP com o host especificado. O parâmetro port especifica uma porta alternativa para se conectar. Se for omitida ou for 0 então a porta de FTP padrão, 21, será usada.

O parâmetro timeout especifica o limite de tempo para todas as operações de rede. Se for omitido, o valor padrão é 90 segundos. O limite de tempo pode ser modificado e obtido a qualquer momento com ftp_set_option() e ftp_get_option().

Exemplo 1. Exemplo ftp_ssl_connect()

<?php

// Define a conexão básica ssl
$conn_id = ftp_ssl_connect($ftp_server);

// Login com nome d eusuário e senha
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo ftp_pwd($conn_id); // /

// fecha a conexão ssl
ftp_close($conn_id);
?>

Porque esta função pode não existir: ftp_ssl_connect() somente esta disponível se o suporte a OpenSSL esta ativado em sua versão do PHP. Se não estiver ativado e você tiver compilado o suporte ao FTP, este é o motivo.

Veja também ftp_connect().

Anterior | Principal | Próxima
ftp_size | Acima | ftp_systype


ftp_systype

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_systype -- Retorna o tipo de sistema do servidor FTP

Descrição

string ftp_systype ( resource ftp_stream)

Retorna o tipo de sistema do servidor ou FALSE se houver erro.

Exemplo 1. Exemplo ftp_systype()

<?php

// Conexão FTP
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// Obtém o tipo de sistema
if ($type = ftp_systype($ftp)) {
    echo "Example.com é mantido por $type\n";
} else {
    echo "Não foi possível ober o tipo de sistema";
}

?>

Este exemplo irá mostrar algo parecido com:

Example.com é mantido por UNIX

Anterior | Principal | Próxima
ftp_ssl_connect | Acima | Funções para manuseamento de funções


Funções para manuseamento de funções

Manual do PHP
Anterior Próxima

XXXIV. Funções para manuseamento de funções

Introdução

Todas estas funções lidam com várias operações complexas usando funções.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
call_user_func_array -- Chama uma função de usuário dada por um array de parâmetros
call_user_func -- Chama uma função de usuário dada pelo primeiro parâmetro
create_function -- Cria uma função anônima (lambda-style)
func_get_arg -- Retorna um item para uma lista de argumentos
func_get_args -- Retorna um array compreendendo uma lista de argumentos de função
func_num_args -- Retorna o número de argumentos passados para a função
function_exists -- Retorna TRUE se a função dada está definida
get_defined_functions -- Retorna um array de todas as funções definidas
register_shutdown_function -- Registra uma função para ser executada ao final da execução
register_tick_function -- Registra uma função para executar a cada instante
unregister_tick_function -- Desregistra uma função executada a cada instante

Anterior | Principal | Próxima
ftp_systype | Acima | call_user_func_array


call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array -- Chama uma função de usuário dada por um array de parâmetros

Descrição

mixed call_user_func_array ( callback function [, array param_arr])

Chama uma função de usuário dada por function, com os parâmetros em param_arr. Por exemplo:

<?php
function debug($var, $val) {
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val))
        print_r($val);
    else
        echo "\n$val\n";
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array ('debug', array("host", $host));
call_user_func_array ('debug', array("c", $c));
call_user_func_array ('debug', array("_POST", $_POST));
?>

Veja também:
call_user_func(),
call_user_method(),
call_user_method_array().

Anterior | Principal | Próxima
Funções para manuseamento de funções | Acima | call_user_func


call_user_func

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

call_user_func -- Chama uma função de usuário dada pelo primeiro parâmetro

Descrição

mixed call_user_func ( callback function [, mixed parameter [, mixed ...]])

Chama uma função de usuário dada pelo parâmtro por function. Tome o seguinte exemplo:

<?php
function barber ($type) {
    print "You wanted a $type haircut, no problem";
}
call_user_func ('barber', "mushroom");
call_user_func ('barber', "shave");
?>

Métodos de objeto também devem ser chamados estaticamente usando essa função passando array($objectname, $methodname) para o parâmetro function.

<?php
class myclass {
  function say_hello() {
    print "Hello!\n";
  }
}

$classname = "myclass";

call_user_func(array($classname,'say_hello'));
?>

Veja também:
is_callable(),
call_user_func_array(),
call_user_method(),
call_user_method_array().

Anterior | Principal | Próxima
call_user_func_array | Acima | create_function


create_function

(PHP 4 >= 4.0.1, PHP 5)

create_function -- Cria uma função anônima (lambda-style)

Descrição

string create_function ( string args, string code)

Cria uma função anônima para os parâmetros passados, e retorna um nome único para isso. Usualmente o args irá ser passado com um apóstrofo delimitando a string, e isso também é recomendado para code. O motivo para usar apóstrofo em torno da string, é para proteger que nome de variáveis sejam interpretados, caso contrário, se você usar aspas duplas elas irão precisar de uma barra invertida em nomes de variáveis, e.g. \$avar.

Você pode usar essas funções, para (por exemplo) criar uma função para que informações sejam colhidas todo o tempo:

Exemplo 1. Criando uma função anônima com create_function()

<?php
$newfunc = create_function('$a,$b','return "ln($a) + ln($b) = ".log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2,M_E)."\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Ou, talvez ter funções de manuseamento gerais que podem aplicar uma configuração de operações para a lista de parâmetros:

Exemplo 2. Fazendo um processamento geral com a função create_function()

<?php
function process($var1, $var2, $farr) {
    for ($f=0; $f < count($farr); $f++)
    echo $farr[$f]($var1,$var2)."\n";
}

// create a bunch of math functions
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nUsing the first array of anonymous functions\n";
echo "parameters: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// now make a bunch of string processing functions
$garr = array(
    create_function('$b,$a','if (strncmp($a,$b,3) == 0) return "** \"$a\" '.
    'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    create_function('$a,$b','; return "CRCs: ".crc32($a)." , ".crc32(b);'),
    create_function('$a,$b','; return "similar(a,b) = ".similar_text($a,$b,&$p)."($p%)";')
    );
echo "\nUsing the second array of anonymous functions\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

e quando você executa o código acima, a saída irá ser:

Using the first array of anonymous functions
parameters: 2.3445, M_PI
some trig: -1.6291725057799
a hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Using the second array of anonymous functions
** "Twas the night" and "Twas brilling and the slithy toves"
** Look the same to me! (looking at the first 3 chars)
CRCs: -725381282 , 1908338681
similar(a,b) = 11(45.833333333333%)

Porém talvez o uso mais comum das funções lambda-style (anonymous) seja criar funções de retorno, por exemplo quando usando array_walk() ou usort()

Exemplo 3. Usando funções anônimas como funções de chamada de retorno

<?php
$av = array("the ","a ","that ","this ");
array_walk($av, create_function('&$v,$k','$v = $v."mango";'));
print_r($av);  // for PHP 3 use var_dump()
/*
outputs:
Array
(
  [0] => the mango
  [1] => a mango
  [2] => that mango
  [3] => this mango
)
*/

// an array of strings ordered from shorter to longer
$sv = array("small","larger","a big string","it is a string thing");
print_r($sv);
/*
outputs:
Array
(
  [0] => small
  [1] => larger
  [2] => a big string
  [3] => it is a string thing
)
*/

// sort it from longer to shorter
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
/*
outputs:
Array
(
  [0] => it is a string thing
  [1] => a big string
  [2] => larger
  [3] => small
)
*/
?>

Anterior | Principal | Próxima
call_user_func | Acima | func_get_arg


func_get_arg

(PHP 4 , PHP 5)

func_get_arg -- Retorna um item para uma lista de argumentos

Descrição

mixed func_get_arg ( int arg_num)

Retorna o argumento que está em arg_num compensado em uma lista de argumentos de uma função função definida pelo usuário. Argumentos de funções são contados começando do zero. func_get_arg() irá gerar um aviso se chamada de fora de uma definição de função.

Se arg_num é maior do que o número de argumentos passados atualmente, um aviso irá ser gerado e func_get_arg() irá retornar FALSE.

<?php
function foo() {
     $numargs = func_num_args();
     echo "Number of arguments: $numargs<br>\n";
     if ($numargs >= 2) {
     echo "Second argument is: " . func_get_arg (1) . "<br>\n";
     }
}

foo (1, 2, 3);
?>

func_get_arg() deve ser usada em conjunto com func_num_args() e func_get_args() para permitir funções definidas por usuário aceitem comprimento de variáveis na lista de argumentos.

Nota: Essa função foi adicionada no PHP 4.

Anterior | Principal | Próxima
create_function | Acima | func_get_args


func_get_args

(PHP 4 , PHP 5)

func_get_args -- Retorna um array compreendendo uma lista de argumentos de função

Descrição

array func_get_args ( void )

Retorna um array no qual cada elemento corresponde ao membro da lista de argumentos de função atual. func_get_args() irá gerar um aviso se chamada de fora de uma definição de função.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br>\n";
    if ($numargs >= 2) {
    echo "Second argument is: " . func_get_arg (1) . "<br>\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
    echo "Argument $i is: " . $arg_list[$i] . "<br>\n";
    }
}

foo (1, 2, 3);
?>

func_get_args() deve ser usada em conjunto com func_num_args() e func_get_arg() para permitir funções definidas por usuário aceitem comprimento de variáveis na lista de argumentos.

Nota: Essa função foi adicionada no PHP 4.

Anterior | Principal | Próxima
func_get_arg | Acima | func_num_args


func_num_args

(PHP 4 , PHP 5)

func_num_args -- Retorna o número de argumentos passados para a função

Descrição

int func_num_args ( void )

Retorna o número de argumentos passados na função atual definida pelo usuário. func_num_args() irá gerar um erro se chamada de fora de uma função definida por usuário.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Number of arguments: $numargs\n";
}

foo (1, 2, 3);    // Prints 'Number of arguments: 3'
?>

func_num_args() deve ser usada em conjunto com func_get_arg() e func_get_args() para permitir funções definidas por usuário aceitem comprimento de variáveis na lista de argumentos.

Anterior | Principal | Próxima
func_get_args | Acima | function_exists


function_exists

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

function_exists -- Retorna TRUE se a função dada está definida

Descrição

bool function_exists ( string function_name)

Verifica a lista de funções definidas, ambas embutidas (interna) e definidas pelo usuário, para function_name. Retorna TRUE em caso de sucesso ou FALSE em falhas.

<?php
if (function_exists('imap_open')) {
    echo "IMAP functions are available.<br />\n";
} else {
    echo "IMAP functions are not available.<br />\n";
}
?>

Note que o nome da função deve existir se a função chama a si própria se torna inútil devido a configuração ou opções de compilação (com a função image sendo um exemplo). Note também que function_exists() irá retornar FALSE para construtores, como include_once() e echo().

Veja também method_exists() e get_defined_functions().

Anterior | Principal | Próxima
func_num_args | Acima | get_defined_functions


get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions -- Retorna um array de todas as funções definidas

Descrição

array get_defined_functions ( void )

Essa função retorna um array multidimensional contendo uma lista de todas as funções definidas, ambas embutidas (interna) e definidas pelo usuário. As funções internas irão estar acessíveis via $arr["internal"], e as definidas por usuário $arr["user"] (veja exemplo abaixo).

<?php
function myrow($id, $data) {
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

A saída irá ser alguma coisa como as linhas que seguem:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

Veja também get_defined_vars() e get_defined_constants().

Anterior | Principal | Próxima
function_exists | Acima | register_shutdown_function


register_shutdown_function

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

register_shutdown_function -- Registra uma função para ser executada ao final da execução

Descrição

void register_shutdown_function ( callback function)

Registra a função nomeada por function para ser executada quando o processamento do script estiver completo.

Múltiplas chamadas para register_shutdown_function() podem ser feitas, e cada uma irá ser chamada na mesma ordem como elas foram registradas. Se você chamar exit() dentro de uma função registrada "shutdown", o processamento irá parar completamente e nenhuma outra função shutdown irá ser chamada.

As funções "shutdown" registradas são chamadas após a requisição ter sido completamente feita (incluindo envio e saída de buffer), então isso não é possível enviar saída para o brownser usando echo() ou print(), ou recuperar o conteúdo de algum buffer de saída usando ob_get_contents().

Nota: Tipicamente funções indefinidas causam erros fatais no PHP, mas quando a function chamada com register_shutdown_function() é indefinida, um erro de nível E_WARNING é gerado ao invés disso. Também, por razões internas do PHP, esso erro irá referenciar-se como Unknown() na linha #0.

Veja também auto_append_file, exit(), e a seção em connection handling.

Anterior | Principal | Próxima
get_defined_functions | Acima | register_tick_function


register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_function -- Registra uma função para executar a cada instante

Descrição

void register_tick_function ( callback function [, mixed arg])

Registra a função nomeada por func para ser executada quando um tick é chamado. Também, você deve passar um array consistindo de um objeto e um método como a func.

Exemplo 1. Exemplo de uso da register_tick_function()

<?php
// using a function as the callback
register_tick_function('my_function', TRUE);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), TRUE);
?>

Veja também declare() e unregister_tick_function().

Anterior | Principal | Próxima
register_shutdown_function | Acima | unregister_tick_function


unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_function -- Desregistra uma função executada a cada instante

Descrição

void unregister_tick_function ( string function_name)

Desregistra uma função nomeada por function_name então isso não é mais executado quando uma tick é chamada.

Anterior | Principal | Próxima
register_tick_function | Acima | Gettext


Gettext

Manual do PHP
Anterior Próxima

XXXV. Gettext

Introdução

A função gettext adiciona uma API de NLS (Native Language Support ou Suporte Nativo de Linguagem) que pode ser usada para internacionalizar seus aplicativos PHP. Por favor veja a documentação do gettext para o seu sistema para uma explicação mais clara de suas funções ou veja os documentos em http://www.gnu.org/software/gettext/manual/index.html.

Requisitos

Para usar estas funções você deve baixar e instalar o pacote do GNU gettext em http://www.gnu.org/software/gettext/gettext.html

Instalação

Para incluir o suporte ao GNU gettext na sua instalação PHP você deve adicionar a opção --with-gettext[=DIR] onde DIR é o diretório de instalação do gettext, o diretório padrão é /usr/local.

Nota para usuários do Win32: Para habilitar este módulo no seu ambiente Windows, você deve copiar a DLL gnu_gettext.dll do diretório DLL do seu pacote binário PHP/Win32 para a pasta SYSTEM32 do windows. (Ex: C:\WINNT\SYSTEM32 ou C:\WINDOWS\SYSTEM32). Nas versõs superiores ao PHP 4.2.3 o nome do arquivo mudou para libintl-1.dll, também é necessário que iconv.dll seja copiado.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
bind_textdomain_codeset -- Define qual caracter de codificação será retornado pelas mensagens do catálogo do DOMÍNIO especificado.
bindtextdomain -- Configura o caminho para um domínio
dcgettext -- Substitui o domínio por um lookup
dcngettext -- O mesmo que dcgettext, porém permite que você especifique mais de uma mensagem
dgettext -- Sobreescreve o domínio atual
dngettext -- O mesmo que dgettext, porém você pode escrever mais de uma mensagem
gettext -- Procura por uma mensagem no domínio atual
ngettext -- O mesmo que gettext, mas você pode especificar mais de uma mensagem
textdomain -- Seta o domínio padrão

Anterior | Principal | Próxima
unregister_tick_function | Acima | bind_textdomain_codeset


bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codeset -- Define qual caracter de codificação será retornado pelas mensagens do catálogo do DOMÍNIO especificado.

Descrição

string bind_textdomain_codeset ( string domínio, string codificação)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Gettext | Acima | bindtextdomain


bindtextdomain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

bindtextdomain -- Configura o caminho para um domínio

Descrição

string bindtextdomain ( string domínio, string diretório)

A função bindtextdomain() configura um caminho para um domínio.

Anterior | Principal | Próxima
bind_textdomain_codeset | Acima | dcgettext


dcgettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

dcgettext -- Substitui o domínio por um lookup

Description

string dcgettext ( string domínio, string mensagem, int categoria)

Esta função permite que você sobreescreva o domínio atual por uma simples mensagem de lookup. Ela também permite que você especifique uma categoria.

Anterior | Principal | Próxima
bindtextdomain | Acima | dcngettext


dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettext -- O mesmo que dcgettext, porém permite que você especifique mais de uma mensagem

Descrição

string dcngettext ( string domínio, string msgid1, string msgid2, int n, int categoria)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
dcgettext | Acima | dgettext


dgettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

dgettext -- Sobreescreve o domínio atual

Descrição

string dgettext ( string domínio, string mensagem)

A função dgettext() permite que você sobreescreva o domínio atual por uma simples mensagem de lookup.

Anterior | Principal | Próxima
dcngettext | Acima | dngettext


dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettext -- O mesmo que dgettext, porém você pode escrever mais de uma mensagem

Descrição

string dngettext ( string domínio, string msgid1, string msgid2, int n)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
dgettext | Acima | gettext


gettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

gettext -- Procura por uma mensagem no domínio atual

Descrição

string gettext ( string mensagem)

Esta função retorna uma string traduzida se ela for encontrada na tabela de traduções, ou envia uma mensagem se a string não for encontrada. Você pode usar o caracter '_' como um alias para esta função.

Exemplo 1. gettext()-checa

<?php
// Seta o local para Português
setlocale(LC_ALL, 'pt');

// Especifica o local onde estão as tabelas de traduções
bindtextdomain("meuAplicativoPHP", "./diretorio");

// Escolhe um domínio
textdomain("meuAplicativoPHP");

// Envia uma mensagem de teste
print gettext("Bem vindo ao meu Aplicativo PHP");

// Ou use o alias _() do gettext()
print _("Tenha um bom dia");
?>

Anterior | Principal | Próxima
dngettext | Acima | ngettext


ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettext -- O mesmo que gettext, mas você pode especificar mais de uma mensagem

Description

string ngettext ( string msgid1, string msgid2, int n)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
gettext | Acima | textdomain


textdomain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

textdomain -- Seta o domínio padrão

Descrição

string textdomain ( string text_domain)

Esta função permite à você confiugrar o domínio padrão pelo qual as chamadas são feitas usando a função gettext(), geralmente o nomeado após a aplicação. O domínio padrão é retornado. Chame ela com o parâmetro NULL para pegar as configurações atuais sem alterar isto.

Anterior | Principal | Próxima
ngettext | Acima | GMP


GMP

Manual do PHP
Anterior Próxima

XXXVI. GMP

Introdução

Estas funções permitem a você trabalhar com inteiros de tamanho arbritário usando a biblioteca GNU MP.

Estas funções foram adicionadas no PHP 4.0.4.

Nota: A maioria das funções GMP aceitam números GMP comoargumentos, definidos como resource abaixo. Entretanto, a maioria destas funções também aceitam argumentos númericos e strings, dado que é possível converter posteriormente para um número. Também, caso houver uma função mais rápida que possa trabalhar com números inteiros, ela será usada ao invés de uma função mais lenta quando os argumentos forem inteiros. Isto é feito de forma transparente, em resumo, você poderá usar inteiros em qualquer função que espere um número GMP. Veja também a função gmp_init().

Atenção

Se você quiser explicitamente especificar um número inteiro largo, especifique-o como uma string. Se você não fizer isto, o PHP irá interpretar a literal inteira primeiro, possivelmente resultando em perca de precisão, mesmo antes de começar a utilizar o GMP.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Você pode copiar a biblioteca GMP a partir de http://www.swox.com/gmp/. Este site também tem o manual GMP disponível.

Você vai precisar do GMP versão 2 ou posterior para usar estas funções. Algumas destas funções podem querer uma versão mais recente da biblioteca GMP.

Instalação

Para ter estas funções disponíveis, você deve compilar o PHP com suporte a GMP usando a opção de configuração --with-gmp.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Exemplos

Exemplo 1. Função de fatorial usando GMP

<?php
function fact ($x) {
    if ($x <= 1)
        return 1;
    else
        return gmp_mul ($x, fact ($x-1));
}

print gmp_strval (fact (1000)) . "\n";
?>

Esta irá calcular o fatorial de 1000 (um número grande) muito rapidamente.

Veja Também

Mais funções matemáticas podem ser encontradas nas seções BCMath Funções Matemáticas de Precisão Arbitrária and Matemática e Trigonometria.

Índice
gmp_abs -- Valor absoluto
gmp_add -- Adiciona números
gmp_and -- Lógico AND
gmp_clrbit -- Limpa bit
gmp_cmp -- Compara números
gmp_com -- Calcula o complemento de a
gmp_div_q -- Divide números
gmp_div_qr -- Divide números e retorna o quociente e o resto da divisão
gmp_div_r -- Resto da divisão de números
gmp_div -- Apelido para gmp_div_q()
gmp_divexact -- Divisão exata de números
gmp_fact -- Fatorial
gmp_gcd -- Calcula o MDC
gmp_gcdext -- Calculate GCD and multipliers
gmp_hamdist -- Hamming distance
gmp_init -- Cria um número GMP
gmp_intval -- Converte um número GMP para um inteiro
gmp_invert -- Inverse by modulo
gmp_jacobi -- Jacobi symbol
gmp_legendre -- Legendre symbol
gmp_mod -- Modulo operation
gmp_mul -- Multiplica números
gmp_neg -- Nega o número
gmp_or -- Lógico OR
gmp_perfect_square -- Perfect square check
gmp_popcount -- Contagem de população
gmp_pow -- Potenciação
gmp_powm -- Raise number into power with modulo
gmp_prob_prime -- Check if number is "probably prime"
gmp_random -- Número randomico
gmp_scan0 -- Scan for 0
gmp_scan1 -- Scan for 1
gmp_setbit -- Set bit
gmp_sign -- Sinal do número
gmp_sqrt -- Raíz quadrada
gmp_sqrtrem -- Square root with remainder
gmp_strval -- Converte um número GMP para uma string
gmp_sub -- Subtrai números
gmp_xor -- Lógico XOR

Anterior | Principal | Próxima
textdomain | Acima | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_abs -- Valor absoluto

Descrição

resource gmp_abs ( resource a)

Retorna o valor absoluto de a.

Anterior | Principal | Próxima
GMP | Acima | gmp_add


gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_add -- Adiciona números

Descrição

resource gmp_add ( resource a, resource b)

Adiciona dois números GMP. O resultado será um número GMP representando a soma dos argumentos.

Anterior | Principal | Próxima
gmp_abs | Acima | gmp_and


gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_and -- Lógico AND

Descrição

resource gmp_and ( resource a, resource b)

Calcula o lógico AND de dois números GMP.

Anterior | Principal | Próxima
gmp_add | Acima | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbit -- Limpa bit

Descrição

resource gmp_clrbit ( resource &a, int index)

Limpa (define para 0) o bit index em a.

Anterior | Principal | Próxima
gmp_and | Acima | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmp -- Compara números

Descrição

int gmp_cmp ( resource a, resource b)

Retorna um valor positivo se a > b, zero se a = b e um valor negativo se a < b.

Anterior | Principal | Próxima
gmp_clrbit | Acima | gmp_com


gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_com -- Calcula o complemento de a

Descrição

resource gmp_com ( resource a)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
gmp_cmp | Acima | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_q -- Divide números

Descrição

resource gmp_div_q ( resource a, resource b [, int round])

Divide a by b e retorna o resultado integer. O arredondamento do resultado e definido por round, o qual pode ter os seguintes valores:

  • GMP_ROUND_ZERO: O resultado é truncado em direção a 0.

  • GMP_ROUND_PLUSINF: O resultado é arredondado em direção a +infinito.

  • GMP_ROUND_MINUSINF: O resultado é arredondado em direção a -infinito.

Esta função também pode ser chamada como gmp_div().

Veja também gmp_div_r(), gmp_div_qr()

Anterior | Principal | Próxima
gmp_com | Acima | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qr -- Divide números e retorna o quociente e o resto da divisão

Descrição

array gmp_div_qr ( resource n, resource d [, int round])

Esta função divide n por d e retorna uma matriz, aonde o primeiro elemento é [n/d] (o resultado inteiro da divisão e o segundo sendo (n - [n/d] * d) (o resto da divisão).

Veja a função gmp_div_q() para uma descrição do argumento round.

Exemplo 1. Divisão de números GMP

<?php
    $a = gmp_init ("0x41682179fbf5");
    $res = gmp_div_qr ($a, "0xDEFE75");
    printf("Result is: q - %s, r - %s",
            gmp_strval ($res[0]), gmp_strval ($res[1]));
?>

Veja também gmp_div_q(), gmp_div_r().

Anterior | Principal | Próxima
gmp_div_q | Acima | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_r -- Resto da divisão de números

Descrição

resource gmp_div_r ( resource n, resource d [, int round])

Calcula o resto da devisão inteira de n por d. O resto tem o sinal do argumento n, se não for zero.

Veja a função gmp_div_q() para a descrição do argumento round.

Veja também gmp_div_q() e gmp_div_qr()

Anterior | Principal | Próxima
gmp_div_qr | Acima | gmp_div


gmp_div

gmp_div -- Apelido para gmp_div_q()

Descrição

Esta função é um apelido para gmp_div_q().

Anterior | Principal | Próxima
gmp_div_r | Acima | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexact -- Divisão exata de números

Descrição

resource gmp_divexact ( resource n, resource d)

Divide n por d, usando um algaritimo rápido "exact division". Esta função produz resultados corretos apenas quando sabe anteriormente que d divide n.

Anterior | Principal | Próxima
gmp_div | Acima | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_fact -- Fatorial

Descrição

resource gmp_fact ( int a)

Calcula o fatorial (a!) de a.

Anterior | Principal | Próxima
gmp_divexact | Acima | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcd -- Calcula o MDC

Descrição

resource gmp_gcd ( resource a, resource b)

Calcula o máximo divisor comun de a e b. O resultado é sempre positivo, mesmo que um, ou ambos os argumentos sejam negativos.

Anterior | Principal | Próxima
gmp_fact | Acima | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext -- Calculate GCD and multipliers

Description

array gmp_gcdext ( resource a, resource b)

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the "Diophantine Equation" page at MathWorld

Exemplo 1. Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Error while solving the equation\n";
}

// output: Solution: 12*2 + 21*-1 = 3
?>

Anterior | Principal | Próxima
gmp_gcd | Acima | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdist -- Hamming distance

Description

int gmp_hamdist ( resource a, resource b)

Returns the hamming distance between a and b. Both operands should be non-negative.

Exemplo 1. gmp_hamdist() example

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist is equivilent to: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

The printout of the above program will be:

6
6

See also gmp_popcount(), gmp_xor()

Anterior | Principal | Próxima
gmp_gcdext | Acima | gmp_init


gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_init -- Cria um número GMP

Descrição

resource gmp_init ( mixed number)

Cria um número GMP a partir de um inteiro ou uma string. A representação de string pode ser decimal ou hexadecimal. O segundo caso a string deve começar com 0x.

Exemplo 1. Criando um número GMP

<?php
    $a = gmp_init (123456);
    $b = gmp_init ("0xFFFFDEBACDFEDF7200");
?>

Nota: Não é necessário utilizar esta função se você quer usar um inteiro ou uma string no lugar de um número GMP nas funções GMP, como gmp_add(). Argumentos das funções são automaticamente convertidos para números GMP, se esta conversão é possível e necessária, usando as mesmas regras que gmp_init().

Anterior | Principal | Próxima
gmp_hamdist | Acima | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intval -- Converte um número GMP para um inteiro

Descrição

int gmp_intval ( resource gmpnumber)

Esta função permite converter um número GMP para um inteiro.

Atenção

Esta função retorna um resultado útil apenas se o número atualmente couber em um inteiro do PHP (ex. tipo longo com sinal). Se você quer somente mostrar o número GMP, use a função gmp_strval().

Anterior | Principal | Próxima
gmp_init | Acima | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invert -- Inverse by modulo

Description

resource gmp_invert ( resource a, resource b)

Computes the inverse of a modulo b. Returns FALSE if an inverse does not exist.

Exemplo 1. gmp_invert() example

<?php
echo gmp_invert("5", "10"); // no inverse, outputs nothing, result is FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

The printout of the above program will be:

9

Anterior | Principal | Próxima
gmp_intval | Acima | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobi -- Jacobi symbol

Descrição

int gmp_jacobi ( resource a, resource p)

Computa Jacobi symbol de a e p. p deve ser impar e positivo.

Anterior | Principal | Próxima
gmp_invert | Acima | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendre -- Legendre symbol

Descrição

int gmp_legendre ( resource a, resource p)

Computa o Legendre symbol de a e p. p deve ser inteiro e positivo.

Anterior | Principal | Próxima
gmp_jacobi | Acima | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_mod -- Modulo operation

Description

resource gmp_mod ( resource n, resource d)

Calculates n modulo d. The result is always non-negative, the sign of d is ignored.

Exemplo 1. gmp_mod() example

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

The printout of the above program will be:

2

Anterior | Principal | Próxima
gmp_legendre | Acima | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mul -- Multiplica números

Descrição

resource gmp_mul ( resource a, resource b)

Multiplica a por b e retorna o resultado.

Anterior | Principal | Próxima
gmp_mod | Acima | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_neg -- Nega o número

Descrição

resource gmp_neg ( resource a)

Retorna -a.

Anterior | Principal | Próxima
gmp_mul | Acima | gmp_or


gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_or -- Lógico OR

Descrição

resource gmp_or ( resource a, resource b)

Calcula o lógico OR de dois números GMP.

Anterior | Principal | Próxima
gmp_neg | Acima | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_square -- Perfect square check

Description

bool gmp_perfect_square ( resource a)

Returns TRUE if a is a perfect square, FALSE otherwise.

Exemplo 1. gmp_perfect_square() example

<?php
// 3 * 3, perfect square
var_dump(gmp_perfect_square("9"));

// not a perfect square
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, perfect square
var_dump(gmp_perfect_square("1524157875019052100"));
?>

The printout of the above program will be:

bool(true)
bool(false)
bool(true)

See also: gmp_sqrt(), gmp_sqrtrm().

Anterior | Principal | Próxima
gmp_or | Acima | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcount -- Contagem de população

Descrição

int gmp_popcount ( resource a)

Retorna a contagem de população de a.

Anterior | Principal | Próxima
gmp_perfect_square | Acima | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_pow -- Potenciação

Description

resource gmp_pow ( resource base, int exp)

Eleva base na potencia exp. O caso de 0^0 retorna 1. exp não pode ser negativo.

Anterior | Principal | Próxima
gmp_popcount | Acima | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powm -- Raise number into power with modulo

Description

resource gmp_powm ( resource base, resource exp, resource mod)

Calculate (base raised into power exp) modulo mod. If exp is negative, result is undefined.

Exemplo 1. gmp_powm() example

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

The printout of the above program will be:

2147483648

Anterior | Principal | Próxima
gmp_pow | Acima | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_prime -- Check if number is "probably prime"

Description

int gmp_prob_prime ( resource a [, int reps])

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime. Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

The function uses Miller-Rabin's probabilistic test.

Exemplo 1. gmp_prob_prime() example

<?php
// definitely not a prime
echo gmp_prob_prime("6") . "\n";

// probably a prime
echo gmp_prob_prime("1111111111111111111") . "\n";

// definitely a prime
echo gmp_prob_prime("11") . "\n";
?>

The printout of the above program will be:

0
1
2

Anterior | Principal | Próxima
gmp_powm | Acima | gmp_random


gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_random -- Número randomico

Descrição

resource gmp_random ( int limiter)

Gera um número randomico. O valor do número será entre limiter e zero. Se limiter for negativo, serão gerados números negativos.

Anterior | Principal | Próxima
gmp_prob_prime | Acima | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0 -- Scan for 0

Description

int gmp_scan0 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first clear bit is found. Returns the index of the found bit. The index starts from 0.

Exemplo 1. gmp_scan0() example

<?php
// "0" bit is found at position 3. index starts at 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" bit is found at position 7. index starts at 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

The printout of the above program will be:

3
7

Anterior | Principal | Próxima
gmp_random | Acima | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1 -- Scan for 1

Description

int gmp_scan1 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first set bit is found. Returns the index of the found bit. If no set bit is found, -1 is returned.

Exemplo 1. gmp_scan1() example

<?php
// "1" bit is found at position 3. index starts at 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit is found at position 9. index starts at 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

The printout of the above program will be:

3
9

Anterior | Principal | Próxima
gmp_scan0 | Acima | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbit -- Set bit

Description

void gmp_setbit ( resource &a, int index [, bool set_clear])

Sets bit index in a. set_clear defines if the bit is set to 0 or 1. By default the bit is set to 1. Index starts at 0.

Nota: Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Exemplo 1. gmp_setbit() example

<?php
$a = gmp_init("0xfd");
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a) . "\n";
?>

The printout of the above program will be:

255

See also gmp_clrbit().

Anterior | Principal | Próxima
gmp_scan1 | Acima | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign -- Sinal do número

Descrição

int gmp_sign ( resource a)

Retorna o sinal de a. 1 se a é positivo e -1 se é negativo.

Anterior | Principal | Próxima
gmp_setbit | Acima | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrt -- Raíz quadrada

Descrição

resource gmp_sqrt ( resource a)

Calcula a raíz quadrada de a.

Anterior | Principal | Próxima
gmp_sign | Acima | gmp_sqrtrem


gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtrem -- Square root with remainder

Description

array gmp_sqrtrem ( resource a)

Returns array where first element is the integer square root of a (see also gmp_sqrt()), and the second is the remainder (i.e., the difference between a and the first element squared).

Exemplo 1. gmp_sqrtrem() example

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

The printout of the above program will be:

3, 0
2, 3
1024, 0

Anterior | Principal | Próxima
gmp_sqrt | Acima | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval -- Converte um número GMP para uma string

Descrição

string gmp_strval ( resource gmpnumber [, int base])

Converte o número GMP para a representação de uma string na base base. A base padrão é 10. Valores permitidos para a base vão de 2 até 36.

Exemplo 1. Convertendo um número GMP para uma string

<?php
    $a = gmp_init("0x41682179fbf5");
    printf ("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>

Anterior | Principal | Próxima
gmp_sqrtrem | Acima | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_sub -- Subtrai números

Descrição

resource gmp_sub ( resource a, resource b)

Subtrai b de a e retorna o resultado.

Anterior | Principal | Próxima
gmp_strval | Acima | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xor -- Lógico XOR

Descrição

resource gmp_xor ( resource a, resource b)

Calcula o lógico exclusivo OR (XOR) de dois números GMP.

Anterior | Principal | Próxima
gmp_sub | Acima | HTTP


HTTP

Manual do PHP
Anterior Próxima

XXXVII. HTTP

Introdução

Estas funções permitem a você manipular a saída enviada de volta ao browser remoto ao nível do protocolo HTTP.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
header -- Envia um cabeçalho HTTP diretamente
headers_list -- Returns a list of response headers sent (or ready to send)
headers_sent -- Confere se os cabeçalhos foram enviados ou não
setcookie -- Envia um cookie
setrawcookie -- Send a cookie without urlencoding the cookie value

Anterior | Principal | Próxima
gmp_xor | Acima | header


header

(PHP 3, PHP 4 , PHP 5)

header -- Envia um cabeçalho HTTP diretamente

Descrição

int header ( string string [, bool replace [, int http_response_code]])

header() é usado para enviar diretamete cabeçalhos HTTP headers. Veja HTTP/1.1 specification para maiores informações sobre cabeçalhos HTTP.

O parâmetro opcional replace indica quando um cabeçalho deverá substituir um cabeçalho similar anterior, ou adicionar um segundo cabeçalho do mesmo tipo. Por padrão irá substituir, mas se você passar FALSE como segundo argumento você poderá forçar multiplos cabeçalhos do mesmo tipo. Por exemplo:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', FALSE);
?>

O segundo parâmetro opcional http_response_code força o código de resposta HTTP para o valor especificado. (Este parâmetro esta disonível no PHP 4.3.0 e posterior.)

Existem dois casos especiais de chamadas de cabeçalhos. O primeiro é um cabeçalho que começa com a string "HTTP/" (não é importante se maiúscula ou minúscula), o que será usada para enviar um código de situação HTTP. Por exemplo, se você configurou o apache para usar um script PHP para gerenciar requisições para arquivos que não existam (usando a diretiva ErrorDocument), você deve querer ter certeza que seu script gere o código de situação apropriado.

<?php
header("HTTP/1.0 404 Not Found");
?>

Nota: A linha com o a situação HTTP será sempre a primeira a ser enviada para o cliente, não importando se o header() foi o primeiro a ser chamado ou não. A situação pode ser sobrescrita utilizando-se header() com uma nova linha de situação a qualquer tempo, a menos que os cabeçalhos HTTP já tenham sido enviados.

Nota: No PHP 3, isto somente funciona quando o PHP é compilado como um módulo do apache. Você poderá ter o mesmo efeito usando o cabeçalho Status.

<?php
header("Status: 404 Not Found");
?>

O segundo caso especial é o cabeçalho "Location:". Não somente envia o seu cabeçalho para o browser, mas também retorna código de situação REDIRECT (302) para o browser a menos que algum código de situação 3xx já tenha sido definido.

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Tenha certeza que o código abaixo não seja executado qunado nós redirecionamos. */
exit;
?>

Nota: HTTP/1.1 requer um URI absoluto como argumento para Location: incluindo o tema, nome do servidor e caminho absoluto, mas alguns clientes aceitam URIs relativas. Você normalmente pode usar $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] e dirname() para fazer uma URI absoluta a partir de uma relativapor si mesmo:

<?php
header("Location: http://".$_SERVER['HTTP_HOST']
                      .dirname($_SERVER['PHP_SELF'])
                      ."/".$relative_url);
?>

Scripts PHP normalmente geram conteúdo dinamico que não deva ser guardado em cache pelo browser do cliente ou qualquer cache de proxy entre o servidor e o browser do cliente. Muitos proxies e clientes são forçados a desabilitar o cache usando:

<?php
// Data no passado
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// Sempre modificado
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
?>

Nota: você pode pensar que suas páginas não são colocadas em cache mesmo que você não envie todos os cabeçalhos acima. Existem várias opções que os usuários podem definir em seus browser que mudam o funcionamento do cache. Enviando os cabeçalhos acima, você irá sobrescrever qualquer definição que faça seu script ser colocado em cache.

Adicionalmente as configurações, session_cache_limiter() e session.cache_limiter podem ser usadas para gerar automaticamente os cabeçalhos corretos quando estão sendo usadas sessões.

Lembre-se que header() deve ser utilizada antes que qualquer saida seja enviada, seja pelo HTML, linhas ou espaços em branco em um arquivo, ou a partit do PHP. É um erro muito comum ler código com a função include(), ou require(), ou outra função que acesse arquivos, e ter espaços ou linhas em branco antes da função header(). O mesmo problema existe quando usar um arquivo PHP/HTML.

<html>
<?php
/* Isto irá causar um erro. Note a saída
 * acima, o que acontece antes de header() */
header('Location: http://www.example.com/');
?>

Nota: No PHP 4, você pode usar o buffer de saída para contornar este problema, com a sobrecarga que toda a saída do browser será guardada em buffer no servidor até que voc^envie ele. Você poderá fazer isso usando ob_start() e ob_end_flush() no seu script ou definido a diretiva de configuração output_buffering no seu php.ini ou nos arquivos de configuração do servidor.

Se você queira que seja perguntado ao usuário para salvar os dados que você esta enviando, como um arquivo PDF gerado, você pode usar o cabeçalho Content-Disposition para recomendar um nome de arquivo e forçar o browser a mostrar uma caixa salvar arquivo.

<?php
// Nós estaremos enviando um PDF
header("Content-type: application/pdf");

// Será chamado downloaded.pdf
header("Content-Disposition: attachment; filename=downloaded.pdf");

// A fonte do PDF é original.pdf
readfile('original.pdf');
?>

Nota: Existe um bug no Microsoft Internet Explorer 4.01 que previne que isto acontece. Não existe como contornar. Também existe um bug no Microsoft Internet Explorer 5.5 que interfere com isto, o qual pode ser resolvido atualizando para o Service Pack 2 oo posterior.

Nota: Se safe mode esta ativado o uid do script é adicionado na parte realm do cabeçalho WWW-Authenticate se você definir este cabaçalho (usado para autenticação HTTP).

Veja também headers_sent(), setcookie(), e a seção sobre autenticação HTTP.

Anterior | Principal | Próxima
HTTP | Acima | headers_list


headers_list

(PHP 5)

headers_list -- Returns a list of response headers sent (or ready to send)

Description

array headers_list ( void )

headers_list() will return a numerically indexed array of headers to be sent to the browser / client. To determine whether or not these headers have been sent yet, use headers_sent().

Exemplo 1. Examples using headers_list()

<?php

/* setcookie() will add a response header on its own */
setcookie('foo', 'bar');

/* Define a custom response header
   This will be ignored by most clients */
header("X-Sample-Test: foo");

/* Specify plain text content in our response */
header('Content-type: text/plain');

/* What headers are going to be sent? */
var_dump(headers_list());

?>

this will output :

array(4) {
  [0]=>
  string(29) "X-Powered-By: PHP/5.0.0"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

See Also:
headers_sent(),
header(), and
setcookie().

Anterior | Principal | Próxima
header | Acima | headers_sent


headers_sent

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

headers_sent -- Confere se os cabeçalhos foram enviados ou não

Descrição

bool headers_sent ( [string &file [, int &line]])

headers_sent() irá retornar FALSE se nenhum cabeçalho HTTP já foi enviado, ou TRUE se já foi. Se os parâmetros opcionais file e line estiverem definidos, headers_sent() irá colocar o nome do arquivo e a linha aonde a saída começou nas variáveis file e line.

Você não pode adicionar nenhuma linha de cabeçalho a mais usando a função header() depois que os cabeçalhos já foram enviados. Usando esta função você pode previnir que aconteçam erros referentes aos cabeçalhos HTTP. Outra opção é usar Output Buffering.

Nota: Os parâmetros opcionais file e line foram adicionados no PHP 4.3.0.

Exemplo 1. Exemplos usando headers_sent()

<?php

// Se não foi enviado nenhum cabeçalho, envia um
if (!headers_sent()) {
    header ('Location: http://www.example.com/');
    exit;
}

// Um exemplo usando os parâmetros line e file, a partir do PHP 4.3.0
// Note que $filename e $linenum são passados para uso posterior.
// Não defina um valor para elas anteriormente.
if (!headers_sent($filename, $linenum)) {
    header ('Location: http://www.example.com/');
    exit;

// Você pode querer avisar do erro aqui.
} else {

    print "Os cabeçalhos já foram enviados em $filename na linha $linenum\n" .
          "Não posso redirecionar, por favor clique neste <a " .
          "href=\"http://www.example.com\">link</a>\n";
    exit;
}

?>

Veja também ob_start(), trigger_error(), e header() para uma discussão mais detalhada dos assuntos envolvidos.

Anterior | Principal | Próxima
headers_list | Acima | setcookie


setcookie

(PHP 3, PHP 4 , PHP 5)

setcookie -- Envia um cookie

Descrição

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setcookie() define um cookie para ser enviado junto com o resto dos cabeçalhos HTTP. Como outros cabeçalhos, cookies devem ser enviados antes de qualquer saída do seu script (esta é uma restrição do protocolo). Isto requer que você utilize esta função antes de qualquer saída, incluindo as tags <html> e <head> assim como quaiquer espaços em branco. Se já tiver sido enviada qualquer saída antes dessa função, setcookie() irá falhar e retornar FALSE. Se setcookie() for bem sucedida, irá retornar TRUE. Isto não indica que o usuário aceitou o cookie.

Nota: No PHP 4, você pode usar o buffer de saída para enviar saída antes de utilizar esta função, o que fará com que toda a saída para o browser seja guardada em buffer no servidor até que você envie ela. Você poderá fazer isso utilizando as funções ob_start() e ob_end_flush() no seu script, ou definindo a diretiva de configuração output_buffering no seu php.ini ou nos arquivos de configuração do servidor.

Todos os argumentos com excessão de name são opcionais. Você pode também substituir um argumento com uma string vazia ("") para pular este argumento. Devido a expire e secure serem inteiros, eles não podem ser pulados com uma string vazia, use um zero (0). A seguinte tabela explica cada parâmetro da função setcookie(), Tenha certeza de ler Netscape cookie specification para detalhes de como funciona cada parâmetro de setcookie() e RFC 2965 para informações adicionais de como cookies HTTP fucionam.

Tabela 1. Os parâmetros de setcookie() explicados

Parâmetro | Descrição | Exemplos
name | O nome do cookie. | 'cookiename' é chamado como $_COOKIE['cookiename']
value | O valor do cookie. Este valor é guardado no computador do cliente, não guarde informações sensíveis. | Assumindo que name e 'cookiename', este valor é obtido atraves de $_COOKIE['cookiename']
expire | O tempo para o cookie expirar. Este é um timestamp unix assim é o número de segundos desde epoch. Em outras palavras, normalmente você vai definir com a função time() mais o número de segundos que você queira té que expire. Ou você pode usar a função mktime(). | time()+60*60*24*30 irá fazer com que o cookie expire em 30 dias. Se não for definido, o cookie irá expirar ao fim da sessão (quando o browser fechar).
path | O caminho no servidor para qual o cookie estará disponível. | Se for definido '/', o cookie estará disponível para todo o domain(domínio). Se for definido '/foo/', o cookie estará disponível apenas no diretório /foo/ e todos os sub-diretórios /foo/bar/ de domain. O valor padrão é o diretório que o cookie esta sendo definido.
domain | O domínio que o cookie estará disponível. | Para fazer o cookie estar disponível para todos os subdomínios de example.com então você deve definir como '.example.com'. O . não é requerido, mas torna compativel com mais browsers. Definindo como www.example.com fará o cookie estar disponível apenas para o subdomínio www. Você pode ler spec para maiores detalhes.
secure | Indica que o cookie deve ser transmitido sobre uma conexão segura HTTPS. Quando for definido como 1, o cookie só será definido se existir uma conexão segura. O padrão é 0. | 0 ou 1

Depois que os cookies foram definidos, eles podem ser acessados na próxima página com as matrizes $_COOKIE ou $HTTP_COOKIE_VARS. Note que, autoglobals como $_COOKIE estão disponíveis a apartir do PHP 4.1.0. $HTTP_COOKIE_VARS existe desde o PHP 3. Os valores dos cookies também existem em $_REQUEST.

Nota: Se a diretiva do PHP register_globals estiver definida como on então os valores dos cookie também estarão em variáveis. Nos nossos exemplos abaixo, $TextCookie irá existir. É recomendado usar $_COOKIE.

Problemas comuns:

  • Cookies não estarão visiveis até a próxima vez que a pagina para a qual devem estar visiveis seja carregada novamente. Para testar se um cookie foi realmente definido, confira o cookie na próxima vez que a pagina seja carregada e antes que expire. O tempo de expirar é definido pelo parâmetro expire. Uma maneira fácil de fazer o debug da existencia de cookies é simplesmente usar print_r($_COOKIE);.

  • Cookies devem ser excluídos com os mesmos parâmetros que foram criados. Se o argumento valor for uma string vazia (""), e todos os outros argumentos forem iguais, então o cookie com o nome especificado será excluído do cliente.

  • Nomes de cookies podem ser definidos como uma matriz de nomes e estará disponível nos scripts PHP como uma matriz, mas são guardados como cookies separados no sistema do usuário. Considere utilizar explode() ou serialize() para definir um cookie com multiplos nomes e valores.

No PHP 3, multiplas chamadas a setcookie() no mesmo script serão feitas em ordem reversa. Se você esta tentando excluir um cookie antes de inserir outro, você deve colocar a inserção antes da exclusão. No PHP 4, multiplas chamadas a setcookie() são feitas na ordem de chamada.

Alguns exemplos de como enviar cookies:

Exemplo 1. setcookie() enviando cookies

<?php
$value = 'something from somewhere';

setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600);  /* expira em uma hora */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".example.com", 1);
?>

Note que o valor do cookie será automaticamente codificado como url quando você envia o cookie, e quando é recebido, é automaticamente decodificado e definido para uma variável com o mesmo nome do cookie. Para ver o conteúdo do nosso cookie de teste, simplesmente use um dos seguintes exemplos:

<?php
// Mostra um cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];

// Mostr todos os cookies
print_r($_COOKIE);
?>

Quando estiver excluindo um cookie, você deve se assegurar que a data de expiração esta no passado, para ativar o mecanismo de remoção do seu browser. Exemplos a seguir de como excluir cookies enviados nos exemplos anteriores:

Exemplo 2. Exemplo setcookie() de exclusão

<?php
// define a data de expiração do cookie para uma hora atrás
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>

Você pode também criar uma matriz de cookies usando a marcação de matriz no nome do cookie. Isto tem o efeito de definir tantos cookies quantos os elementos da matriz, mas quando o cookie é recebido pelo seu script, todos os cookies são colocados em uma matriz com o nome do cookie:

Exemplo 3. setcookie() e matrizes

<?php
// define os cookies
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");

// após a pagina recarregar, mostra eles
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
    }
}

/* o qual mostra

three : cookiethree
two : cookietwo
one : cookieone

*/
?>

Nota: Para maiores informações sobre cookie, veja a espeficação de cookies da Netscape em http://www.netscape.com/newsref/std/cookie_spec.html e RFC 2965.

Você deve saber que expire leva um unix timestamp, em oposição a uma data formatada Wdy, DD-Mon-YYYY HH:MM:SS GMT, isto é porque o PHP faz esta conversão internamente.

Nota: Microsoft Internet Explorer 4 com Service Pack 1 não lida corretamente com cookies que tenham o parâmetro path definido.

Netscape Communicator 4.05 e Microsoft Internet Explorer 3.x parecem não manusear corretamente cookies quando o path e time não estão definidos.

Veja também header() e a sessão sobre cookies.

Anterior | Principal | Próxima
headers_sent | Acima | setrawcookie


setrawcookie

(PHP 5)

setrawcookie -- Send a cookie without urlencoding the cookie value

Description

bool setrawcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setrawcookie() is exactly the same as setcookie() except that the cookie value will not automaticall be urlencoded when send to the browser.

See also header(), setcookie() and the cookies section.

Anterior | Principal | Próxima
setcookie | Acima | Hyperwave Functions


Hyperwave Functions

Manual do PHP
Anterior Próxima

XXXVIII. Hyperwave Functions

Introdução

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5 is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave API module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user. An attribute is a name/value pair of the form name=value. The complete object record contains as many of those pairs as the user likes. The name of an attribute does not have to be unique, e.g. a title may appear several times within an object record. This makes sense if you want to specify a title in several languages. In such a case there is a convention, that each title value is preceded by the two letter language abbreviation followed by a colon, e.g. 'en:Title in English' or 'ge:Titel in deutsch'. Other attributes like a description or keywords are potential candidates. You may also replace the language abbreviation by any other string as long as it separated by colon from the rest of the attribute value.

Each object record has native a string representation with each name/value pair separated by a newline. The Hyperwave extension also knows a second representation which is an associated array with the attribute name being the key. Multilingual attribute values itself form another associated array with the key being the language abbreviation. Actually any multiple attribute forms an associated array with the string left to the colon in the attribute value being the key. (This is not fully implemented. Only the attributes Title, Description and Keyword are treated properly yet.)

Besides the documents, all hyper links contained in a document are stored as object records as well. Hyper links which are in a document will be removed from it and stored as individual objects, when the document is inserted into the database. The object record of the link contains information about where it starts and where it ends. In order to gain the original document you will have to retrieve the plain document without the links and the list of links and reinsert them. The functions hw_pipedocument() and hw_gettext() do this for you. The advantage of separating links from the document is obvious. Once a document to which a link is pointing to changes its name, the link can easily be modified accordingly. The document containing the link is not affected at all. You may even add a link to a document without modifying the document itself.

Saying that hw_pipedocument() and hw_gettext() do the link insertion automatically is not as simple as it sounds. Inserting links implies a certain hierarchy of the documents. On a web server this is given by the file system, but Hyperwave has its own hierarchy and names do not reflect the position of an object in that hierarchy. Therefore creation of links first of all requires a mapping from the Hyperwave hierarchy and namespace into a web hierarchy respective web namespace. The fundamental difference between Hyperwave and the web is the clear distinction between names and hierarchy in Hyperwave. The name does not contain any information about the objects position in the hierarchy. In the web the name also contains the information on where the object is located in the hierarchy. This leads to two possibles ways of mapping. Either the Hyperwave hierarchy and name of the Hyperwave object is reflected in the URL or the name only. To make things simple the second approach is used. Hyperwave object with name my_object is mapped to http://host/my_object disregarding where it resides in the Hyperwave hierarchy. An object with name parent/my_object could be the child of my_object in the Hyperwave hierarchy, though in a web namespace it appears to be just the opposite and the user might get confused. This can only be prevented by selecting reasonable object names.

Having made this decision a second problem arises. How do you involve PHP? The URL http://host/my_object will not call any PHP script unless you tell your web server to rewrite it to e.g. http://host/php_script/my_object and the script php_script evaluates the $PATH_INFO variable and retrieves the object with name my_object from the Hyperwave server. Their is just one little drawback which can be fixed easily. Rewriting any URL would not allow any access to other document on the web server. A PHP script for searching in the Hyperwave server would be impossible. Therefore you will need at least a second rewriting rule to exclude certain URLs like all e.g. starting with http://host/Hyperwave This is basically sharing of a namespace by the web and Hyperwave server.

Based on the above mechanism links are insert into documents.

It gets more complicated if PHP is not run as a server module or CGI script but as a standalone application e.g. to dump the content of the Hyperwave server on a CD-ROM. In such a case it makes sense to retain the Hyperwave hierarchy and map in onto the file system. This conflicts with the object names if they reflect its own hierarchy (e.g. by choosing names including '/'). Therefore '/' has to be replaced by another character, e.g. '_'.

The network protocol to communicate with the Hyperwave server is called HG-CSP (Hyper-G Client/Server Protocol). It is based on messages to initiate certain actions, e.g. get object record. In early versions of the Hyperwave Server two native clients (Harmony, Amadeus) were provided for communication with the server. Those two disappeared when Hyperwave was commercialised. As a replacement a so called wavemaster was provided. The wavemaster is like a protocol converter from HTTP to HG-CSP. The idea is to do all the administration of the database and visualisation of documents by a web interface. The wavemaster implements a set of placeholders for certain actions to customise the interface. This set of placeholders is called the PLACE Language. PLACE lacks a lot of features of a real programming language and any extension to it only enlarges the list of placeholders. This has led to the use of JavaScript which IMO does not make life easier.

Adding Hyperwave support to PHP should fill in the gap of a missing programming language for interface customisation. It implements all the messages as defined by the HG-CSP but also provides more powerful commands to e.g. retrieve complete documents.

Hyperwave has its own terminology to name certain pieces of information. This has widely been taken over and extended. Almost all functions operate on one of the following data types.

  • object ID: An unique integer value for each object in the Hyperwave server. It is also one of the attributes of the object record (ObjectID). Object ids are often used as an input parameter to specify an object.

  • object record: A string with attribute-value pairs of the form attribute=value. The pairs are separated by a carriage return from each other. An object record can easily be converted into an object array with hw_object2array(). Several functions return object records. The names of those functions end with obj.

  • object array: An associative array with all attributes of an object. The keys are the attribute names. If an attribute occurs more than once in an object record it will result in another indexed or associative array. Attributes which are language depended (like the title, keyword, description) will form an associative array with the keys set to the language abbreviations. All other multiple attributes will form an indexed array. PHP functions never return object arrays.

  • hw_document: This is a complete new data type which holds the actual document, e.g. HTML, PDF etc. It is somewhat optimized for HTML documents but may be used for any format.

Several functions which return an array of object records do also return an associative array with statistical information about them. The array is the last element of the object record array. The statistical array contains the following entries:

Hidden

Number of object records with attribute PresentationHints set to Hidden.

CollectionHead

Number of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHead

Number of object records with attribute PresentationHints set to FullCollectionHead.

CollectionHeadNr

Index in array of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHeadNr

Index in array of object records with attribute PresentationHints set to FullCollectionHead.

Total

Total: Number of object records.

Requisitos

This extension needs a Hyperwave server downloadable from http://www.hyperwave.com/.

Instalação

To enable Hyperwave support compile PHP --with-hyperwave.

Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]

Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]

This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with

RewriteEngine on

You will need scripts:

  • to return the object itself

  • to allow searching

  • to identify yourself

  • to set your profile

  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Hyperwave configuration options

Name | Default | Changeable
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.default_port | "418" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

HW_ATTR_LANG (integer)

HW_ATTR_NR (integer)

HW_ATTR_NONE (integer)

Todo

There are still some things to do:

  • The hw_InsertDocument has to be split into hw_insertobject() and hw_putdocument().

  • The names of several functions are not fixed, yet.

  • Most functions require the current connection as its first parameter. This leads to a lot of typing, which is quite often not necessary if there is just one open connection. A default connection will improve this.

  • Conversion form object record into object array needs to handle any multiple attribute.

Índice
hw_Array2Objrec -- convert attributes from object array to object record
hw_changeobject -- Changes attributes of an object (obsolete)
hw_Children -- object ids of children
hw_ChildrenObj -- object records of children
hw_Close -- closes the Hyperwave connection
hw_Connect -- opens a connection
hw_connection_info -- Prints information about the connection to Hyperwave server
hw_cp -- Copies objects
hw_Deleteobject -- deletes object
hw_DocByAnchor -- object id object belonging to anchor
hw_DocByAnchorObj -- object record object belonging to anchor
hw_Document_Attributes -- object record of hw_document
hw_Document_BodyTag -- body tag of hw_document
hw_Document_Content -- returns content of hw_document
hw_Document_SetContent -- sets/replaces content of hw_document
hw_Document_Size -- size of hw_document
hw_dummy -- Hyperwave dummy function
hw_EditText -- retrieve text document
hw_Error -- error number
hw_ErrorMsg -- returns error message
hw_Free_Document -- frees hw_document
hw_GetAnchors -- object ids of anchors of document
hw_GetAnchorsObj -- object records of anchors of document
hw_GetAndLock -- return object record and lock object
hw_GetChildColl -- object ids of child collections
hw_GetChildCollObj -- object records of child collections
hw_GetChildDocColl -- object ids of child documents of collection
hw_GetChildDocCollObj -- object records of child documents of collection
hw_GetObject -- object record
hw_GetObjectByQuery -- search object
hw_GetObjectByQueryColl -- search object in collection
hw_GetObjectByQueryCollObj -- search object in collection
hw_GetObjectByQueryObj -- search object
hw_GetParents -- object ids of parents
hw_GetParentsObj -- object records of parents
hw_getrellink -- Get link from source to dest relative to rootid
hw_GetRemote -- Gets a remote document
hw_getremotechildren -- Gets children of remote document
hw_GetSrcByDestObj -- Returns anchors pointing at object
hw_GetText -- retrieve text document
hw_getusername -- name of currently logged in user
hw_Identify -- identifies as user
hw_InCollections -- check if object ids in collections
hw_Info -- info about connection
hw_InsColl -- insert collection
hw_InsDoc -- insert document
hw_insertanchors -- Inserts only anchors into text
hw_InsertDocument -- upload any document
hw_InsertObject -- inserts an object record
hw_mapid -- Maps global id on virtual local id
hw_Modifyobject -- modifies object record
hw_mv -- Moves objects
hw_New_Document -- create new document
hw_objrec2array -- Convert attributes from object record to object array
hw_Output_Document -- prints hw_document
hw_pConnect -- make a persistent database connection
hw_PipeDocument -- retrieve any document
hw_Root -- root object id
hw_setlinkroot -- Set the id to which links are calculated
hw_stat -- Returns status string
hw_Unlock -- unlock object
hw_Who -- List of currently logged in users

Anterior | Principal | Próxima
setrawcookie | Acima | hw_Array2Objrec


hw_Array2Objrec

(PHP 3>= 3.0.4, PHP 4 )

hw_Array2Objrec -- convert attributes from object array to object record

Description

string hw_array2objrec ( array object_array)

Converts an object_array into an object record. Multiple attributes like 'Title' in different languages are treated properly.

See also hw_objrec2array().

Anterior | Principal | Próxima
Hyperwave Functions | Acima | hw_changeobject


hw_changeobject

(PHP 3>= 3.0.3, PHP 4 )

hw_changeobject -- Changes attributes of an object (obsolete)

Description

void hw_changeobject ( int link, int objid, array attributes)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_Array2Objrec | Acima | hw_Children


hw_Children

(PHP 3>= 3.0.3, PHP 4 )

hw_Children -- object ids of children

Description

array hw_children ( int connection, int objectID)

Returns an array of object ids. Each id belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Anterior | Principal | Próxima
hw_changeobject | Acima | hw_ChildrenObj


hw_ChildrenObj

(PHP 3>= 3.0.3, PHP 4 )

hw_ChildrenObj -- object records of children

Description

array hw_childrenobj ( int connection, int objectID)

Returns an array of object records. Each object record belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Anterior | Principal | Próxima
hw_Children | Acima | hw_Close


hw_Close

(PHP 3>= 3.0.3, PHP 4 )

hw_Close -- closes the Hyperwave connection

Description

int hw_close ( int connection)

Returns FALSE if connection is not a valid connection index, otherwise TRUE. Closes down the connection to a Hyperwave server with the given connection index.

Anterior | Principal | Próxima
hw_ChildrenObj | Acima | hw_Connect


hw_Connect

(PHP 3>= 3.0.3, PHP 4 )

hw_Connect -- opens a connection

Description

int hw_connect ( string host, int port, string username, string password)

Opens a connection to a Hyperwave server and returns a connection index on success, or FALSE if the connection could not be made. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple connections open at once. Keep in mind, that the password is not encrypted.

See also hw_pconnect().

Anterior | Principal | Próxima
hw_Close | Acima | hw_connection_info


hw_connection_info

(PHP 3>= 3.0.3, PHP 4 )

hw_connection_info -- Prints information about the connection to Hyperwave server

Description

void hw_connection_info ( int link)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_Connect | Acima | hw_cp


hw_cp

(PHP 3>= 3.0.3, PHP 4 )

hw_cp -- Copies objects

Description

int hw_cp ( int connection, array object_id_array, int destination_id)

Copies the objects with object ids as specified in the second parameter to the collection with the id destination id.

The value return is the number of copied objects.

See also hw_mv().

Anterior | Principal | Próxima
hw_connection_info | Acima | hw_Deleteobject


hw_Deleteobject

(PHP 3>= 3.0.3, PHP 4 )

hw_Deleteobject -- deletes object

Description

int hw_deleteobject ( int connection, int object_to_delete)

Deletes the object with the given object id in the second parameter. It will delete all instances of the object.

Returns TRUE if no error occurs otherwise FALSE.

See also hw_mv().

Anterior | Principal | Próxima
hw_cp | Acima | hw_DocByAnchor


hw_DocByAnchor

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchor -- object id object belonging to anchor

Description

int hw_docbyanchor ( int connection, int anchorID)

Returns an th object id of the document to which anchorID belongs.

Anterior | Principal | Próxima
hw_Deleteobject | Acima | hw_DocByAnchorObj


hw_DocByAnchorObj

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchorObj -- object record object belonging to anchor

Description

string hw_docbyanchorobj ( int connection, int anchorID)

Returns an th object record of the document to which anchorID belongs.

Anterior | Principal | Próxima
hw_DocByAnchor | Acima | hw_Document_Attributes


hw_Document_Attributes

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Attributes -- object record of hw_document

Description

string hw_document_attributes ( int hw_document)

Returns the object record of the document.

For backward compatibility, hw_documentattributes() is also accepted. This is deprecated, however.

See also hw_document_bodytag(), and hw_document_size().

Anterior | Principal | Próxima
hw_DocByAnchorObj | Acima | hw_Document_BodyTag


hw_Document_BodyTag

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_BodyTag -- body tag of hw_document

Description

string hw_document_bodytag ( int hw_document)

Returns the BODY tag of the document. If the document is an HTML document the BODY tag should be printed before the document.

See also hw_document_attributes(), and hw_document_size().

For backward compatibility, hw_documentbodytag() is also accepted. This is deprecated, however.

Anterior | Principal | Próxima
hw_Document_Attributes | Acima | hw_Document_Content


hw_Document_Content

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Content -- returns content of hw_document

Description

string hw_document_content ( int hw_document)

Returns the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_setcontent().

Anterior | Principal | Próxima
hw_Document_BodyTag | Acima | hw_Document_SetContent


hw_Document_SetContent

(PHP 4 )

hw_Document_SetContent -- sets/replaces content of hw_document

Description

string hw_document_setcontent ( int hw_document, string content)

Sets or replaces the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record. If you provide this information in the content of the document too, the Hyperwave server will change the object record accordingly when the document is inserted. Probably not a very good idea. If this functions fails the document will retain its old content.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_content().

Anterior | Principal | Próxima
hw_Document_Content | Acima | hw_Document_Size


hw_Document_Size

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Size -- size of hw_document

Description

int hw_document_size ( int hw_document)

Returns the size in bytes of the document.

See also hw_document_bodytag(), and hw_document_attributes().

For backward compatibility, hw_documentsize() is also accepted. This is deprecated, however.

Anterior | Principal | Próxima
hw_Document_SetContent | Acima | hw_dummy


hw_dummy

(PHP 3>= 3.0.3, PHP 4 )

hw_dummy -- Hyperwave dummy function

Description

string hw_dummy ( int link, int id, int msgid)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_Document_Size | Acima | hw_EditText


hw_EditText

(PHP 3>= 3.0.3, PHP 4 )

hw_EditText -- retrieve text document

Description

int hw_edittext ( int connection, int hw_document)

Uploads the text document to the server. The object record of the document may not be modified while the document is edited. This function will only works for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
hw_output_document(), and
hw_gettext().

Anterior | Principal | Próxima
hw_dummy | Acima | hw_Error


hw_Error

(PHP 3>= 3.0.3, PHP 4 )

hw_Error -- error number

Description

int hw_error ( int connection)

Returns the last error number. If the return value is 0 no error has occurred. The error relates to the last command.

Anterior | Principal | Próxima
hw_EditText | Acima | hw_ErrorMsg


hw_ErrorMsg

(PHP 3>= 3.0.3, PHP 4 )

hw_ErrorMsg -- returns error message

Description

string hw_errormsg ( int connection)

Returns a string containing the last error message or 'No Error'. If FALSE is returned, this function failed. The message relates to the last command.

Anterior | Principal | Próxima
hw_Error | Acima | hw_Free_Document


hw_Free_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Free_Document -- frees hw_document

Description

int hw_free_document ( int hw_document)

Frees the memory occupied by the Hyperwave document.

Anterior | Principal | Próxima
hw_ErrorMsg | Acima | hw_GetAnchors


hw_GetAnchors

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchors -- object ids of anchors of document

Description

array hw_getanchors ( int connection, int objectID)

Returns an array of object ids with anchors of the document with object ID objectID.

Anterior | Principal | Próxima
hw_Free_Document | Acima | hw_GetAnchorsObj


hw_GetAnchorsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchorsObj -- object records of anchors of document

Description

array hw_getanchorsobj ( int connection, int objectID)

Returns an array of object records with anchors of the document with object ID objectID.

Anterior | Principal | Próxima
hw_GetAnchors | Acima | hw_GetAndLock


hw_GetAndLock

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAndLock -- return object record and lock object

Description

string hw_getandlock ( int connection, int objectID)

Returns the object record for the object with ID objectID. It will also lock the object, so other users cannot access it until it is unlocked.

See also hw_unlock(), and hw_getobject().

Anterior | Principal | Próxima
hw_GetAnchorsObj | Acima | hw_GetChildColl


hw_GetChildColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildColl -- object ids of child collections

Description

array hw_getchildcoll ( int connection, int objectID)

Returns an array of object ids. Each object ID belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_children(), and hw_getchilddoccoll().

Anterior | Principal | Próxima
hw_GetAndLock | Acima | hw_GetChildCollObj


hw_GetChildCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildCollObj -- object records of child collections

Description

array hw_getchildcollobj ( int connection, int objectID)

Returns an array of object records. Each object records belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_childrenobj(), and hw_getchilddoccollobj().

Anterior | Principal | Próxima
hw_GetChildColl | Acima | hw_GetChildDocColl


hw_GetChildDocColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocColl -- object ids of child documents of collection

Description

array hw_getchilddoccoll ( int connection, int objectID)

Returns array of object ids for child documents of a collection.

See also hw_children(), and hw_getchildcoll().

Anterior | Principal | Próxima
hw_GetChildCollObj | Acima | hw_GetChildDocCollObj


hw_GetChildDocCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocCollObj -- object records of child documents of collection

Description

array hw_getchilddoccollobj ( int connection, int objectID)

Returns an array of object records for child documents of a collection.

See also hw_childrenobj(), and hw_getchildcollobj().

Anterior | Principal | Próxima
hw_GetChildDocColl | Acima | hw_GetObject


hw_GetObject

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObject -- object record

Description

array hw_getobject ( int connection, mixed objectID, string query)

Returns the object record for the object with ID objectID if the second parameter is an integer. If the second parameter is an array of integer the function will return an array of object records. In such a case the last parameter is also evaluated which is a query string.

The query string has the following syntax:

<expr> ::= "(" <expr> ")" |

"!" <expr> | /* NOT */

<expr> "||" <expr> | /* OR */

<expr> "&&" <expr> | /* AND */

<attribute> <operator> <value>

<attribute> ::= /* any attribute name (Title, Author, DocumentType ...) */

<operator> ::= "=" | /* equal */

"<" | /* less than (string compare) */

">" | /* greater than (string compare) */

"~" /* regular expression matching */

The query allows to further select certain objects from the list of given objects. Unlike the other query functions, this query may use not indexed attributes. How many object records are returned depends on the query and if access to the object is allowed.

See also hw_getandlock(), and hw_getobjectbyquery().

Anterior | Principal | Próxima
hw_GetChildDocCollObj | Acima | hw_GetObjectByQuery


hw_GetObjectByQuery

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQuery -- search object

Description

array hw_getobjectbyquery ( int connection, string query, int max_hits)

Searches for objects on the whole server and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyqueryobj().

Anterior | Principal | Próxima
hw_GetObject | Acima | hw_GetObjectByQueryColl


hw_GetObjectByQueryColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryColl -- search object in collection

Description

array hw_getobjectbyquerycoll ( int connection, int objectID, string query, int max_hits)

Searches for objects in collection with ID objectID and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycollobj().

Anterior | Principal | Próxima
hw_GetObjectByQuery | Acima | hw_GetObjectByQueryCollObj


hw_GetObjectByQueryCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryCollObj -- search object in collection

Description

array hw_getobjectbyquerycollobj ( int connection, int objectID, string query, int max_hits)

Searches for objects in collection with ID objectID and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycoll().

Anterior | Principal | Próxima
hw_GetObjectByQueryColl | Acima | hw_GetObjectByQueryObj


hw_GetObjectByQueryObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryObj -- search object

Description

array hw_getobjectbyqueryobj ( int connection, string query, int max_hits)

Searches for objects on the whole server and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquery().

Anterior | Principal | Próxima
hw_GetObjectByQueryCollObj | Acima | hw_GetParents


hw_GetParents

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParents -- object ids of parents

Description

array hw_getparents ( int connection, int objectID)

Returns an indexed array of object ids. Each object id belongs to a parent of the object with ID objectID.

Anterior | Principal | Próxima
hw_GetObjectByQueryObj | Acima | hw_GetParentsObj


hw_GetParentsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParentsObj -- object records of parents

Description

array hw_getparentsobj ( int connection, int objectID)

Returns an indexed array of object records plus an associated array with statistical information about the object records. The associated array is the last entry of the returned array. Each object record belongs to a parent of the object with ID objectID.

Anterior | Principal | Próxima
hw_GetParents | Acima | hw_getrellink


hw_getrellink

(PHP 3>= 3.0.3, PHP 4 )

hw_getrellink -- Get link from source to dest relative to rootid

Description

string hw_getrellink ( int link, int rootid, int sourceid, int destid)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_GetParentsObj | Acima | hw_GetRemote


hw_GetRemote

(PHP 3>= 3.0.3, PHP 4 )

hw_GetRemote -- Gets a remote document

Description

int hw_getremote ( int connection, int objectID)

Returns a remote document. Remote documents in Hyperwave notation are documents retrieved from an external source. Common remote documents are for example external web pages or queries in a database. In order to be able to access external sources through remote documents Hyperwave introduces the HGI (Hyperwave Gateway Interface) which is similar to the CGI. Currently, only ftp, http-servers and some databases can be accessed by the HGI. Calling hw_getremote() returns the document from the external source. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremotechildren().

Anterior | Principal | Próxima
hw_getrellink | Acima | hw_getremotechildren


hw_getremotechildren

(PHP 3>= 3.0.3, PHP 4 )

hw_getremotechildren -- Gets children of remote document

Description

int hw_getremotechildren ( int connection, string object_record)

Returns the children of a remote document. Children of a remote document are remote documents itself. This makes sense if a database query has to be narrowed and is explained in Hyperwave Programmers' Guide. If the number of children is 1 the function will return the document itself formated by the Hyperwave Gateway Interface (HGI). If the number of children is greater than 1 it will return an array of object record with each maybe the input value for another call to hw_getremotechildren(). Those object records are virtual and do not exist in the Hyperwave server, therefore they do not have a valid object ID. How exactly such an object record looks like is up to the HGI. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremote().

Anterior | Principal | Próxima
hw_GetRemote | Acima | hw_GetSrcByDestObj


hw_GetSrcByDestObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetSrcByDestObj -- Returns anchors pointing at object

Description

array hw_getsrcbydestobj ( int connection, int objectID)

Returns the object records of all anchors pointing to the object with ID objectID. The object can either be a document or an anchor of type destination.

See also hw_getanchors().

Anterior | Principal | Próxima
hw_getremotechildren | Acima | hw_GetText


hw_GetText

(PHP 3>= 3.0.3, PHP 4 )

hw_GetText -- retrieve text document

Description

int hw_gettext ( int connection, int objectID [, mixed rootID/prefix])

Returns the document with object ID objectID. If the document has anchors which can be inserted, they will be inserted already. The optional parameter rootID/prefix can be a string or an integer. If it is an integer it determines how links are inserted into the document. The default is 0 and will result in links that are constructed from the name of the link's destination object. This is useful for web applications. If a link points to an object with name 'internet_movie' the HTML link will be <A HREF="/internet_movie">. The actual location of the source and destination object in the document hierarchy is disregarded. You will have to set up your web browser, to rewrite that URL to for example '/my_script.php3/internet_movie'. 'my_script.php3' will have to evaluate $PATH_INFO and retrieve the document. All links will have the prefix '/my_script.php3/'. If you do not want this you can set the optional parameter rootID/prefix to any prefix which is used instead. Is this case it has to be a string.

If rootID/prefix is an integer and unequal to 0 the link is constructed from all the names starting at the object with the id rootID/prefix separated by a slash relative to the current object. If for example the above document 'internet_movie' is located at 'a-b-c-internet_movie' with '-' being the separator between hierarchy levels on the Hyperwave server and the source document is located at 'a-b-d-source' the resulting HTML link would be: <A HREF="../c/internet_movie">. This is useful if you want to download the whole server content onto disk and map the document hierarchy onto the file system.

This function will only work for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
and hw_output_document().

Anterior | Principal | Próxima
hw_GetSrcByDestObj | Acima | hw_getusername


hw_getusername

(PHP 3>= 3.0.3, PHP 4 )

hw_getusername -- name of currently logged in user

Description

string hw_getusername ( int connection)

Returns the username of the connection.

Anterior | Principal | Próxima
hw_GetText | Acima | hw_Identify


hw_Identify

(PHP 3>= 3.0.3, PHP 4 )

hw_Identify -- identifies as user

Description

int hw_identify ( string username, string password)

Identifies as user with username and password. Identification is only valid for the current session. I do not thing this function will be needed very often. In most cases it will be easier to identify with the opening of the connection.

See also hw_connect().

Anterior | Principal | Próxima
hw_getusername | Acima | hw_InCollections


hw_InCollections

(PHP 3>= 3.0.3, PHP 4 )

hw_InCollections -- check if object ids in collections

Description

array hw_incollections ( int connection, array object_id_array, array collection_id_array, int return_collections)

Checks whether a set of objects (documents or collections) specified by the object_id_array is part of the collections listed in collection_id_array. When the fourth parameter return_collections is 0, the subset of object ids that is part of the collections (i.e., the documents or collections that are children of one or more collections of collection ids or their subcollections, recursively) is returned as an array. When the fourth parameter is 1, however, the set of collections that have one or more objects of this subset as children are returned as an array. This option allows a client to, e.g., highlight the part of the collection hierarchy that contains the matches of a previous query, in a graphical overview.

Anterior | Principal | Próxima
hw_Identify | Acima | hw_Info


hw_Info

(PHP 3>= 3.0.3, PHP 4 )

hw_Info -- info about connection

Description

string hw_info ( int connection)

Returns information about the current connection. The returned string has the following format: <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>

Anterior | Principal | Próxima
hw_InCollections | Acima | hw_InsColl


hw_InsColl

(PHP 3>= 3.0.3, PHP 4 )

hw_InsColl -- insert collection

Description

int hw_inscoll ( int connection, int objectID, array object_array)

Inserts a new collection with attributes as in object_array into collection with object ID objectID.

Anterior | Principal | Próxima
hw_Info | Acima | hw_InsDoc


hw_InsDoc

(PHP 3>= 3.0.3, PHP 4 )

hw_InsDoc -- insert document

Description

int hw_insdoc ( int connection, int parentID, string object_record, string text)

Inserts a new document with attributes as in object_record into collection with object ID parentID. This function inserts either an object record only or an object record and a pure ascii text in text if text is given. If you want to insert a general document of any kind use hw_insertdocument() instead.

See also hw_insertdocument(), and hw_inscoll().

Anterior | Principal | Próxima
hw_InsColl | Acima | hw_insertanchors


hw_insertanchors

(PHP 4 >= 4.0.4)

hw_insertanchors -- Inserts only anchors into text

Description

string hw_insertanchors ( int hwdoc, array anchorecs, array dest [, array urlprefixes])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_InsDoc | Acima | hw_InsertDocument


hw_InsertDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertDocument -- upload any document

Description

int hw_insertdocument ( int connection, int parent_id, int hw_document)

Uploads a document into the collection with parent_id. The document has to be created before with hw_new_document(). Make sure that the object record of the new document contains at least the attributes: Type, DocumentType, Title and Name. Possibly you also want to set the MimeType. The functions returns the object id of the new document or FALSE.

See also hw_pipedocument().

Anterior | Principal | Próxima
hw_insertanchors | Acima | hw_InsertObject


hw_InsertObject

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertObject -- inserts an object record

Description

int hw_insertobject ( int connection, string object_rec, string parameter)

Inserts an object into the server. The object can be any valid hyperwave object. See the HG-CSP documentation for a detailed information on how the parameters have to be.

Note: If you want to insert an Anchor, the attribute Position has always been set either to a start/end value or to 'invisible'. Invisible positions are needed if the annotation has no corresponding link in the annotation text.

See also hw_pipedocument(),
hw_insertdocument(),
hw_insdoc(),
and hw_inscoll().

Anterior | Principal | Próxima
hw_InsertDocument | Acima | hw_mapid


hw_mapid

(PHP 3>= 3.0.13, PHP 4 )

hw_mapid -- Maps global id on virtual local id

Description

int hw_mapid ( int connection, int server_id, int object_id)

Maps a global object id on any hyperwave server, even those you did not connect to with hw_connect(), onto a virtual object id. This virtual object id can then be used as any other object id, e.g. to obtain the object record with hw_getobject(). The server id is the first part of the global object id (GOid) of the object which is actually the IP number as an integer.

Note: In order to use this function you will have to set the F_DISTRIBUTED flag, which can currently only be set at compile time in hg_comm.c. It is not set by default. Read the comment at the beginning of hg_comm.c

Anterior | Principal | Próxima
hw_InsertObject | Acima | hw_Modifyobject


hw_Modifyobject

(PHP 3>= 3.0.7, PHP 4 )

hw_Modifyobject -- modifies object record

Description

int hw_modifyobject ( int connection, int object_to_change, array remove, array add, int mode)

This command allows to remove, add, or modify individual attributes of an object record. The object is specified by the Object ID object_to_change. The first array remove is a list of attributes to remove. The second array add is a list of attributes to add. In order to modify an attribute one will have to remove the old one and add a new one. hw_modifyobject() will always remove the attributes before it adds attributes unless the value of the attribute to remove is not a string or array.

The last parameter determines if the modification is performed recursively. 1 means recursive modification. If some of the objects cannot be modified they will be skipped without notice. hw_error() may not indicate an error though some of the objects could not be modified.

The keys of both arrays are the attributes name. The value of each array element can either be an array, a string or anything else. If it is an array each attribute value is constructed by the key of each element plus a colon and the value of each element. If it is a string it is taken as the attribute value. An empty string will result in a complete removal of that attribute. If the value is neither a string nor an array but something else, e.g. an integer, no operation at all will be performed on the attribute. This is necessary if you want to to add a completely new attribute not just a new value for an existing attribute. If the remove array contained an empty string for that attribute, the attribute would be tried to be removed which would fail since it doesn't exist. The following addition of a new value for that attribute would also fail. Setting the value for that attribute to e.g. 0 would not even try to remove it and the addition will work.

If you would like to change the attribute 'Name' with the current value 'books' into 'articles' you will have to create two arrays and call hw_modifyobject().

Exemplo 1. modifying an attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => "books");
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
In order to delete/add a name=value pair from/to the object record just pass the remove/add array and set the last/third parameter to an empty array. If the attribute is the first one with that name to add, set attribute value in the remove array to an integer.

Exemplo 2. adding a completely new attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => 0);
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Nota: Multilingual attributes, e.g. 'Title', can be modified in two ways. Either by providing the attributes value in its native form 'language':'title' or by providing an array with elements for each language as described above. The above example would than be:

Exemplo 3. modifying Title attribute

<?php
       $remarr = array("Title" => "en:Books");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
or

Exemplo 4. modifying Title attribute

<?php
       $remarr = array("Title" => array("en" => "Books"));
       $addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
This removes the English title 'Books' and adds the English title 'Articles' and the German title 'Artikel'.

Exemplo 5. removing attribute

<?php
       $remarr = array("Title" => "");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Nota: This will remove all attributes with the name 'Title' and adds a new 'Title' attribute. This comes in handy if you want to remove attributes recursively.

Nota: If you need to delete all attributes with a certain name you will have to pass an empty string as the attribute value.

Nota: Only the attributes 'Title', 'Description' and 'Keyword' will properly handle the language prefix. If those attributes don't carry a language prefix, the prefix 'xx' will be assigned.

Nota: The 'Name' attribute is somewhat special. In some cases it cannot be complete removed. You will get an error message 'Change of base attribute' (not clear when this happens). Therefore you will always have to add a new Name first and than remove the old one.

Nota: You may not surround this function by calls to hw_getandlock() and hw_unlock(). hw_modifyobject() does this internally.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
hw_mapid | Acima | hw_mv


hw_mv

(PHP 3>= 3.0.3, PHP 4 )

hw_mv -- Moves objects

Description

int hw_mv ( int connection, array object_id_array, int source_id, int destination_id)

Moves the objects with object ids as specified in the second parameter from the collection with id source_id to the collection with the id destination_id. If the destination id is 0 the objects will be unlinked from the source collection. If this is the last instance of that object it will be deleted. If you want to delete all instances at once, use hw_deleteobject().

The value returned is the number of moved objects.

See also hw_cp(), and hw_deleteobject().

Anterior | Principal | Próxima
hw_Modifyobject | Acima | hw_New_Document


hw_New_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_New_Document -- create new document

Description

int hw_new_document ( string object_record, string document_data, int document_size)

Returns a new Hyperwave document with document data set to document_data and object record set to object_record. The length of the document_data has to passed in document_sizeThis function does not insert the document into the Hyperwave server.

See also hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
hw_output_document(),
and hw_insertdocument().

Anterior | Principal | Próxima
hw_mv | Acima | hw_objrec2array


hw_objrec2array

(PHP 3>= 3.0.3, PHP 4 )

hw_objrec2array -- Convert attributes from object record to object array

Description

array hw_objrec2array ( string object_record [, array format])

Converts an object_record into an object array. The keys of the resulting array are the attributes names. Multi-value attributes like 'Title' in different languages form its own array. The keys of this array are the left part to the colon of the attribute value. This left part must be two characters long. Other multi-value attributes without a prefix form an indexed array. If the optional parameter is missing the attributes 'Title', 'Description' and 'Keyword' are treated as language attributes and the attributes 'Group', 'Parent' and 'HtmlAttr' as non-prefixed multi-value attributes. By passing an array holding the type for each attribute you can alter this behaviour. The array is an associated array with the attribute name as its key and the value being one of HW_ATTR_LANG or HW_ATTR_NONE.

See also hw_array2objrec().

Anterior | Principal | Próxima
hw_New_Document | Acima | hw_Output_Document


hw_Output_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Output_Document -- prints hw_document

Description

int hw_output_document ( int hw_document)

Prints the document without the BODY tag.

For backward compatibility, hw_outputdocument() is also accepted. This is deprecated, however.

Anterior | Principal | Próxima
hw_objrec2array | Acima | hw_pConnect


hw_pConnect

(PHP 3>= 3.0.3, PHP 4 )

hw_pConnect -- make a persistent database connection

Description

int hw_pconnect ( string host, int port, string username, string password)

Returns a connection index on success, or FALSE if the connection could not be made. Opens a persistent connection to a Hyperwave server. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple persistent connections open at once.

See also hw_connect().

Anterior | Principal | Próxima
hw_Output_Document | Acima | hw_PipeDocument


hw_PipeDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_PipeDocument -- retrieve any document

Description

int hw_pipedocument ( int connection, int objectID)

Returns the Hyperwave document with object ID objectID. If the document has anchors which can be inserted, they will have been inserted already. The document will be transferred via a special data connection which does not block the control connection.

See also hw_gettext() for more on link insertion,
hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
and hw_output_document().

Anterior | Principal | Próxima
hw_pConnect | Acima | hw_Root


hw_Root

(PHP 3>= 3.0.3, PHP 4 )

hw_Root -- root object id

Description

int hw_root ( )

Returns the object ID of the hyperroot collection. Currently this is always 0. The child collection of the hyperroot is the root collection of the connected server.

Anterior | Principal | Próxima
hw_PipeDocument | Acima | hw_setlinkroot


hw_setlinkroot

(PHP 3>= 3.0.3, PHP 4 )

hw_setlinkroot -- Set the id to which links are calculated

Description

void hw_setlinkroot ( int link, int rootid)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_Root | Acima | hw_stat


hw_stat

(PHP 3>= 3.0.3, PHP 4 )

hw_stat -- Returns status string

Description

string hw_stat ( int link)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hw_setlinkroot | Acima | hw_Unlock


hw_Unlock

(PHP 3>= 3.0.3, PHP 4 )

hw_Unlock -- unlock object

Description

int hw_unlock ( int connection, int objectID)

Unlocks a document, so other users regain access.

See also hw_getandlock().

Anterior | Principal | Próxima
hw_stat | Acima | hw_Who


hw_Who

(PHP 3>= 3.0.3, PHP 4 )

hw_Who -- List of currently logged in users

Description

int hw_who ( int connection)

Returns an array of users currently logged into the Hyperwave server. Each entry in this array is an array itself containing the elements id, name, system, onSinceDate, onSinceTime, TotalTime and self. 'self' is 1 if this entry belongs to the user who initiated the request.

Anterior | Principal | Próxima
hw_Unlock | Acima | Hyperwave API Functions


Hyperwave API Functions

Manual do PHP
Anterior Próxima

XXXIX. Hyperwave API Functions

Introdução

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Requisitos

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

Instalação

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Hyperwave API configuration options

Name | Default | Changeable
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API

  • HW_API_Object

  • HW_API_Attribute

  • HW_API_Error

  • HW_API_Content

  • HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".

  • parentIdentifier The name or id of an object which is considered to be a parent.

  • object An instance of class HW_API_Object.

  • parameters An instance of class HW_API_Object.

  • version The version of an object.

  • mode An integer value determine the way an operation is executed.

  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.

  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

Índice
hw_api_attribute->key -- Returns key of the attribute
hw_api_attribute->langdepvalue -- Returns value for a given language
hw_api_attribute->value -- Returns value of the attribute
hw_api_attribute->values -- Returns all values of the attribute
hw_api_attribute -- Creates instance of class hw_api_attribute
hw_api->checkin -- Checks in an object
hw_api->checkout -- Checks out an object
hw_api->children -- Returns children of an object
hw_api_content->mimetype -- Returns mimetype
hw_api_content->read -- Read content
hw_api->content -- Returns content of an object
hw_api->copy -- Copies physically
hw_api->dbstat -- Returns statistics about database server
hw_api->dcstat -- Returns statistics about document cache server
hw_api->dstanchors -- Returns a list of all destination anchors
hw_api->dstofsrcanchors -- Returns destination of a source anchor
hw_api_error->count -- Returns number of reasons
hw_api_error->reason -- Returns reason of error
hw_api->find -- Search for objects
hw_api->ftstat -- Returns statistics about fulltext server
hwapi_hgcsp -- Returns object of class hw_api
hw_api->hwstat -- Returns statistics about Hyperwave server
hw_api->identify -- Log into Hyperwave Server
hw_api->info -- Returns information about server configuration
hw_api->insert -- Inserts a new object
hw_api->insertanchor -- Inserts a new object of type anchor
hw_api->insertcollection -- Inserts a new object of type collection
hw_api->insertdocument -- Inserts a new object of type document
hw_api->link -- Creates a link to an object
hw_api->lock -- Locks an object
hw_api->move -- Moves object between collections
hw_api_content -- Create new instance of class hw_api_content
hw_api_object->assign -- Clones object
hw_api_object->attreditable -- Checks whether an attribute is editable
hw_api_object->count -- Returns number of attributes
hw_api_object->insert -- Inserts new attribute
hw_api_object -- Creates a new instance of class hw_api_object
hw_api_object->remove -- Removes attribute
hw_api_object->title -- Returns the title attribute
hw_api_object->value -- Returns value of attribute
hw_api->object -- Retrieve attribute information
hw_api->objectbyanchor -- Returns the object an anchor belongs to
hw_api->parents -- Returns parents of an object
hw_api_reason->description -- Returns description of reason
hw_api_reason->type -- Returns type of reason
hw_api->remove -- Delete an object
hw_api->replace -- Replaces an object
hw_api->setcommitedversion -- Commits version other than last version
hw_api->srcanchors -- Returns a list of all source anchors
hw_api->srcsofdst -- Returns source of a destination object
hw_api->unlock -- Unlocks a locked object
hw_api->user -- Returns the own user object
hw_api->userlist -- Returns a list of all logged in users

Anterior | Principal | Próxima
hw_Who | Acima | hw_api_attribute->key


hw_api_attribute->key

(no version information, might be only in CVS)

hw_api_attribute->key -- Returns key of the attribute

Description

string key ( void )

Returns the name of the attribute.

See also hwapi_attribute_value().

Anterior | Principal | Próxima
Hyperwave API Functions | Acima | hw_api_attribute->langdepvalue


hw_api_attribute->langdepvalue

(no version information, might be only in CVS)

hw_api_attribute->langdepvalue -- Returns value for a given language

Description

string langdepvalue ( string language)

Returns the value in the given language of the attribute.

See also hwapi_attribute_value().

Anterior | Principal | Próxima
hw_api_attribute->key | Acima | hw_api_attribute->value


hw_api_attribute->value

(no version information, might be only in CVS)

hw_api_attribute->value -- Returns value of the attribute

Description

string value ( void )

Returns the value of the attribute.

See also hwapi_attribute_key(), hwapi_attribute_values().

Anterior | Principal | Próxima
hw_api_attribute->langdepvalue | Acima | hw_api_attribute->values


hw_api_attribute->values

(no version information, might be only in CVS)

hw_api_attribute->values -- Returns all values of the attribute

Description

array values ( void )

Returns all values of the attribute as an array of strings.

See also hwapi_attribute_value().

Anterior | Principal | Próxima
hw_api_attribute->value | Acima | hw_api_attribute


hw_api_attribute

(no version information, might be only in CVS)

hw_api_attribute -- Creates instance of class hw_api_attribute

Description

object attribute ( [string name [, string value]])

Creates a new instance of hw_api_attribute with the given name and value.

Anterior | Principal | Próxima
hw_api_attribute->values | Acima | hw_api->checkin


hw_api->checkin

(no version information, might be only in CVS)

hw_api->checkin -- Checks in an object

Description

object checkin ( array parameter)

This function checks in an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks in and commits the object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.

HW_API_CHECKIN_FORCE_VERSION_CONTROL

Checks in an object even if it is not under version control.

HW_API_CHECKIN_REVERT_IF_NOT_CHANGED

Check if the new version is different from the last version. Unless this is the case the object will be checked in.

HW_API_CHECKIN_KEEP_TIME_MODIFIED

Keeps the time modified from the most recent object.

HW_API_CHECKIN_NO_AUTO_COMMIT

The object is not automatically committed on check-in.

See also hwapi_checkout().

Anterior | Principal | Próxima
hw_api_attribute | Acima | hw_api->checkout


hw_api->checkout

(no version information, might be only in CVS)

hw_api->checkout -- Checks out an object

Description

object checkout ( array parameter)

This function checks out an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks out an object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

See also hwapi_checkin().

Anterior | Principal | Próxima
hw_api->checkin | Acima | hw_api->children


hw_api->children

(no version information, might be only in CVS)

hw_api->children -- Returns children of an object

Description

array children ( array parameter)

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_parents().

Anterior | Principal | Próxima
hw_api->checkout | Acima | hw_api_content->mimetype


hw_api_content->mimetype

(no version information, might be only in CVS)

hw_api_content->mimetype -- Returns mimetype

Description

string mimetype ( void )

Returns the mimetype of the content.

Anterior | Principal | Próxima
hw_api->children | Acima | hw_api_content->read


hw_api_content->read

(no version information, might be only in CVS)

hw_api_content->read -- Read content

Description

string read ( string buffer, integer len)

Reads len bytes from the content into the given buffer.

Anterior | Principal | Próxima
hw_api_content->mimetype | Acima | hw_api->content


hw_api->content

(no version information, might be only in CVS)

hw_api->content -- Returns content of an object

Description

object content ( array parameter)

This function returns the content of a document as an object of type hw_api_content. The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN. HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable. HW_API_CONTENT_REACHABLELINKS tells hw_api_content() to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Anterior | Principal | Próxima
hw_api_content->read | Acima | hw_api->copy


hw_api->copy

(no version information, might be only in CVS)

hw_api->copy -- Copies physically

Description

object copy ( array parameter)

This function will make a physical copy including the content if it exists and returns the new object or an error object. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

See also hwapi_move(), hwapi_link().

Anterior | Principal | Próxima
hw_api->content | Acima | hw_api->dbstat


hw_api->dbstat

(no version information, might be only in CVS)

hw_api->dbstat -- Returns statistics about database server

Description

object dbstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_hwstat(),
         hwapi_ftstat().

Anterior | Principal | Próxima
hw_api->copy | Acima | hw_api->dcstat


hw_api->dcstat

(no version information, might be only in CVS)

hw_api->dcstat -- Returns statistics about document cache server

Description

object dcstat ( array parameter)

See also hwapi_hwstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Anterior | Principal | Próxima
hw_api->dbstat | Acima | hw_api->dstanchors


hw_api->dstanchors

(no version information, might be only in CVS)

hw_api->dstanchors -- Returns a list of all destination anchors

Description

object dstanchors ( array parameter)

Retrieves all destination anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_srcanchors().

Anterior | Principal | Próxima
hw_api->dcstat | Acima | hw_api->dstofsrcanchors


hw_api->dstofsrcanchors

(no version information, might be only in CVS)

hw_api->dstofsrcanchors -- Returns destination of a source anchor

Description

object dstofsrcanchors ( array parameter)

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_srcanchors(),
         hwapi_dstanchors(),
         hwapi_objectbyanchor().

Anterior | Principal | Próxima
hw_api->dstanchors | Acima | hw_api_error->count


hw_api_error->count

(no version information, might be only in CVS)

hw_api_error->count -- Returns number of reasons

Description

int count ( void )

Returns the number of error reasons.

See also hwapi_error_reason().

Anterior | Principal | Próxima
hw_api->dstofsrcanchors | Acima | hw_api_error->reason


hw_api_error->reason

(no version information, might be only in CVS)

hw_api_error->reason -- Returns reason of error

Description

object reason ( void )

Returns the first error reason.

See also hwapi_error_count().

Anterior | Principal | Próxima
hw_api_error->count | Acima | hw_api->find


hw_api->find

(no version information, might be only in CVS)

hw_api->find -- Search for objects

Description

array find ( array parameter)

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index. The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

Anterior | Principal | Próxima
hw_api_error->reason | Acima | hw_api->ftstat


hw_api->ftstat

(no version information, might be only in CVS)

hw_api->ftstat -- Returns statistics about fulltext server

Description

object ftstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_hwstat().

Anterior | Principal | Próxima
hw_api->find | Acima | hwapi_hgcsp


hwapi_hgcsp

(no version information, might be only in CVS)

hwapi_hgcsp -- Returns object of class hw_api

Description

object hwapi_hgcsp ( string hostname [, int port])

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP. If you do not pass a port number, 418 is used.

See also hwapi_hwtp().

Anterior | Principal | Próxima
hw_api->ftstat | Acima | hw_api->hwstat


hw_api->hwstat

(no version information, might be only in CVS)

hw_api->hwstat -- Returns statistics about Hyperwave server

Description

object hwstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Anterior | Principal | Próxima
hwapi_hgcsp | Acima | hw_api->identify


hw_api->identify

(no version information, might be only in CVS)

hw_api->identify -- Log into Hyperwave Server

Description

object identify ( array parameter)

Logs into the Hyperwave Server. The parameter array must contain the elements 'username' and 'password'.

The return value will be an object of type HW_API_Error if identification failed or TRUE if it was successful.

Anterior | Principal | Próxima
hw_api->hwstat | Acima | hw_api->info


hw_api->info

(no version information, might be only in CVS)

hw_api->info -- Returns information about server configuration

Description

object info ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat(),
         hwapi_hwstat().

Anterior | Principal | Próxima
hw_api->identify | Acima | hw_api->insert


hw_api->insert

(no version information, might be only in CVS)

hw_api->insert -- Inserts a new object

Description

object insert ( array parameter)

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set. The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL

The object in inserted into the server.

HW_API_INSERT_FORCE_VERSION_CONTROL

HW_API_INSERT_AUTOMATIC_CHECKOUT

HW_API_INSERT_PLAIN

HW_API_INSERT_KEEP_TIME_MODIFIED

HW_API_INSERT_DELAY_INDEXING

See also hwapi_replace().

Anterior | Principal | Próxima
hw_api->info | Acima | hw_api->insertanchor


hw_api->insertanchor

(no version information, might be only in CVS)

hw_api->insertanchor -- Inserts a new object of type anchor

Description

object insertanchor ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor. The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

See also hwapi_insertdocument(),
         hwapi_insertcollection(),
         hwapi_insert().

Anterior | Principal | Próxima
hw_api->insert | Acima | hw_api->insertcollection


hw_api->insertcollection

(no version information, might be only in CVS)

hw_api->insertcollection -- Inserts a new object of type collection

Description

object insertcollection ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection. The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insertdocument(),
         hwapi_insertanchor(),
         hwapi_insert().

Anterior | Principal | Próxima
hw_api->insertanchor | Acima | hw_api->insertdocument


hw_api->insertdocument

(no version information, might be only in CVS)

hw_api->insertdocument -- Inserts a new object of type document

Description

object insertdocument ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document. The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insert()
         hwapi_insertanchor(),
         hwapi_insertcollection().

Anterior | Principal | Próxima
hw_api->insertcollection | Acima | hw_api->link


hw_api->link

(no version information, might be only in CVS)

hw_api->link -- Creates a link to an object

Description

object link ( array parameter)

Creates a link to an object. Accessing this link is like accessing the object to links points to. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

The function returns TRUE on success or an error object.

See also hwapi_copy().

Anterior | Principal | Próxima
hw_api->insertdocument | Acima | hw_api->lock


hw_api->lock

(no version information, might be only in CVS)

hw_api->lock -- Locks an object

Description

object lock ( array parameter)

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. 'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within the collection and possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

See also hwapi_unlock().

Anterior | Principal | Próxima
hw_api->link | Acima | hw_api->move


hw_api->move

(no version information, might be only in CVS)

hw_api->move -- Moves object between collections

Description

object move ( array parameter)

See also hw_objrec2array().

Anterior | Principal | Próxima
hw_api->lock | Acima | hw_api_content


hw_api_content

(no version information, might be only in CVS)

hw_api_content -- Create new instance of class hw_api_content

Description

string content ( string content, string mimetype)

Creates a new content object from the string content. The mimetype is set to mimetype.

Anterior | Principal | Próxima
hw_api->move | Acima | hw_api_object->assign


hw_api_object->assign

(no version information, might be only in CVS)

hw_api_object->assign -- Clones object

Description

object assign ( array parameter)

Clones the attributes of an object.

Anterior | Principal | Próxima
hw_api_content | Acima | hw_api_object->attreditable


hw_api_object->attreditable

(no version information, might be only in CVS)

hw_api_object->attreditable -- Checks whether an attribute is editable

Description

bool attreditable ( array parameter)

Anterior | Principal | Próxima
hw_api_object->assign | Acima | hw_api_object->count


hw_api_object->count

(no version information, might be only in CVS)

hw_api_object->count -- Returns number of attributes

Description

int count ( array parameter)

Anterior | Principal | Próxima
hw_api_object->attreditable | Acima | hw_api_object->insert


hw_api_object->insert

(no version information, might be only in CVS)

hw_api_object->insert -- Inserts new attribute

Description

bool insert ( object attribute)

Adds an attribute to the object. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_remove().

Anterior | Principal | Próxima
hw_api_object->count | Acima | hw_api_object


hw_api_object

(no version information, might be only in CVS)

hw_api_object -- Creates a new instance of class hw_api_object

Description

object hw_api_object ( array parameter)

See also hwapi_lock().

Anterior | Principal | Próxima
hw_api_object->insert | Acima | hw_api_object->remove


hw_api_object->remove

(no version information, might be only in CVS)

hw_api_object->remove -- Removes attribute

Description

bool remove ( string name)

Removes the attribute with the given name. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_insert().

Anterior | Principal | Próxima
hw_api_object | Acima | hw_api_object->title


hw_api_object->title

(no version information, might be only in CVS)

hw_api_object->title -- Returns the title attribute

Description

string title ( array parameter)

Anterior | Principal | Próxima
hw_api_object->remove | Acima | hw_api_object->value


hw_api_object->value

(no version information, might be only in CVS)

hw_api_object->value -- Returns value of attribute

Description

string value ( string name)

Returns the value of the attribute with the given name or FALSE if an error occurred.

Anterior | Principal | Próxima
hw_api_object->title | Acima | hw_api->object


hw_api->object

(no version information, might be only in CVS)

hw_api->object -- Retrieve attribute information

Description

object hw_api->object ( array parameter)

This function retrieves the attribute information of an object of any version. It will not return the document content. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occurred.

This simple example retrieves an object and checks for errors.

Exemplo 1. Retrieve an object

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

See also hwapi_content().

Anterior | Principal | Próxima
hw_api_object->value | Acima | hw_api->objectbyanchor


hw_api->objectbyanchor

(no version information, might be only in CVS)

hw_api->objectbyanchor -- Returns the object an anchor belongs to

Description

object objectbyanchor ( array parameter)

This function retrieves an object the specified anchor belongs to. The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_dstofsrcanchor(),
         hwapi_srcanchors(),
         hwapi_dstanchors().

Anterior | Principal | Próxima
hw_api->object | Acima | hw_api->parents


hw_api->parents

(no version information, might be only in CVS)

hw_api->parents -- Returns parents of an object

Description

array parents ( array parameter)

Retrieves the parents of an object. The parents can be further filtered by specifying an object query. The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_children().

Anterior | Principal | Próxima
hw_api->objectbyanchor | Acima | hw_api_reason->description


hw_api_reason->description

(no version information, might be only in CVS)

hw_api_reason->description -- Returns description of reason

Description

string description ( void )

Returns the description of a reason

Anterior | Principal | Próxima
hw_api->parents | Acima | hw_api_reason->type


hw_api_reason->type

(no version information, might be only in CVS)

hw_api_reason->type -- Returns type of reason

Description

object type ( void )

Returns the type of a reason.

Anterior | Principal | Próxima
hw_api_reason->description | Acima | hw_api->remove


hw_api->remove

(no version information, might be only in CVS)

hw_api->remove -- Delete an object

Description

object remove ( array parameter)

Removes an object from the specified parent. Collections will be removed recursively. You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance. The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skipped. The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted immediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

See also hwapi_move().

Anterior | Principal | Próxima
hw_api_reason->type | Acima | hw_api->replace


hw_api->replace

(no version information, might be only in CVS)

hw_api->replace -- Replaces an object

Description

object replace ( array parameter)

Replaces the attributes and the content of an object The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document. 'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL

The object on the server is replace with the object passed.

HW_API_REPLACE_FORCE_VERSION_CONTROL

HW_API_REPLACE_AUTOMATIC_CHECKOUT

HW_API_REPLACE_AUTOMATIC_CHECKIN

HW_API_REPLACE_PLAIN

HW_API_REPLACE_REVERT_IF_NOT_CHANGED

HW_API_REPLACE_KEEP_TIME_MODIFIED

See also hwapi_insert().

Anterior | Principal | Próxima
hw_api->remove | Acima | hw_api->setcommitedversion


hw_api->setcommitedversion

(no version information, might be only in CVS)

hw_api->setcommitedversion -- Commits version other than last version

Description

object setcommitedversion ( array parameter)

Commits a version of a document. The committed version is the one which is visible to users with read access. By default the last version is the committed version.

See also hwapi_checkin(),
         hwapi_checkout(),
         hwapi_revert().

Anterior | Principal | Próxima
hw_api->replace | Acima | hw_api->srcanchors


hw_api->srcanchors

(no version information, might be only in CVS)

hw_api->srcanchors -- Returns a list of all source anchors

Description

object srcanchors ( array parameter)

Retrieves all source anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_dstanchors().

Anterior | Principal | Próxima
hw_api->setcommitedversion | Acima | hw_api->srcsofdst


hw_api->srcsofdst

(no version information, might be only in CVS)

hw_api->srcsofdst -- Returns source of a destination object

Description

object srcsofdst ( array parameter)

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

See also hwapi_dstofsrcanchor().

Anterior | Principal | Próxima
hw_api->srcanchors | Acima | hw_api->unlock


hw_api->unlock

(no version information, might be only in CVS)

hw_api->unlock -- Unlocks a locked object

Description

object unlock ( array parameter)

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

Returns TRUE on success or an object of class HW_API_Error.

See also hwapi_lock().

Anterior | Principal | Próxima
hw_api->srcsofdst | Acima | hw_api->user


hw_api->user

(no version information, might be only in CVS)

hw_api->user -- Returns the own user object

Description

object user ( array parameter)

See also hwapi_userlist().

Anterior | Principal | Próxima
hw_api->unlock | Acima | hw_api->userlist


hw_api->userlist

(no version information, might be only in CVS)

hw_api->userlist -- Returns a list of all logged in users

Description

object userlist ( array parameter)

See also hwapi_user().

Anterior | Principal | Próxima
hw_api->user | Acima | iconv Functions


iconv Functions

Manual do PHP
Anterior Próxima

XL. iconv Functions

Introdução

This module contains an interface to iconv character set conversion facility. With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode charcter set. Supported character sets depend on the iconv implementation of your system. Note that the iconv function on some systems may not work as you expect. In such case, it'd be a good idea to install the GNU libiconv library. It will most likely end up with more consistent results.

Since PHP 5.0.0, this extension comes with various utility functions that help you to write multilingual scripts. Let's have a look at the following sections to explore the new features.

Requisitos

You will need nothing if the system you are using is one of the recent POSIX-compliant systems because standard C libraries that are supplied in them must provide iconv facility. Otherwise, you have to get the libiconv library installed in your system.

Instalação

To use functions provided by this module, the PHP binary must be built with the following configure line: --with-iconv[=DIR].

Note to Windows® Users: In order to enable this module on a Windows® environment, you need to put a DLL file named iconv.dll or iconv-1.3.dll (prior to 4.2.1) which is bundled with the PHP/Win32 binary package into a directory specified by the PATH environment variable or one of the system directories of your Windows® installation.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Iconv configuration options

Name | Default | Changeable
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Since PHP 4.3.0 it is possible to identify at runtime which iconv implementation is adopted by this extension.

Tabela 2. iconv constants

Name | Type | Description
ICONV_IMPL | string | The implementation name
ICONV_VERSION | string | The implementation version

Nota: Writing implementation-dependent scripts with these constants is strongly discouraged.

Since PHP 5.0.0, the following constants are also available:

Tabela 3. iconv constants available since PHP 5.0.0

Name | Type | Description
ICONV_MIME_DECODE_STRICT | integer | A bitmask used for iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | integer | A bitmask used for iconv_mime_decode()

Veja Também

See also GNU Recode functions.

Índice
iconv_get_encoding -- Retrieve internal configuration variables of iconv extension
iconv_mime_decode_headers -- Decodes multiple MIME header fields at once
iconv_mime_decode -- Decodes a MIME header field
iconv_mime_encode -- Composes a MIME header field
iconv_set_encoding -- Set current setting for character encoding conversion
iconv_strlen -- Returns the character count of string
iconv_strpos -- Finds position of first occurrence of a needle within a haystack.
iconv_strrpos -- Finds the last occurrence of a needle within the specified range of haystack.
iconv_substr -- Cut out part of a string
iconv -- Convert string to requested character encoding
ob_iconv_handler -- Convert character encoding as output buffer handler

Anterior | Principal | Próxima
hw_api->userlist | Acima | iconv_get_encoding


iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encoding -- Retrieve internal configuration variables of iconv extension

Description

mixed iconv_get_encoding ( [string type])

iconv_get_encoding() returns the current value of the internal configuration variable if successful, or FALSE on failure.

The value of the optional type can be:

all
input_encoding
output_encoding
internal_encoding

If type is omitted or set to "all", iconv_get_encoding() returns an array that stores all these variables.

Exemplo 1. iconv_get_encoding() example

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

The printout of the above program will be:

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

See also iconv_set_encoding() and ob_iconv_handler().

Anterior | Principal | Próxima
iconv Functions | Acima | iconv_mime_decode_headers


iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headers -- Decodes multiple MIME header fields at once

Description

array iconv_mime_decode_headers ( string encoded_headers [, int mode [, string charset]])

Returns an associative array that holds a whole set of MIME header fields specified by encoded_headers on success, or FALSE if an error occurs during the decoding.

Each key of the return value represents an individual field name and the corresponding element represents a field value. If more than one field of the same name are present, iconv_mime_decode_headers() automatically incorporates them into a numerically indexed array in the order of occurrence.

mode determines the behaviour in the event iconv_mime_decode_headers() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Tabela 1. Bitmasks acceptable to iconv_mime_decode_headers()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Exemplo 1. iconv_mime_decode_headers() example

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

The output of this script should look like:

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

See also iconv_mime_decode(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Anterior | Principal | Próxima
iconv_get_encoding | Acima | iconv_mime_decode


iconv_mime_decode

(PHP 5)

iconv_mime_decode -- Decodes a MIME header field

Description

string iconv_mime_decode ( string encoded_header [, int mode [, string charset]])

Returns a decoded MIME field on success, or FALSE if an error occurs during the decoding.

mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Tabela 1. Bitmasks acceptable to iconv_mime_decode()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode() attempts to continue to process the given header even though an error occurs.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Exemplo 1. iconv_mime_decode() example

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

See also iconv_mime_decode_headers(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Anterior | Principal | Próxima
iconv_mime_decode_headers | Acima | iconv_mime_encode


iconv_mime_encode

(PHP 5)

iconv_mime_encode -- Composes a MIME header field

Description

string iconv_mime_encode ( string field_name, string field_value [, array preferences])

Composes and returns a string that represents a valid MIME header field, which looks like the following:
Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter preferences. The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Tabela 1. Configuration items supported by iconv_mime_encode()

Item | Type | Description | Default value | Example
scheme | boolean | Specifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printable encoding scheme. | B | B
input-charset | string | Specifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_charset ini setting. | iconv.internal_charset | ISO-8859-1
output-charset | string | Specifies the character set to use to compose the MIME header. If not given, the same value as input-charset will be used. | the same value as input-charset | UTF-8
line-length | integer | Specifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters. | 76 | 996
line-break-chars | string | Specifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset. | \r\n | \n

Exemplo 1. iconv_mime_encode() example:

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung_Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);
?>

See also imap_binary(),
mb_encode_mimeheader()
and imap_8bit().

Anterior | Principal | Próxima
iconv_mime_decode | Acima | iconv_set_encoding


iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encoding -- Set current setting for character encoding conversion

Description

bool iconv_set_encoding ( string type, string charset)

iconv_set_encoding() changes the value of the internal configuration variable specified by type to charset. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The value of type can be any one of those:

input_encoding
output_encoding
internal_encoding

Exemplo 1. iconv_set_encoding() example:

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

See also iconv_get_encoding() and ob_iconv_handler().

Anterior | Principal | Próxima
iconv_mime_encode | Acima | iconv_strlen


iconv_strlen

(PHP 5)

iconv_strlen -- Returns the character count of string

Description

int iconv_strlen ( string str [, string charset])

Returns the character count of str.

In contrast to strlen(), iconv_strlen() counts the occurrences of characters in the given byte sequence str on the basis of the specified character set, the result of which is not necessarily identical to the length of the string in byte.

If charset parameter is omitted, str is assumed to be encoded in iconv.internal_charset.

See also strlen() and mb_strlen().

Anterior | Principal | Próxima
iconv_set_encoding | Acima | iconv_strpos


iconv_strpos

(PHP 5)

iconv_strpos -- Finds position of first occurrence of a needle within a haystack.

Description

int iconv_strpos ( string haystack, string needle, int offset [, string charset])

Returns the numeric position of the first occurrence of needle in haystack.

The optional offset parameter specifies the position from which the search should be performed.

If needle is not found, iconv_strpos() will return FALSE.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

In contrast to strpos(), the return value of iconv_strpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset.

If charset parameter is omitted, string are assumed to be encoded in iconv.internal_charset.

See also strpos(), iconv_strrpos() and mb_strpos().

Anterior | Principal | Próxima
iconv_strlen | Acima | iconv_strrpos


iconv_strrpos

(PHP 5)

iconv_strrpos -- Finds the last occurrence of a needle within the specified range of haystack.

Description

string iconv_strrpos ( string haystack, string needle [, string charset])

Returns the numeric position of the last occurrence of needle in haystack.

If needle is not found, iconv_strrpos() will return FALSE.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

In contrast to strpos(), the return value of iconv_strrpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset.

See also strrpos(), iconv_strpos() and mb_strrpos().

Anterior | Principal | Próxima
iconv_strpos | Acima | iconv_substr


iconv_substr

(PHP 5)

iconv_substr -- Cut out part of a string

Description

string iconv_substr ( string str, int offset [, int length [, string charset]])

Returns the portion of str specified by the start and length parameters.

If start is non-negative, iconv_substr() cuts the portion out of str beginning at start'th character, counting from zero.

If start is negative, iconv_substr() cuts out the portion beginning at the position, start characters away from the end of str.

If length is given and is positive, the return value will contain at most length characters of the portion that begins at start (depending on the length of string). If str is shorter than start characters long, FALSE will be returned.

If negative length is passed, iconv_substr() cuts the portion out of str from the start'th character up to the character that is length characters away from the end of the string. In case start is also negative, the start position is calculated beforehand according to the rule explained above.

Note that offset and length parameters are always deemed to represent offsets that are calculated on the basis of the character set determined by charset, whilst the counterpart substr() always takes these for byte offsets. If charset is not given, the character set is determined by the iconv.internal_charset ini setting.

See also substr(), mb_substr() and mb_strcut().

Anterior | Principal | Próxima
iconv_strrpos | Acima | iconv


iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv -- Convert string to requested character encoding

Description

string iconv ( string in_charset, string out_charset, string str)

Performs a character set conversion on the string str from in_charset to out_charset. Returns the converted string or FALSE on failure.

Exemplo 1. iconv() example:

<?php
echo iconv("ISO-8859-1", "UTF-8", "This is a test.");
?>

Anterior | Principal | Próxima
iconv_substr | Acima | ob_iconv_handler


ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handler -- Convert character encoding as output buffer handler

Description

array ob_iconv_handler ( string contents, int status)

It converts the string encoded in internal_encoding to output_encoding.

internal_encoding and output_encoding should be defined by iconv_set_encoding() or in the configuration file php.ini.

Exemplo 1. ob_iconv_handler() example:

<?php
ob_start("ob_iconv_handler"); // start output buffering
?>

See also iconv_get_encoding(), iconv_set_encoding() and output-control functions.

Anterior | Principal | Próxima
iconv | Acima | Image Functions


Image Functions

Manual do PHP
Anterior Próxima

XLI. Image Functions

Introdução

PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including gif, png, jpg, wbmp, and xpm. Even more convenient, PHP can output image streams directly to a browser. You will need to compile PHP with the GD library of image functions for this to work. GD and PHP may also require other libraries, depending on which image formats you want to work with.

You can use the image functions in PHP to get the size of JPEG, GIF, PNG, SWF, TIFF and JPEG2000 images.

Nota: Read requirements section about how to expand image capabilities to read, write and modify images and to read meta data of pictures taken by digital cameras.

Requisitos

If you have the GD library (available at http://www.boutell.com/gd/) you will also be able to create and manipulate images.

The format of images you are able to manipulate depend on the version of GD you install, and any other libraries GD might need to access those image formats. Versions of GD older than gd-1.6 support GIF format images, and do not support PNG, where versions greater than gd-1.6 support PNG, not GIF.

Nota: Since PHP 4.3 there is a bundled version of the GD lib. This bundled version has some additional features like alpha blending, and should be used in preference to the external library since its codebase is better maintained and more stable.

You may wish to enhance GD to handle more image formats.

Tabela 1. Supported image formats

Image format | Library to download | Notes
gif |  | Only supported in GD versions older than gd-1.6. Read-only GIF support is available with PHP 4.3.0 and the bundled GD-library.
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ |
png | http://www.libpng.org/pub/png/libpng.html | Only supported in GD versions greater than gd-1.6.
xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | It's likely you have this library already available, if your system has an installed X-Environment.

You may wish to enhance GD to deal with different fonts. The following font libraries are supported:

Tabela 2. Supported font libraries

Font library | Download | Notes
FreeType 1.x | http://www.freetype.org/ |
FreeType 2 | http://www.freetype.org/ |
T1lib | ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Support for Type 1 fonts.

If you have PHP compiled with --enable-exif you are able to work with information stored in headers of JPEG and TIFF images. This way you can read meta data generated by digital cameras as mentioned above. These functions do not require the GD library.

Nota: PHP does not require any additional library for the exif module.

Instalação

To enable GD-support configure PHP --with-gd[=DIR], where DIR is the GD base install directory. To use the recommended bundled version of the GD library (which was first bundled in PHP 4.3.0), use the configure option --with-gd. In Windows, you'll include the GD2 DLL php_gd2.dll as an extension in php.ini. The GD1 DLL php_gd.dll was removed in PHP 4.3.2. Also note that the preferred truecolor image functions, such as imagecreatetruecolor(), require GD2.

To enable exif support in Windows, php_mbstring.dll must be loaded prior to php_exif.dll in php.ini.

To disable GD support in PHP 3 add --without-gd to your configure line.

Enhance the capabilities of GD to handle more image formats by specifying the --with-XXXX configure switch to your PHP configure line.

Tabela 3. Supported image formats

Image Format | Configure Switch
jpeg-6b | To enable support for jpeg-6b add --with-jpeg-dir=DIR.
png | To enable support for png add --with-png-dir=DIR. Note, libpng requires the zlib library, therefore add --with-zlib-dir[=DIR] to your configure line.
xpm | To enable support for xpm add --with-xpm-dir=DIR. If configure is not able to find the required libraries, you may add the path to your X11 libraries.

Nota: When compiling PHP with libpng, you must use the same version that was linked with the GD library.

Enhance the capabilities of GD to deal with different fonts by specifying the --with-XXXX configure switch to your PHP configure line.

Tabela 4. Supported font libraries

Font library | Configure Switch
FreeType 1.x | To enable support for FreeType 1.x add --with-ttf[=DIR].
FreeType 2 | To enable support for FreeType 2 add --with-freetype-dir=DIR.
T1lib | To enable support for T1lib (Type 1 fonts) add --with-t1lib[=DIR].
Native TrueType string function | To enable support for native TrueType string function add --enable-gd-native-ttf.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Exif supports automatically conversion for Unicode and JIS character encodings of user comments when module mbstring is available. This is done by first decoding the comment using the specified characterset. The result is then encoded with another characterset which should match your HTTP output.

Tabela 5. Exif configuration options

Name | Default | Changeable
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL
exif.encode_jis | "" | PHP_INI_ALL
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL
exif.decode_jis_intel | "JIS" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Breve descrição das diretivas de configuração.

exif.encode_unicode string

exif.encode_unicode defines the characterset UNICODE user comments are handled. This defaults to ISO-8859-15 which should work for most non Asian countries. The setting can be empty or must be an encoding supported by mbstring. If it is empty the current internal encoding of mbstring is used.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola defines the image internal characterset for Unicode encoded user comments if image is in motorola byte order (big-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel defines the image internal characterset for Unicode encoded user comments if image is in intel byte order (little-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is UCS-2LE.

exif.encode_jis string

exif.encode_jis defines the characterset JIS user comments are handled. This defaults to an empty value which forces the functions to use the current internal encoding of mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola defines the image internal characterset for JIS encoded user comments if image is in motorola byte order (big-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is JIS.

exif.decode_jis_intel string

exif.decode_jis_intel defines the image internal characterset for JIS encoded user comments if image is in intel byte order (little-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is JIS.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

IMG_GIF (integer)

IMG_JPG (integer)

IMG_JPEG (integer)

IMG_PNG (integer)

IMG_WBMP (integer)

IMG_XPM (integer)

IMG_COLOR_TILED (integer)

IMG_COLOR_STYLED (integer)

IMG_COLOR_BRUSHED (integer)

IMG_COLOR_STYLEDBRUSHED (integer)

IMG_COLOR_TRANSPARENT (integer)

IMG_ARC_ROUNDED (integer)

IMG_ARC_PIE (integer)

IMG_ARC_CHORD (integer)

IMG_ARC_NOFILL (integer)

IMG_ARC_EDGED (integer)

IMAGETYPE_GIF (integer)

IMAGETYPE_JPEG (integer)

IMAGETYPE_PNG (integer)

IMAGETYPE_SWF (integer)

IMAGETYPE_PSD (integer)

IMAGETYPE_BMP (integer)

IMAGETYPE_WBMP (integer)

IMAGETYPE_XBM (integer)

IMAGETYPE_TIFF_II (integer)

IMAGETYPE_TIFF_MM (integer)

IMAGETYPE_IFF (integer)

IMAGETYPE_JB2 (integer)

IMAGETYPE_JPC (integer)

IMAGETYPE_JP2 (integer)

IMAGETYPE_JPX (integer)

IMAGETYPE_SWC (integer)

Exemplos

Exemplo 1. PNG creation with PHP

<?php
    header("Content-type: image/png");
    $string = $_GET['text'];
    $im     = imagecreatefrompng("images/button1.png");
    $orange = imagecolorallocate($im, 220, 210, 60);
    $px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
    imagestring($im, 3, $px, 9, $string, $orange);
    imagepng($im);
    imagedestroy($im);
?>
This example would be called from a page with a tag like: <img src="button.php?text=text">. The above button.php script then takes this "text" string and overlays it on top of a base image which in this case is "images/button1.png" and outputs the resulting image. This is a very convenient way to avoid having to draw new button images every time you want to change the text of a button. With this method they are dynamically generated.

Índice
exif_imagetype -- Determine the type of an image
exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.
exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image
gd_info -- Retrieve information about the currently installed GD library
getimagesize -- Get the size of an image
image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
image2wbmp -- Output image to browser or file
imagealphablending -- Set the blending mode for an image
imageantialias -- Should antialias functions be used or not
imagearc -- Draw a partial ellipse
imagechar -- Draw a character horizontally
imagecharup -- Draw a character vertically
imagecolorallocate -- Allocate a color for an image
imagecolorallocatealpha -- Allocate a color for an image
imagecolorat -- Get the index of the color of a pixel
imagecolorclosest -- Get the index of the closest color to the specified color
imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha
imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color
imagecolordeallocate -- De-allocate a color for an image
imagecolorexact -- Get the index of the specified color
imagecolorexactalpha -- Get the index of the specified color + alpha
imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version
imagecolorresolve -- Get the index of the specified color or its closest possible alternative
imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative
imagecolorset -- Set the color for the specified palette index
imagecolorsforindex -- Get the colors for an index
imagecolorstotal -- Find out the number of colors in an image's palette
imagecolortransparent -- Define a color as transparent
imagecopy -- Copy part of an image
imagecopymerge -- Copy and merge part of an image
imagecopymergegray -- Copy and merge part of an image with gray scale
imagecopyresampled -- Copy and resize part of an image with resampling
imagecopyresized -- Copy and resize part of an image
imagecreate -- Create a new palette based image
imagecreatefromgd2 -- Create a new image from GD2 file or URL
imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL
imagecreatefromgd -- Create a new image from GD file or URL
imagecreatefromgif -- Create a new image from file or URL
imagecreatefromjpeg -- Create a new image from file or URL
imagecreatefrompng -- Create a new image from file or URL
imagecreatefromstring -- Create a new image from the image stream in the string
imagecreatefromwbmp -- Create a new image from file or URL
imagecreatefromxbm -- Create a new image from file or URL
imagecreatefromxpm -- Create a new image from file or URL
imagecreatetruecolor -- Create a new true color image
imagedashedline -- Draw a dashed line
imagedestroy -- Destroy an image
imageellipse -- Draw an ellipse
imagefill -- Flood fill
imagefilledarc -- Draw a partial ellipse and fill it
imagefilledellipse -- Draw a filled ellipse
imagefilledpolygon -- Draw a filled polygon
imagefilledrectangle -- Draw a filled rectangle
imagefilltoborder -- Flood fill to specific color
imagefilter -- Applies Filter an image using a custom angle
imagefontheight -- Get font height
imagefontwidth -- Get font width
imageftbbox -- Give the bounding box of a text using fonts via freetype2
imagefttext -- Write text to the image using fonts using FreeType 2
imagegammacorrect -- Apply a gamma correction to a GD image
imagegd2 -- Output GD2 image
imagegd -- Output GD image to browser or file
imagegif -- Output image to browser or file
imageinterlace -- Enable or disable interlace
imageistruecolor -- Finds whether an image is a truecolor image.
imagejpeg -- Output image to browser or file
imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects
imageline -- Draw a line
imageloadfont -- Load a new font
imagepalettecopy -- Copy the palette from one image to another
imagepng -- Output a PNG image to either the browser or a file
imagepolygon -- Draw a polygon
imagepsbbox -- Give the bounding box of a text rectangle using PostScript Type1 fonts
imagepscopyfont -- Make a copy of an already loaded font for further modification
imagepsencodefont -- Change the character encoding vector of a font
imagepsextendfont -- Extend or condense a font
imagepsfreefont -- Free memory used by a PostScript Type 1 font
imagepsloadfont -- Load a PostScript Type 1 font from file
imagepsslantfont -- Slant a font
imagepstext -- To draw a text string over an image using PostScript Type1 fonts
imagerectangle -- Draw a rectangle
imagerotate -- Rotate an image with a given angle
imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.
imagesetbrush -- Set the brush image for line drawing
imagesetpixel -- Set a single pixel
imagesetstyle -- Set the style for line drawing
imagesetthickness -- Set the thickness for line drawing
imagesettile -- Set the tile image for filling
imagestring -- Draw a string horizontally
imagestringup -- Draw a string vertically
imagesx -- Get image width
imagesy -- Get image height
imagetruecolortopalette -- Convert a true color image to a palette image
imagettfbbox -- Give the bounding box of a text using TrueType fonts
imagettftext -- Write text to the image using TrueType fonts
imagetypes -- Return the image types supported by this PHP build
imagewbmp -- Output image to browser or file
imagexbm -- Output XBM image to browser or file
iptcembed -- Embed binary IPTC data into a JPEG image
iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.
jpeg2wbmp -- Convert JPEG image file to WBMP image file
png2wbmp -- Convert PNG image file to WBMP image file
read_exif_data -- Alias of exif_read_data()

Anterior | Principal | Próxima
ob_iconv_handler | Acima | exif_imagetype


exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetype -- Determine the type of an image

Description

int exif_imagetype ( string filename)

exif_imagetype() reads the first bytes of an image and checks its signature. When a correct signature is found a constant will be returned otherwise the return value is FALSE. The return value is the same value that getimagesize() returns in index 2 but this function is much faster.

The following constants are defined:

Tabela 1. Imagetype Constants

Value | Constant
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (intel byte order)
8 | IMAGETYPE_TIFF_MM (motorola byte order)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM

Nota: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC as of PHP 4.3.0.

This function can be used to avoid calls to other exif functions with unsupported file types or in conjunction with $_SERVER['HTTP_ACCEPT'] to check whether or not the viewer is able to see a specific image in the browser.

Nota: This function is only available if PHP is compiled using --enable-exif.

Nota: This function does not require the GD image library.

Exemplo 1. exif_imagetype() example

<?php

if (exif_imagetype("image.gif") != IMAGETYPE_GIF) {
    echo "The picture is not a gif";
}

?>

See also getimagesize().

Anterior | Principal | Próxima
Image Functions | Acima | exif_read_data


exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.

Description

array exif_read_data ( string filename [, string sections [, bool arrays [, bool thumbnail]]])

The exif_read_data() function reads the EXIF headers from a JPEG or TIFF image file. It returns an associative array where the indexes are the header names and the values are the values associated with those headers. If no data can be returned the result is FALSE.

filename is the name of the file to read. This cannot be a URL.

sections is a comma separated list of sections that need to be present in file to produce a result array. If none of the requested sections could be found the return value is FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor and some more if available.
ANY_TAG | Any information that has a Tag e.g. IFD0, EXIF, ...
IFD0 | All tagged data of IFD0. In normal imagefiles this contains image size and so forth.
THUMBNAIL | A file is supposed to contain a thumbnail if it has a second IFD. All tagged information about the embedded thumbnail is stored in this section.
COMMENT | Comment headers of JPEG images.
EXIF | The EXIF section is a sub section of IFD0. It contains more detailed information about an image. Most of these entries are digital camera related.

arrays specifies whether or not each section becomes an array. The sections COMPUTED, THUMBNAIL and COMMENT allways become arrays as they may contain values whose names are conflict with other sections.

thumbnail whether or not to read the thumbnail itself and not only its tagged data.

Nota: Exif headers tend to be present in JPEG/TIFF images generated by digital cameras, but unfortunately each digital camera maker has a different idea of how to actually tag their images, so you can't always rely on a specific Exif header being present.

Windows ME/XP both can wipe the Exif headers when connecting to a camera. More information available at http://www.canon-asia.com/products/digital_cameras/winxp_problems.html.

Exemplo 1. exif_read_data() example

<?php

echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

The first call fails because the image has no header information.
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Nota: If the image contains any IFD0 data then COMPUTED contains the entry ByteOrderMotorola which is 0 for little-endian (intel) and 1 for big-endian (motorola) byte order. This was added in PHP 4.3.

When an Exif header contains a Copyright note this itself can contain two values. As the solution is inconsistent in the Exif 2.10 standard the COMPUTED section will return both entries Copyright.Photographer and Copyright.Editor while the IFD0 sections contains the byte array with the NULL character that splits both entries. Or just the first entry if the datatype was wrong (normal behaviour of Exif). The COMPUTED will contain also an entry Copyright Which is either the original copyright string or it is a comma separated list of photo and editor copyright.

Nota: The tag UserComment has the same problem as the Copyright tag. It can store two values first the encoding used and second the value itself. If so the IFD section only contains the encoding or a byte array. The COMPUTED section will store both in the entries UserCommentEncoding and UserComment. The entry UserComment is available in both cases so it should be used in preference to the value in IFD0 section.

If the user comment uses Unicode or JIS encoding and the module mbstring is available this encoding will automatically changed according to the exif ini settings in the php.ini. This was added in PHP 4.3.

Nota: Height and Width are computed the same way getimagesize() does so their values must not be part of any header returned. Also html is a height/width text string to be used inside normal HTML.

Nota: Starting from PHP 4.3 the function can read all embedded IFD data including arrays (returned as such). Also the size of an embedded thumbnail is returned in THUMBNAIL subarray and the function exif_read_data() can return thumbnails in TIFF format. Last but not least there is no longer a maximum length for returned values (not until memory limit is reached).

Nota: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2. Earlier versions are very unstable.

Since PHP 4.3 user comment can automatically change encoding if PHP 4 was compiled using --enable-mbstring.

This function does not require the GD image library.

See also exif_thumbnail() and getimagesize().

Anterior | Principal | Próxima
exif_imagetype | Acima | exif_thumbnail


exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image

Description

string exif_thumbnail ( string filename [, int &width [, int &height [, int &imagetype]]])

exif_thumbnail() reads the embedded thumbnail of a TIFF or JPEG image. If the image contains no thumbnail FALSE will be returned.

The parameters width, height and imagetype are available since PHP 4.3.0 and return the size of the thumbnail as well as its type. It is possible that exif_thumbnail() cannot create an image but can determine its size. In this case, the return value is FALSE but width and height are set.

If you want to deliver thumbnails through this function, you should send the mimetype information using the header() function. The following example demonstrates this:

Exemplo 1. exif_thumbnail() example

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header("Content-type: " .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // no thumbnail available, handle the error here
    echo "No thumbnail available";
}
?>

Starting from version PHP 4.3.0, the function exif_thumbnail() can return thumbnails in TIFF format.

Nota: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2.0

Nota: This function does not require the GD image library.

See also exif_read_data() and image_type_to_mime_type().

Anterior | Principal | Próxima
exif_read_data | Acima | gd_info


gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info -- Retrieve information about the currently installed GD library

Description

array gd_info ( void )

Returns an associative array describing the version and capabilities of the installed GD library.

Tabela 1. Elements of array returned by gd_info()

Attribute | Meaning
GD Version | string value describing the installed libgd version.
Freetype Support | boolean value. TRUE if Freetype Support is installed.
Freetype Linkage | string value describing the way in which Freetype was linked. Expected values are: 'with freetype', 'with TTF library', and 'with unknown library'. This element will only be defined if Freetype Support evaluated to TRUE.
T1Lib Support | boolean value. TRUE if T1Lib support is included.
GIF Read Support | boolean value. TRUE if support for reading GIF images is included.
GIF Create Support | boolean value. TRUE if support for creating GIF images is included.
JPG Support | boolean value. TRUE if JPG support is included.
PNG Support | boolean value. TRUE if PNG support is included.
WBMP Support | boolean value. TRUE if WBMP support is included.
XBM Support | boolean value. TRUE if XBM support is included.

Exemplo 1. Using gd_info()

<?php
var_dump(gd_info());
?>

The typical output is :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

See also imagepng(),
imagejpeg(),
imagegif(),
imagewbmp(), and
imagetypes().

Anterior | Principal | Próxima
exif_thumbnail | Acima | getimagesize


getimagesize

(PHP 3, PHP 4 , PHP 5)

getimagesize -- Get the size of an image

Description

array getimagesize ( string filename [, array imageinfo])

The getimagesize() function will determine the size of any GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP image file and return the dimensions along with the file type and a height/width text string to be used inside a normal HTML IMG tag.

Nota: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC as of PHP 4.3.0.

Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains the height. Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to the IMAGETYPE constants that were added in PHP 4.3. Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.

Exemplo 1. getimagesize (file)

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

Exemplo 2. getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

With JPG images, two extra indexes are returned: channels and bits. channels will be 3 for RGB pictures and 4 for CMYK pictures. bits is the number of bits for each color.

Beginning with PHP 4.3, bits and channels are present for other image types, too. However, the presence of these values can be a bit confusing. As an example, GIF always uses 3 channels per pixel, but the number of bits per pixel cannot be calculated for an animated GIF with a global color table.

Some formats may contain no image or may contain multiple images. In these cases, getimagesize() might not be able to properly determine the image size. getimagesize() will return zero for width and height in these cases.

Beginning with PHP 4.3, getimagesize() also returns an additional parameter, mime, that corresponds with the MIME type of the image. This information can be used to deliver images with correct HTTP Content-type headers:

Exemplo 3. getimagesize() and MIME types

<?php
$size = getimagesize($filename);
$fp=fopen($filename, "rb");
if ($size && $fp) {
  header("Content-type: {$size['mime']}");
  fpassthru($fp);
  exit;
} else {
  // error
}
?>

If accessing the filename image is impossible, or if it isn't a valid picture, getimagesize() will return FALSE and generate a warning.

The optional imageinfo parameter allows you to extract some extended information from the image file. Currently, this will return the different JPG APP markers as an associative array. Some programs use these APP markers to embed text information in images. A very common one is to embed IPTC http://www.iptc.org/ information in the APP13 marker. You can use the iptcparse() function to parse the binary APP13 marker into something readable.

Exemplo 4. getimagesize() returning IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Nota: JPEG 2000 support was added in PHP 4.3.2. Note that JPC and JP2 are capable of having components with different bit depths. In this case, the value for "bits" is the highest bit depth encountered. Also, JP2 files may contain multiple JPEG 2000 codestreams. In this case, getimagesize() returns the values for the first codestream it encounters in the root of the file.

Nota: TIFF support was added in PHP 4.2.

This function does not require the GD image library.

See also image_type_to_mime_type(),
exif_imagetype(), exif_read_data()
and exif_thumbnail().

URL support was added in PHP 4.0.5.

Anterior | Principal | Próxima
gd_info | Acima | image_type_to_mime_type


image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Description

string image_type_to_mime_type ( int imagetype)

The image_type_to_mime_type() function will determine the Mime-Type for an IMAGETYPE constant.

Exemplo 1. image_type_to_mime_type (file)

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

The returned values are as follows

Tabela 1. Returned values Constants

imagetype | Returned value
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Nota: This function does not require the GD image library.

See also getimagesize(),
exif_imagetype(),
exif_read_data() and
exif_thumbnail().

Anterior | Principal | Próxima
getimagesize | Acima | image2wbmp


image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmp -- Output image to browser or file

Description

int image2wbmp ( resource image [, string filename [, int threshold]])

image2wbmp() creates the WBMP file in filename from the image image. The image argument is the return from imagecreate().

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Exemplo 1. image2wbmp() example

<?php

$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // output the stream directly

?>

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also imagewbmp().

Anterior | Principal | Próxima
image_type_to_mime_type | Acima | imagealphablending


imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending -- Set the blending mode for an image

Description

bool imagealphablending ( resource image, bool blendmode)

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. If blendmode is TRUE, then blending mode is enabled, otherwise disabled. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

Anterior | Principal | Próxima
image2wbmp | Acima | imageantialias


imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialias -- Should antialias functions be used or not

Description

bool imageantialias ( resource im, bool on)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

See also imagecreatetruecolor().

Anterior | Principal | Próxima
imagealphablending | Acima | imagearc


imagearc

(PHP 3, PHP 4 , PHP 5)

imagearc -- Draw a partial ellipse

Description

int imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color)

imagearc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. 0° is located at the three-o'clock position, and the arc is drawn counter-clockwise.

Exemplo 1. Drawing a circle with imagearc()

<?php

// create a 200*200 image
$img = imagecreate(200, 200);

// allocate some colors
$white = imagecolorallocate($img, 255, 255, 255);

// draw a white circle
imagearc($img, 100, 100, 150, 150, 0, 360, $white);

// output image in the browser
header("Content-type: image/png");
imagepng($img);

// free memory
imagedestroy($img);

?>

See also imageellipse(),
imagefilledellipse(), and
imagefilledarc().

Anterior | Principal | Próxima
imageantialias | Acima | imagechar


imagechar

(PHP 3, PHP 4 , PHP 5)

imagechar -- Draw a character horizontally

Description

int imagechar ( resource image, int font, int x, int y, string c, int color)

imagechar() draws the first character of c in the image identified by image with its upper-left at x,y (top left is 0, 0) with the color color. If font is 1, 2, 3, 4 or 5, a built-in font is used (with higher numbers corresponding to larger fonts).

Exemplo 1. imagechar() example

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "P" in the top left corner
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

See also imagecharup() and imageloadfont().

Anterior | Principal | Próxima
imagearc | Acima | imagecharup


imagecharup

(PHP 3, PHP 4 , PHP 5)

imagecharup -- Draw a character vertically

Description

int imagecharup ( resource image, int font, int x, int y, string c, int color)

imagecharup() draws the character c vertically in the image identified by image at coordinates x, y (top left is 0, 0) with the color color. If font is 1, 2, 3, 4 or 5, a built-in font is used.

Exemplo 1. imagecharup() example

<?php

$im = imagecreate(100, 100);

$string = 'Note that the first letter is a N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "Z" on a white background
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

See also imagechar() and imageloadfont().

Anterior | Principal | Próxima
imagechar | Acima | imagecolorallocate


imagecolorallocate

(PHP 3, PHP 4 , PHP 5)

imagecolorallocate -- Allocate a color for an image

Description

int imagecolorallocate ( resource image, int red, int green, int blue)

imagecolorallocate() returns a color identifier representing the color composed of the given RGB components. The image argument is the return from the imagecreate() function. red, green and blue are the values of the red, green and blue component of the requested color respectively. These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF. imagecolorallocate() must be called to create each color that is to be used in the image represented by image.

Nota: The first call to imagecolorallocate() fills the background color.

<?php

// sets background to red
$background = imagecolorallocate($im, 255, 0, 0);

// sets some colors
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// hexadecimal way
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Returns -1 if the allocation failed.

See also imagecolorallocatealpha() and imagecolordeallocate().

Anterior | Principal | Próxima
imagecharup | Acima | imagecolorallocatealpha


imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealpha -- Allocate a color for an image

Description

int imagecolorallocatealpha ( resource image, int red, int green, int blue, int alpha)

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha which may have a value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

Returns FALSE if the allocation failed.

Exemplo 1. Example of using imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

See also imagecolorallocate() and imagecolordeallocate().

Anterior | Principal | Próxima
imagecolorallocate | Acima | imagecolorat


imagecolorat

(PHP 3, PHP 4 , PHP 5)

imagecolorat -- Get the index of the color of a pixel

Description

int imagecolorat ( resource image, int x, int y)

Returns the index of the color of the pixel at the specified location in the image specified by image.

If PHP is compiled against GD library 2.0 or higher and the image is a truecolor image, this function returns the RGB value of that pixel as integer. Use bitshifting and masking to access the distinct red, green and blue component values:

Exemplo 1. Access distinct RGB values

<?php
$im = ImageCreateFromPng("rockym.png");
$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

See also imagecolorset() and imagecolorsforindex().

Anterior | Principal | Próxima
imagecolorallocatealpha | Acima | imagecolorclosest


imagecolorclosest

(PHP 3, PHP 4 , PHP 5)

imagecolorclosest -- Get the index of the closest color to the specified color

Description

int imagecolorclosest ( resource image, int red, int green, int blue)

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value.

The "distance" between the desired color and each color in the palette is calculated as if the RGB values represented points in three-dimensional space.

See also imagecolorexact().

Anterior | Principal | Próxima
imagecolorat | Acima | imagecolorclosestalpha


imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha

Description

int imagecolorclosestalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value and alpha level.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

See also imagecolorexactalpha().

Anterior | Principal | Próxima
imagecolorclosest | Acima | imagecolorclosesthwb


imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color

Description

int imagecolorclosesthwb ( resource image, int red, int green, int blue)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imagecolorclosestalpha | Acima | imagecolordeallocate


imagecolordeallocate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

imagecolordeallocate -- De-allocate a color for an image

Description

int imagecolordeallocate ( resource image, int color)

The imagecolordeallocate() function de-allocates a color previously allocated with imagecolorallocate() or imagecolorallocatealpha().

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

See also imagecolorallocate() and imagecolorallocatealpha().

Anterior | Principal | Próxima
imagecolorclosesthwb | Acima | imagecolorexact


imagecolorexact

(PHP 3, PHP 4 , PHP 5)

imagecolorexact -- Get the index of the specified color

Description

int imagecolorexact ( resource image, int red, int green, int blue)

Returns the index of the specified color in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

See also imagecolorclosest().

Anterior | Principal | Próxima
imagecolordeallocate | Acima | imagecolorexactalpha


imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalpha -- Get the index of the specified color + alpha

Description

int imagecolorexactalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the specified color+alpha in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

See also imagecolorclosestalpha().

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Anterior | Principal | Próxima
imagecolorexact | Acima | imagecolormatch


imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version

Description

bool imagecolormatch ( resource image1, resource image2)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

image1 must be Truecolor, image2 must be Palette, and both image1 and image2 must be the same size.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

See also imagecreatetruecolor().

Anterior | Principal | Próxima
imagecolorexactalpha | Acima | imagecolorresolve


imagecolorresolve

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imagecolorresolve -- Get the index of the specified color or its closest possible alternative

Description

int imagecolorresolve ( resource image, int red, int green, int blue)

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

See also imagecolorclosest().

Anterior | Principal | Próxima
imagecolormatch | Acima | imagecolorresolvealpha


imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative

Description

int imagecolorresolvealpha ( resource image, int red, int green, int blue, int alpha)

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

See also imagecolorclosestalpha().

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

Anterior | Principal | Próxima
imagecolorresolve | Acima | imagecolorset


imagecolorset

(PHP 3, PHP 4 , PHP 5)

imagecolorset -- Set the color for the specified palette index

Description

bool imagecolorset ( resource image, int index, int red, int green, int blue)

This sets the specified index in the palette to the specified color. This is useful for creating flood-fill-like effects in palleted images without the overhead of performing the actual flood-fill.

See also imagecolorat().

Anterior | Principal | Próxima
imagecolorresolvealpha | Acima | imagecolorsforindex


imagecolorsforindex

(PHP 3, PHP 4 , PHP 5)

imagecolorsforindex -- Get the colors for an index

Description

array imagecolorsforindex ( resource image, int index)

This returns an associative array with red, green, blue and alpha keys that contain the appropriate values for the specified color index.

Exemplo 1. imagecolorsforindex() example

<?php

// open an image
$im = imagecreatefrompng('nexen.png');

// get a color
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// make it human readable
$color_tran = imagecolorsforindex($im, $color_index);

// what is it ?
echo '<pre>';
print_r($color_tran);
echo '</pre>';

?>

This example will output :

Array
(
    [red] => 226
    [green] => 222
    [blue] => 252
    [alpha] => 0
)

See also imagecolorat() and imagecolorexact().

Anterior | Principal | Próxima
imagecolorset | Acima | imagecolorstotal


imagecolorstotal

(PHP 3, PHP 4 , PHP 5)

imagecolorstotal -- Find out the number of colors in an image's palette

Description

int imagecolorstotal ( resource image)

This returns the number of colors in the specified image's palette.

See also imagecolorat() and imagecolorsforindex().

Anterior | Principal | Próxima
imagecolorsforindex | Acima | imagecolortransparent


imagecolortransparent

(PHP 3, PHP 4 , PHP 5)

imagecolortransparent -- Define a color as transparent

Description

int imagecolortransparent ( resource image [, int color])

imagecolortransparent() sets the transparent color in the image image to color. image is the image identifier returned by imagecreate() and color is a color identifier returned by imagecolorallocate().

Nota: The transparent color is a property of the image, transparency is not a property of the color. Once you have a set a color to be the transparent color, any regions of the image in that color that were drawn previously will be transparent.

The identifier of the new (or current, if none is specified) transparent color is returned.

Anterior | Principal | Próxima
imagecolorstotal | Acima | imagecopy


imagecopy

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

imagecopy -- Copy part of an image

Description

int imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y.

Anterior | Principal | Próxima
imagecolortransparent | Acima | imagecopymerge


imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymerge -- Copy and merge part of an image

Description

int imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

Nota: This function was added in PHP 4.0.6

Anterior | Principal | Próxima
imagecopy | Acima | imagecopymergegray


imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegray -- Copy and merge part of an image with gray scale

Description

int imagecopymergegray ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

imagecopymergegray() copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

This function is identical to imagecopymerge() except that when merging it preserves the hue of the source by converting the destination pixels to gray scale before the copy operation.

Nota: This function was added in PHP 4.0.6

Anterior | Principal | Próxima
imagecopymerge | Acima | imagecopyresampled


imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampled -- Copy and resize part of an image with resampling

Description

bool imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresampled() copies a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. Retorna TRUE em caso de sucesso ou FALSE em falhas. dst_im is the destination image, src_im is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_im is the same as src_im) but if the regions overlap the results will be unpredictable.

Nota: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

Nota: imagecopyresampled() requires GD 2.0.l or greater.

See also imagecopyresized().

Anterior | Principal | Próxima
imagecopymergegray | Acima | imagecopyresized


imagecopyresized

(PHP 3, PHP 4 , PHP 5)

imagecopyresized -- Copy and resize part of an image

Description

int imagecopyresized ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresized() copies a rectangular portion of one image to another image. Dst_im is the destination image, src_im is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_im is the same as src_im) but if the regions overlap the results will be unpredictable.

Nota: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

See also imagecopyresampled().

Anterior | Principal | Próxima
imagecopyresampled | Acima | imagecreate


imagecreate

(PHP 3, PHP 4 , PHP 5)

imagecreate -- Create a new palette based image

Description

resource imagecreate ( int x_size, int y_size)

imagecreate() returns an image identifier representing a blank image of size x_size by y_size.

We recommend the use of imagecreatetruecolor().

Exemplo 1. Creating a new GD image stream and outputting an image.

<?php
header("Content-type: image/png");
$im = @imagecreate(50, 100)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

See also imagedestroy() and imagecreatetruecolor().

Anterior | Principal | Próxima
imagecopyresized | Acima | imagecreatefromgd2


imagecreatefromgd2

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2 -- Create a new image from GD2 file or URL

Description

resource imagecreatefromgd2 ( string filename)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreate | Acima | imagecreatefromgd2part


imagecreatefromgd2part

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL

Description

resource imagecreatefromgd2part ( string filename, int srcX, int srcY, int width, int height)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromgd2 | Acima | imagecreatefromgd


imagecreatefromgd

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd -- Create a new image from GD file or URL

Description

resource imagecreatefromgd ( string filename)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromgd2part | Acima | imagecreatefromgif


imagecreatefromgif

(PHP 3, PHP 4 , PHP 5)

imagecreatefromgif -- Create a new image from file or URL

Description

resource imagecreatefromgif ( string filename)

imagecreatefromgif() returns an image identifier representing the image obtained from the given filename.

imagecreatefromgif() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error GIF:

Exemplo 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadGif ($imgname)
{
    $im = @imagecreatefromgif ($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im = imagecreate (150, 30); /* Create a blank image */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Nota: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromgd | Acima | imagecreatefromjpeg


imagecreatefromjpeg

(PHP 3>= 3.0.16, PHP 4 , PHP 5)

imagecreatefromjpeg -- Create a new image from file or URL

Description

resource imagecreatefromjpeg ( string filename)

imagecreatefromjpeg() returns an image identifier representing the image obtained from the given filename.

imagecreatefromjpeg() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error JPEG:

Exemplo 1. Example to handle an error during creation (courtesy vic at zymsys dot com )

<?php
function LoadJpeg($imgname)
{
    $im = @imagecreatefromjpeg($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromgif | Acima | imagecreatefrompng


imagecreatefrompng

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagecreatefrompng -- Create a new image from file or URL

Description

resource imagecreatefrompng ( string filename)

imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.

imagecreatefrompng() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error PNG:

Exemplo 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromjpeg | Acima | imagecreatefromstring


imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring -- Create a new image from the image stream in the string

Description

resource imagecreatefromstring ( string image)

imagecreatefromstring() returns an image identifier representing the image obtained from the given string.

Anterior | Principal | Próxima
imagecreatefrompng | Acima | imagecreatefromwbmp


imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp -- Create a new image from file or URL

Description

resource imagecreatefromwbmp ( string filename)

imagecreatefromwbmp() returns an image identifier representing the image obtained from the given filename.

imagecreatefromwbmp() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error WBMP:

Exemplo 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadWBMP($imgname)
{
    $im = @imagecreatefromwbmp($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate (20, 20); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromstring | Acima | imagecreatefromxbm


imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbm -- Create a new image from file or URL

Description

resource imagecreatefromxbm ( string filename)

imagecreatefromxbm() returns an image identifier representing the image obtained from the given filename.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromwbmp | Acima | imagecreatefromxpm


imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpm -- Create a new image from file or URL

Description

resource imagecreatefromxpm ( string filename)

imagecreatefromxpm() returns an image identifier representing the image obtained from the given filename.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

Dica: Você pode usar uma URL com esta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Apêndice J para uma lista de protocolos URL suportados.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Anterior | Principal | Próxima
imagecreatefromxbm | Acima | imagecreatetruecolor


imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolor -- Create a new true color image

Description

resource imagecreatetruecolor ( int x_size, int y_size)

imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size.

Exemplo 1. Creating a new GD image stream and outputting an image.

<?php
header ("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
      or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later.

Nota: This function will not work with GIF file formats.

See also imagedestroy() and imagecreate().

Anterior | Principal | Próxima
imagecreatefromxpm | Acima | imagedashedline


imagedashedline

(PHP 3, PHP 4 , PHP 5)

imagedashedline -- Draw a dashed line

Description

int imagedashedline ( resource image, int x1, int y1, int x2, int y2, int color)

This function is deprecated. Use combination of imagesetstyle() and imageline() instead.

Anterior | Principal | Próxima
imagecreatetruecolor | Acima | imagedestroy


imagedestroy

(PHP 3, PHP 4 , PHP 5)

imagedestroy -- Destroy an image

Description

int imagedestroy ( resource image)

imagedestroy() frees any memory associated with image image. image is the image identifier returned by the imagecreate() function.

Anterior | Principal | Próxima
imagedashedline | Acima | imageellipse


imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipse -- Draw an ellipse

Description

int imageellipse ( resource image, int cx, int cy, int w, int h, int color)

imageellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The color of the ellipse is specified by color.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.2 or later which can be obtained at http://www.boutell.com/gd/

Exemplo 1. imageellipse() example

<?php

// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagefilledellipse() and imagearc().

Anterior | Principal | Próxima
imagedestroy | Acima | imagefill


imagefill

(PHP 3, PHP 4 , PHP 5)

imagefill -- Flood fill

Description

int imagefill ( resource image, int x, int y, int color)

imagefill() performs a flood fill starting at coordinate x, y (top left is 0, 0) with color color in the image image.

Anterior | Principal | Próxima
imageellipse | Acima | imagefilledarc


imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- Draw a partial ellipse and fill it

Description

bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style)

imagefilledarc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. Retorna TRUE em caso de sucesso ou FALSE em falhas. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. style is a bitwise OR of the following possibilities:

  1. IMG_ARC_PIE

  2. IMG_ARC_CHORD

  3. IMG_ARC_NOFILL

  4. IMG_ARC_EDGED

IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD just connects the starting and ending angles with a straight line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL indicates that the arc or chord should be outlined, not filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.

Exemplo 1. Creating a 3D looking pie

<?php

// this example is provided by poxy at klam dot is

// create image
$image = imagecreate(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

Anterior | Principal | Próxima
imagefill | Acima | imagefilledellipse


imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipse -- Draw a filled ellipse

Description

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color)

imagefilledellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The ellipse is filled using color. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Exemplo 1. imagefilledellipse() example

<?php

// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imageellipse() and imagefilledarc().

Anterior | Principal | Próxima
imagefilledarc | Acima | imagefilledpolygon


imagefilledpolygon

(PHP 3, PHP 4 , PHP 5)

imagefilledpolygon -- Draw a filled polygon

Description

int imagefilledpolygon ( resource image, array points, int num_points, int color)

imagefilledpolygon() creates a filled polygon in image image. points is a PHP array containing the polygon's vertices, i.e. points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points is the total number of vertices.

Exemplo 1. imagefilledpolygon() example

<?php

// this example is provided by ecofarm at mullum dot com dot au

// set up array of points for polygon
$values = array(
  0  => 40,    // x1
  1  => 50,    // y1
  2  => 20,    // x2
  3  => 240,   // y2
  4  => 60,    // x3
  5  => 60,    // y3
  6  => 240,   // x4
  7  => 20,    // y4
  8  => 50,    // x5
  9  => 40,    // y5
  10 => 10,    // x6
  11 => 10,    // y6
);

// create image
$im = imagecreate(250, 250);

// some colors
$bg   = imagecolorallocate($im, 255, 255, 255);
$blue = imagecolorallocate($im, 0, 0, 255);

// draw a polygon
imagefilledpolygon($im, $values, 6, $blue );

// flush image
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

?>

Anterior | Principal | Próxima
imagefilledellipse | Acima | imagefilledrectangle


imagefilledrectangle

(PHP 3, PHP 4 , PHP 5)

imagefilledrectangle -- Draw a filled rectangle

Description

int imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color)

imagefilledrectangle() creates a filled rectangle of color color in image image starting at upper left coordinates x1, y1 and ending at bottom right coordinates x2, y2. 0, 0 is the top left corner of the image.

Anterior | Principal | Próxima
imagefilledpolygon | Acima | imagefilltoborder


imagefilltoborder

(PHP 3, PHP 4 , PHP 5)

imagefilltoborder -- Flood fill to specific color

Description

int imagefilltoborder ( resource image, int x, int y, int border, int color)

imagefilltoborder() performs a flood fill whose border color is defined by border. The starting point for the fill is x, y (top left is 0, 0) and the region is filled with color color.

Anterior | Principal | Próxima
imagefilledrectangle | Acima | imagefilter


imagefilter

(PHP 5)

imagefilter -- Applies Filter an image using a custom angle

Description

bool imagefilter ( resource src_im, int filtertype [, int args])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

Anterior | Principal | Próxima
imagefilltoborder | Acima | imagefontheight


imagefontheight

(PHP 3, PHP 4 , PHP 5)

imagefontheight -- Get font height

Description

int imagefontheight ( int font)

Returns the pixel height of a character in the specified font.

See also imagefontwidth() and imageloadfont().

Anterior | Principal | Próxima
imagefilter | Acima | imagefontwidth


imagefontwidth

(PHP 3, PHP 4 , PHP 5)

imagefontwidth -- Get font width

Description

int imagefontwidth ( int font)

Returns the pixel width of a character in font.

See also imagefontheight() and imageloadfont().

Anterior | Principal | Próxima
imagefontheight | Acima | imageftbbox


imageftbbox

(PHP 4 >= 4.1.0, PHP 5)

imageftbbox -- Give the bounding box of a text using fonts via freetype2

Description

array imageftbbox ( int size, int angle, string font_file, string text [, array extrainfo])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imagefontwidth | Acima | imagefttext


imagefttext

(PHP 4 >= 4.1.0, PHP 5)

imagefttext -- Write text to the image using fonts using FreeType 2

Description

array imagefttext ( resource image, int size, int angle, int x, int y, int col, string font_file, string text [, array extrainfo])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imageftbbox | Acima | imagegammacorrect


imagegammacorrect

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagegammacorrect -- Apply a gamma correction to a GD image

Description

int imagegammacorrect ( resource image, float inputgamma, float outputgamma)

The imagegammacorrect() function applies gamma correction to a gd image stream (image) given an input gamma, the parameter inputgamma and an output gamma, the parameter outputgamma.

Anterior | Principal | Próxima
imagefttext | Acima | imagegd2


imagegd2

(PHP 4 >= 4.1.0, PHP 5)

imagegd2 -- Output GD2 image

Description

int imagegd2 ( resource image [, string filename [, int chunk_size [, int type]]])

imagegd2() outputs GD2 image to browser or file.

The optional type parameter is either IMG_GD2_RAW or IMG_GD2_COMPRESSED. Default is IMG_GD2_RAW.

Nota: The optional chunk_size and type parameters became available in PHP 4.3.2.

Anterior | Principal | Próxima
imagegammacorrect | Acima | imagegd


imagegd

(PHP 4 >= 4.1.0, PHP 5)

imagegd -- Output GD image to browser or file

Description

int imagegd ( resource image [, string filename])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imagegd2 | Acima | imagegif


imagegif

(PHP 3, PHP 4 , PHP 5)

imagegif -- Output image to browser or file

Description

int imagegif ( resource image [, string filename])

imagegif() creates the GIF file in filename from the image image. The image argument is the return from the imagecreate() function.

The image format will be GIF87a unless the image has been made transparent with imagecolortransparent(), in which case the image format will be GIF89a.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/gif content-type using header(), you can create a PHP script that outputs GIF images directly.

Nota: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library. Support is expected to return in a version subsequent to the rerelease of GIF support in the GD library in mid 2004. For more information, see the GD Project site.

The following code snippet allows you to write more portable PHP applications by auto-detecting the type of GD support which is available. Replace the sequence header ("Content-type: image/gif"); imagegif ($im); by the more flexible sequence:

<?php
if (function_exists("imagegif")) {
    header("Content-type: image/gif");
    imagegif($im);
} elseif (function_exists("imagejpeg")) {
    header("Content-type: image/jpeg");
    imagejpeg($im, "", 0.5);
} elseif (function_exists("imagepng")) {
    header("Content-type: image/png");
    imagepng($im);
} elseif (function_exists("imagewbmp")) {
    header("Content-type: image/vnd.wap.wbmp");
    imagewbmp($im);
} else {
    die("No image support in this PHP server");
}
?>

Nota: As of version 3.0.18 and 4.0.2 you can use the function imagetypes() in place of function_exists() for checking the presence of the various supported image formats:

<?php
if (imagetypes() & IMG_GIF) {
    header ("Content-type: image/gif");
    imagegif ($im);
} elseif (imagetypes() & IMG_JPG) {
    /* ... etc. */
}
?>

See also imagepng(), imagewbmp(), imagejpeg() and imagetypes().

Anterior | Principal | Próxima
imagegd | Acima | imageinterlace


imageinterlace

(PHP 3, PHP 4 , PHP 5)

imageinterlace -- Enable or disable interlace

Description

int imageinterlace ( resource image [, int interlace])

imageinterlace() turns the interlace bit on or off. If interlace is 1 the image will be interlaced, and if interlace is 0 the interlace bit is turned off.

If the interlace bit is set and the image is used as a JPEG image, the image is created as a progressive JPEG.

This function returns whether the interlace bit is set for the image.

Anterior | Principal | Próxima
imagegif | Acima | imageistruecolor


imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolor -- Finds whether an image is a truecolor image.

Description

bool imageistruecolor ( resource image)

imageistruecolor() finds whether the image image is a truecolor image.

See also imagecreatetruecolor().

Anterior | Principal | Próxima
imageinterlace | Acima | imagejpeg


imagejpeg

(PHP 3>= 3.0.16, PHP 4 , PHP 5)

imagejpeg -- Output image to browser or file

Description

int imagejpeg ( resource image [, string filename [, int quality]])

imagejpeg() creates the JPEG file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. To skip the filename argument in order to provide a quality argument just use an empty string (''). By sending an image/jpeg content-type using header(), you can create a PHP script that outputs JPEG images directly.

Nota: JPEG support is only available if PHP was compiled against GD-1.8 or later.

quality is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default is the default IJG quality value (about 75).

If you want to output Progressive JPEGs, you need to set interlacing on with imageinterlace().

See also
imagepng(),
imagegif(),
imagewbmp(),
imageinterlace() and
imagetypes().

Anterior | Principal | Próxima
imageistruecolor | Acima | imagelayereffect


imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects

Description

bool imagelayereffect ( resource image, int effect)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

Anterior | Principal | Próxima
imagejpeg | Acima | imageline


imageline

(PHP 3, PHP 4 , PHP 5)

imageline -- Draw a line

Description

int imageline ( resource image, int x1, int y1, int x2, int y2, int color)

imageline() draws a line from x1, y1 to x2, y2 (top left is 0, 0) in image image of color color.

Exemplo 1. Drawing a thick line

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* this way it works well only for orthogonal lines
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    if ($thick == 1) {
        return imageline($image, $x1, $y1, $x2, $y2, $color);
    }
    $t = $thick / 2 - 0.5;
    if ($x1 == $x2 || $y1 == $y2) {
        return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
    }
    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
    $a = $t / sqrt(1 + pow($k, 2));
    $points = array(
        round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    imagefilledpolygon($image, $points, 4, $color);
    return imagepolygon($image, $points, 4, $color);
}

?>

See also imagecreate() and imagecolorallocate().

Anterior | Principal | Próxima
imagelayereffect | Acima | imageloadfont


imageloadfont

(PHP 3, PHP 4 , PHP 5)

imageloadfont -- Load a new font

Description

int imageloadfont ( string file)

imageloadfont() loads a user-defined bitmap font and returns an identifier for the font (that is always greater than 5, so it will not conflict with the built-in fonts).

The font file format is currently binary and architecture dependent. This means you should generate the font files on the same type of CPU as the machine you are running PHP on.

Tabela 1. Font file format

byte position | C data type | description
byte 0-3 | int | number of characters in the font
byte 4-7 | int | value of first character in the font (often 32 for space)
byte 8-11 | int | pixel width of each character
byte 12-15 | int | pixel height of each character
byte 16- | char | array with character data, one byte per pixel in each character, for a total of (nchars*width*height) bytes.

See also imagefontwidth() and imagefontheight().

Anterior | Principal | Próxima
imageline | Acima | imagepalettecopy


imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopy -- Copy the palette from one image to another

Description

int imagepalettecopy ( resource destination, resource source)

imagepalettecopy() copies the palette from the source image to the destination image.

Anterior | Principal | Próxima
imageloadfont | Acima | imagepng


imagepng

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagepng -- Output a PNG image to either the browser or a file

Description

int imagepng ( resource image [, string filename])

The imagepng() outputs a GD image stream (image) in PNG format to standard output (usually the browser) or, if a filename is given by the filename it outputs the image to the file.

<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>

See also imagegif(), imagewbmp(), imagejpeg(), imagetypes().

Anterior | Principal | Próxima
imagepalettecopy | Acima | imagepolygon


imagepolygon

(PHP 3, PHP 4 , PHP 5)

imagepolygon -- Draw a polygon

Description

int imagepolygon ( resource image, array points, int num_points, int color)

imagepolygon() creates a polygon in image id. points is a PHP array containing the polygon's vertices, i.e. points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points is the total number of points (vertices).

Exemplo 1. imagepolygon() example

<?php
// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// draw the polygon
imagepolygon($image,
             array (
                    0, 0,
                    100, 200,
                    300, 200
             ),
             3,
             $col_poly);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagecreate() and imagecreatetruecolor().

Anterior | Principal | Próxima
imagepng | Acima | imagepsbbox


imagepsbbox

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsbbox -- Give the bounding box of a text rectangle using PostScript Type1 fonts

Description

array imagepsbbox ( string text, int font, int size [, int space [, int tightness [, float angle]]])

size is expressed in pixels.

space allows you to change the default value of a space in a font. This amount is added to the normal value and can also be negative.

tightness allows you to control the amount of white space between characters. This amount is added to the normal character width and can also be negative.

angle is in degrees.

Parameters space and tightness are expressed in character space units, where 1 unit is 1/1000th of an em-square.

Parameters space, tightness, and angle are optional.

The bounding box is calculated using information available from character metrics, and unfortunately tends to differ slightly from the results achieved by actually rasterizing the text. If the angle is 0 degrees, you can expect the text to need 1 pixel more to every direction.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

This function returns an array containing the following elements:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | upper right x-coordinate
3 | upper right y-coordinate

See also imagepstext().

Anterior | Principal | Próxima
imagepolygon | Acima | imagepscopyfont


imagepscopyfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepscopyfont -- Make a copy of an already loaded font for further modification

Description

int imagepscopyfont ( int fontindex)

Use this function if you need make further modifications to the font, for example extending/condensing, slanting it or changing its character encoding vector, but need to keep the original along as well. Note that the font you want to copy must be one obtained using imagepsloadfont(), not a font that is itself a copied one. You can although make modifications to it before copying.

If you use this function, you must free the fonts obtained this way yourself and in reverse order. Otherwise your script will hang.

In the case everything went right, a valid font index will be returned and can be used for further purposes. Otherwise the function returns FALSE and prints a message describing what went wrong.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

See also imagepsloadfont().

Anterior | Principal | Próxima
imagepsbbox | Acima | imagepsencodefont


imagepsencodefont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsencodefont -- Change the character encoding vector of a font

Description

int imagepsencodefont ( int font_index, string encodingfile)

Loads a character encoding vector from a file and changes the fonts encoding vector to it. As a PostScript fonts default vector lacks most of the character positions above 127, you'll definitely want to change this if you use an other language than English. The exact format of this file is described in T1libs documentation. T1lib comes with two ready-to-use files, IsoLatin1.enc and IsoLatin2.enc.

If you find yourself using this function all the time, a much better way to define the encoding is to set ps.default_encoding in the configuration file to point to the right encoding file and all fonts you load will automatically have the right encoding.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

Anterior | Principal | Próxima
imagepscopyfont | Acima | imagepsextendfont


imagepsextendfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsextendfont -- Extend or condense a font

Description

bool imagepsextendfont ( int font_index, float extend)

Extend or condense a font (font_index), if the value of the extend parameter is less than one you will be condensing the font.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

Anterior | Principal | Próxima
imagepsencodefont | Acima | imagepsfreefont


imagepsfreefont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsfreefont -- Free memory used by a PostScript Type 1 font

Description

void imagepsfreefont ( int fontindex)

imagepsfreefont() frees memory used by a PostScript Type 1 font.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

See also imagepsloadfont().

Anterior | Principal | Próxima
imagepsextendfont | Acima | imagepsloadfont


imagepsloadfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsloadfont -- Load a PostScript Type 1 font from file

Description

int imagepsloadfont ( string filename)

In the case everything went right, a valid font index will be returned and can be used for further purposes. Otherwise the function returns FALSE and prints a message describing what went wrong, which you cannot read directly, while the output type is image.

Exemplo 1. imagepsloadfont() example

<?php
header("Content-type: image/jpeg");
$im = imagecreate(350, 45);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
$font = imagepsloadfont("bchbi.pfb"); // or locate your .pfb files on your machine
imagepstext($im, "Testing... It worked!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);
imagejpeg($im, "", 100); //for best quality...your mileage may vary
imagedestroy($im);
?>

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

See also imagepsfreefont().

Anterior | Principal | Próxima
imagepsfreefont | Acima | imagepsslantfont


imagepsslantfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsslantfont -- Slant a font

Description

bool imagepsslantfont ( int font_index, float slant)

Slant a font given by the font_index parameter with a slant of the value of the slant parameter.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

Anterior | Principal | Próxima
imagepsloadfont | Acima | imagepstext


imagepstext

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepstext -- To draw a text string over an image using PostScript Type1 fonts

Description

array imagepstext ( resource image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]])

foreground is the color in which the text will be painted. Background is the color to which the text will try to fade in with antialiasing. No pixels with the color background are actually painted, so the background image does not need to be of solid color.

The coordinates given by x, y will define the origin (or reference point) of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x, y define the upper-right corner of the first character. Refer to PostScript documentation about fonts and their measuring system if you have trouble understanding how this works.

space allows you to change the default value of a space in a font. This amount is added to the normal value and can also be negative.

tightness allows you to control the amount of white space between characters. This amount is added to the normal character width and can also be negative.

angle is in degrees.

size is expressed in pixels.

antialias_steps allows you to control the number of colours used for antialiasing text. Allowed values are 4 and 16. The higher value is recommended for text sizes lower than 20, where the effect in text quality is quite visible. With bigger sizes, use 4. It's less computationally intensive.

Parameters space and tightness are expressed in character space units, where 1 unit is 1/1000th of an em-square.

Parameters space, tightness, angle and antialias_steps are optional.

Nota: Esta função somente está disponível se o PHP foi compilado utilizando --enable-t1lib.

This function returns an array containing the following elements:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | upper right x-coordinate
3 | upper right y-coordinate

See also imagepsbbox().

Anterior | Principal | Próxima
imagepsslantfont | Acima | imagerectangle


imagerectangle

(PHP 3, PHP 4 , PHP 5)

imagerectangle -- Draw a rectangle

Description

int imagerectangle ( resource image, int x1, int y1, int x2, int y2, int col)

imagerectangle() creates a rectangle of color col in image image starting at upper left coordinate x1, y1 and ending at bottom right coordinate x2, y2. 0, 0 is the top left corner of the image.

Anterior | Principal | Próxima
imagepstext | Acima | imagerotate


imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotate -- Rotate an image with a given angle

Description

resource imagerotate ( resource src_im, float angle, int bgd_color)

Rotates the src_im image using a given angle in degree. bgd_color specifies the color of the uncovered zone after the rotation.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

Anterior | Principal | Próxima
imagerectangle | Acima | imagesavealpha


imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

Description

bool imagesavealpha ( resource image, bool saveflag)

imagesavealpha() sets the flag to attempt to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

You have to unset alphablending (imagealphablending($im, FALSE)), to use it.

Alpha channel is not supported by all browsers, if you have problem with your browser, try to load your script with an alpha channel compliant browser, e.g. latest Mozilla.

See also imagealphablending().

Anterior | Principal | Próxima
imagerotate | Acima | imagesetbrush


imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrush -- Set the brush image for line drawing

Description

int imagesetbrush ( resource image, resource brush)

imagesetbrush() sets the brush image to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special colors IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED.

Nota: You need not take special action when you are finished with a brush, but if you destroy the brush image, you must not use the IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED colors until you have set a new brush image!

Nota: This function was added in PHP 4.0.6

Anterior | Principal | Próxima
imagesavealpha | Acima | imagesetpixel


imagesetpixel

(PHP 3, PHP 4 , PHP 5)

imagesetpixel -- Set a single pixel

Description

int imagesetpixel ( resource image, int x, int y, int color)

imagesetpixel() draws a pixel at x, y (top left is 0, 0) in image image of color color.

See also imagecreate() and imagecolorallocate().

Anterior | Principal | Próxima
imagesetbrush | Acima | imagesetstyle


imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyle -- Set the style for line drawing

Description

bool imagesetstyle ( resource image, array style)

imagesetstyle() sets the style to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special color IMG_COLOR_STYLED or lines of images with color IMG_COLOR_STYLEDBRUSHED. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The style parameter is an array of pixels. Following example script draws a dashed line from upper left to lower right corner of the canvas:

Exemplo 1. imagesetstyle() example

<?php
header("Content-type: image/jpeg");
$im  = imagecreate(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Draw a line of happy faces using imagesetbrush() with imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

See also imagesetbrush(), imageline().

Nota: This function was added in PHP 4.0.6

Anterior | Principal | Próxima
imagesetpixel | Acima | imagesetthickness


imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthickness -- Set the thickness for line drawing

Description

bool imagesetthickness ( resource image, int thickness)

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, ellipses etc. etc. to thickness pixels. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Anterior | Principal | Próxima
imagesetstyle | Acima | imagesettile


imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettile -- Set the tile image for filling

Description

int imagesettile ( resource image, resource tile)

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Nota: You need not take special action when you are finished with a tile, but if you destroy the tile image, you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Anterior | Principal | Próxima
imagesetthickness | Acima | imagestring


imagestring

(PHP 3, PHP 4 , PHP 5)

imagestring -- Draw a string horizontally

Description

int imagestring ( resource image, int font, int x, int y, string s, int col)

imagestring() draws the string s in the image identified by image at coordinates x, y (top left is 0, 0) in color col. If font is 1, 2, 3, 4 or 5, a built-in font is used.

Exemplo 1. imagestring() example

<?php

  // create a 100*30 image
  $im = imagecreate(100, 30);

  // white background and blue text
  $bg = imagecolorallocate($im, 255, 255, 255);
  $textcolor = imagecolorallocate($im, 0, 0, 255);

  // write the string at the top left
  imagestring($im, 5, 0, 0, "Hello world!", $textcolor);

  // output the image
  header("Content-type: image/jpg");
  imagejpeg($im);
?>

See also imageloadfont().

Anterior | Principal | Próxima
imagesettile | Acima | imagestringup


imagestringup

(PHP 3, PHP 4 , PHP 5)

imagestringup -- Draw a string vertically

Description

int imagestringup ( resource image, int font, int x, int y, string s, int col)

imagestringup() draws the string s vertically in the image identified by image at coordinates x, y (top left is 0, 0) in color col. If font is 1, 2, 3, 4 or 5, a built-in font is used.

See also imageloadfont().

Anterior | Principal | Próxima
imagestring | Acima | imagesx


imagesx

(PHP 3, PHP 4 , PHP 5)

imagesx -- Get image width

Description

int imagesx ( resource image)

imagesx() returns the width of the image identified by image.

Exemplo 1. Using imagesx()

<?php

// create a 300*200 image
$img = imagecreate(300, 200);

echo imagesx($img); // 300

?>

See also imagecreate(),
getimagesize() and
imagesy().

Anterior | Principal | Próxima
imagestringup | Acima | imagesy


imagesy

(PHP 3, PHP 4 , PHP 5)

imagesy -- Get image height

Description

int imagesy ( resource image)

imagesy() returns the height of the image identified by image.

Exemplo 1. Using imagesy()

<?php

// create a 300*200 image
$img = imagecreate(300, 200);

echo imagesy($img); // 200

?>

See also imagecreate(),
getimagesize() and
imagesx().

Anterior | Principal | Próxima
imagesx | Acima | imagetruecolortopalette


imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopalette -- Convert a true color image to a palette image

Description

void imagetruecolortopalette ( resource image, bool dither, int ncolors)

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.

dither indicates if the image should be dithered - if it is TRUE then dithering will be used which will result in a more speckled image but with better color approximation.

ncolors sets the maximum number of colors that should be retained in the palette.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Anterior | Principal | Próxima
imagesy | Acima | imagettfbbox


imagettfbbox

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

imagettfbbox -- Give the bounding box of a text using TrueType fonts

Description

array imagettfbbox ( int size, int angle, string fontfile, string text)

This function calculates and returns the bounding box in pixels for a TrueType text.

text

The string to be measured.

size

The font size in pixels.

fontfile

The name of the TrueType font file. (Can also be a URL.) Depending on which version of the GD library that PHP is using, it may attempt to search for files that do not begin with a leading '/' by appending '.ttf' to the filename and searching along a library-defined font path.

angle

Angle in degrees in which text will be measured.

imagettfbbox() returns an array with 8 elements representing four points making the bounding box of the text:

0 | lower left corner, X position
1 | lower left corner, Y position
2 | lower right corner, X position
3 | lower right corner, Y position
4 | upper right corner, X position
5 | upper right corner, Y position
6 | upper left corner, X position
7 | upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

This function requires both the GD library and the FreeType library.

See also imagettftext().

Anterior | Principal | Próxima
imagetruecolortopalette | Acima | imagettftext


imagettftext

(PHP 3, PHP 4 , PHP 5)

imagettftext -- Write text to the image using TrueType fonts

Description

array imagettftext ( resource image, int size, int angle, int x, int y, int color, string fontfile, string text)

imagettftext() draws the string text in the image identified by image, starting at coordinates x, y (top left is 0, 0), at an angle of angle in color color, using the TrueType font file identified by fontfile. Depending on which version of the GD library that PHP is using, when fontfile does not begin with a leading '/', '.ttf' will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

The coordinates given by x, y will define the basepoint of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x, y define the upper-right corner of the first character.

angle is in degrees, with 0 degrees being left-to-right reading text (3 o'clock direction), and higher values representing a counter-clockwise rotation. (i.e., a value of 90 would result in bottom-to-top reading text).

fontfile is the path to the TrueType font you wish to use.

text is the text string which may include UTF-8 character sequences (of the form: &#123;) to access characters in a font beyond the first 255.

color is the color index. Using the negative of a color index has the effect of turning off antialiasing.

imagettftext() returns an array with 8 elements representing four points making the bounding box of the text. The order of the points is lower left, lower right, upper right, upper left. The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner when you see the text horizontally.

This example script will produce a black JPEG 400x30 pixels, with the words "Testing..." in white in the font Arial.

Exemplo 1. imagettftext() example

<?php
  header("Content-type: image/jpeg");
  $im = imagecreate(400, 30);
  $white = imagecolorallocate($im, 255, 255, 255);
  $black = imagecolorallocate($im, 0, 0, 0);

  // Replace path by your own font path
  imagettftext($im, 20, 0, 10, 20, $black, "/path/arial.ttf",
  "Testing... Omega: &amp;#937;");
  imagejpeg($im);
  imagedestroy($im);
?>

This function requires both the GD library and the FreeType library.

See also imagettfbbox().

Anterior | Principal | Próxima
imagettfbbox | Acima | imagetypes


imagetypes

(PHP 3 CVS only, PHP 4 >= 4.0.2, PHP 5)

imagetypes -- Return the image types supported by this PHP build

Description

int imagetypes ( void )

This function returns a bit-field corresponding to the image formats supported by the version of GD linked into PHP. The following bits are returned, IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM. To check for PNG support, for example, do this:

Exemplo 1. imagetypes() example

<?php
if (imagetypes() & IMG_PNG) {
    echo "PNG Support is enabled";
}
?>

Anterior | Principal | Próxima
imagettftext | Acima | imagewbmp


imagewbmp

(PHP 3>= 3.0.15, PHP 4 >= 4.0.1, PHP 5)

imagewbmp -- Output image to browser or file

Description

int imagewbmp ( resource image [, string filename [, int foreground]])

imagewbmp() creates the WBMP file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Using the optional foreground parameter, you can set the foreground color. Use an identifier obtained from imagecolorallocate(). The default foreground color is black.

See also image2wbmp(), imagepng(),
imagegif(), imagejpeg(),
imagetypes().

Anterior | Principal | Próxima
imagetypes | Acima | imagexbm


imagexbm

(PHP 5)

imagexbm -- Output XBM image to browser or file

Description

int imagexbm ( resource image, string filename [, int foreground])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This function is only available if PHP is compiled with the bundled version of the GD library.

Anterior | Principal | Próxima
imagewbmp | Acima | iptcembed


iptcembed

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

iptcembed -- Embed binary IPTC data into a JPEG image

Description

array iptcembed ( string iptcdata, string jpeg_file_name [, int spool])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imagexbm | Acima | iptcparse


iptcparse

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.

Description

array iptcparse ( string iptcblock)

This function parses a binary IPTC block into its single tags. It returns an array using the tagmarker as an index and the value as the value. It returns FALSE on error or if no IPTC data was found. See getimagesize() for a sample.

Anterior | Principal | Próxima
iptcembed | Acima | jpeg2wbmp


jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmp -- Convert JPEG image file to WBMP image file

Description

int jpeg2wbmp ( string jpegname, string wbmpname, int d_height, int d_width, int threshold)

Converts the jpegname JPEG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also png2wbmp().

Anterior | Principal | Próxima
iptcparse | Acima | png2wbmp


png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmp -- Convert PNG image file to WBMP image file

Description

int png2wbmp ( string pngname, string wbmpname, int d_height, int d_width, int threshold)

Converts the pngname PNG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also jpeg2wbmp().

Anterior | Principal | Próxima
jpeg2wbmp | Acima | read_exif_data


read_exif_data

read_exif_data -- Alias of exif_read_data()

Description

This function is an alias of exif_read_data().

Anterior | Principal | Próxima
png2wbmp | Acima | IMAP, POP3 and NNTP Functions


IMAP, POP3 and NNTP Functions

Manual do PHP
Anterior Próxima

XLII. IMAP, POP3 and NNTP Functions

Introdução

These functions are not limited to the IMAP protocol, despite their name. The underlying c-client library also supports NNTP, POP3 and local mailbox access methods.

Requisitos

This extension requires the c-client library to be installed. Grab the latest version from ftp://ftp.cac.washington.edu/imap/ and compile it.

It's important that you do not copy the IMAP source files directly into the system include directory as there may be conflicts. Instead, create a new directory inside the system include directory, such as /usr/local/imap-2000b/ (location and name depend on your setup and IMAP version), and inside this new directory create additional directories named lib/ and include/. From the c-client directory from your IMAP source tree, copy all the *.h files into include/ and all the *.c files into lib/. Additionally when you compiled IMAP, a file named c-client.a was created. Also put this in the lib/ directory but rename it as libc-client.a.

Nota: To build the c-client library with SSL or/and Kerberos support read the docs supplied with the package.

Instalação

To get these functions to work, you have to compile PHP with --with-imap[=DIR], where DIR is the c-client install prefix. From our example above, you would use --with-imap=/usr/local/imap-2000b. This location depends on where you created this directory according to the description above. Windows users may include the php_imap.dll DLL in php.ini

Nota: Depending how the c-client was configured, you might also need to add --with-imap-ssl=/path/to/openssl/ and/or --with-kerberos=/path/to/kerberos into the PHP configure line.

Atenção

A extensão IMAP não pode ser utilizada em conjunto com as extensões recode ou YAZ. Isto ocorre pelo fato de ambas compartilham os mesmos símbolos internos.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

NIL (integer)

OP_DEBUG (integer)

OP_READONLY (integer)

Open mailbox read-only

OP_ANONYMOUS (integer)

Don't use or update a .newsrc for news (NNTP only)

OP_SHORTCACHE (integer)

OP_SILENT (integer)

OP_PROTOTYPE (integer)

OP_HALFOPEN (integer)

For IMAP and NNTP names, open a connection but don't open a mailbox.

OP_EXPUNGE (integer)

OP_SECURE (integer)

CL_EXPUNGE (integer)

silently expunge the mailbox before closing when calling imap_close()

FT_UID (integer)

The parameter is a UID

FT_PEEK (integer)

Do not set the \Seen flag if not already set

FT_NOT (integer)

FT_INTERNAL (integer)

The return string is in internal format, will not canonicalize to CRLF.

FT_PREFETCHTEXT (integer)

ST_UID (integer)

The sequence argument contains UIDs instead of sequence numbers

ST_SILENT (integer)

ST_SET (integer)

CP_UID (integer)

the sequence numbers contain UIDS

CP_MOVE (integer)

Delete the messages from the current mailbox after copying with imap_mail_copy()

SE_UID (integer)

Return UIDs instead of sequence numbers

SE_FREE (integer)

SE_NOPREFETCH (integer)

Don't prefetch searched messages

SO_FREE (integer)

SO_NOSERVER (integer)

SA_MESSAGES (integer)

SA_RECENT (integer)

SA_UNSEEN (integer)

SA_UIDNEXT (integer)

SA_UIDVALIDITY (integer)

SA_ALL (integer)

LATT_NOINFERIORS (integer)

This mailbox has no "children" (there are no mailboxes below this one).

LATT_NOSELECT (integer)

This is only a container, not a mailbox - you cannot open it.

LATT_MARKED (integer)

This mailbox is marked. Only used by UW-IMAPD.

LATT_UNMARKED (integer)

This mailbox is not marked. Only used by UW-IMAPD.

SORTDATE (integer)

Sort criteria for imap_sort(): message Date

SORTARRIVAL (integer)

Sort criteria for imap_sort(): arrival date

SORTFROM (integer)

Sort criteria for imap_sort(): mailbox in first From address

SORTSUBJECT (integer)

Sort criteria for imap_sort(): message subject

SORTTO (integer)

Sort criteria for imap_sort(): mailbox in first To address

SORTCC (integer)

Sort criteria for imap_sort(): mailbox in first cc address

SORTSIZE (integer)

Sort criteria for imap_sort(): size of message in octets

TYPETEXT (integer)

TYPEMULTIPART (integer)

TYPEMESSAGE (integer)

TYPEAPPLICATION (integer)

TYPEAUDIO (integer)

TYPEIMAGE (integer)

TYPEVIDEO (integer)

TYPEOTHER (integer)

ENC7BIT (integer)

ENC8BIT (integer)

ENCBINARY (integer)

ENCBASE64 (integer)

ENCQUOTEDPRINTABLE (integer)

ENCOTHER (integer)

Veja Também

This document can't go into detail on all the topics touched by the provided functions. Further information is provided by the documentation of the c-client library source (docs/internal.txt). and the following RFC documents:

  • RFC2821: Simple Mail Transfer Protocol (SMTP).

  • RFC2822: Standard for ARPA internet text messages.

  • RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.

  • RFC1939: Post Office Protocol Version 3 (POP3).

  • RFC977: Network News Transfer Protocol (NNTP).

  • RFC2076: Common Internet Message Headers.

  • RFC2045 , RFC2046 , RFC2047 , RFC2048 & RFC2049: Multipurpose Internet Mail Extensions (MIME).

A detailed overview is also available in the books Programming Internet Email by David Wood and Managing IMAP by Dianna Mullet & Kevin Mullet.

Índice
imap_8bit -- Convert an 8bit string to a quoted-printable string
imap_alerts -- This function returns all IMAP alert messages (if any) that have occurred during this page request or since the alert stack was reset
imap_append -- Append a string message to a specified mailbox
imap_base64 -- Decode BASE64 encoded text
imap_binary -- Convert an 8bit string to a base64 string
imap_body -- Read the message body
imap_bodystruct -- Read the structure of a specified body section of a specific message
imap_check -- Check current mailbox
imap_clearflag_full -- Clears flags on messages
imap_close -- Close an IMAP stream
imap_createmailbox -- Create a new mailbox
imap_delete -- Mark a message for deletion from current mailbox
imap_deletemailbox -- Delete a mailbox
imap_errors -- This function returns all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.
imap_expunge -- Delete all messages marked for deletion
imap_fetch_overview -- Read an overview of the information in the headers of the given message
imap_fetchbody -- Fetch a particular section of the body of the message
imap_fetchheader -- Returns header for a message
imap_fetchstructure -- Read the structure of a particular message
imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox
imap_get_quotaroot -- Retrieve the quota settings per user
imap_getacl -- Gets the ACL for a given mailbox
imap_getmailboxes -- Read the list of mailboxes, returning detailed information on each one
imap_getsubscribed -- List all the subscribed mailboxes
imap_header -- Alias of imap_headerinfo()
imap_headerinfo -- Read the header of the message
imap_headers -- Returns headers for all messages in a mailbox
imap_last_error -- This function returns the last IMAP error (if any) that occurred during this page request
imap_list -- Read the list of mailboxes
imap_listmailbox -- Alias of imap_list()
imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox
imap_listsubscribed -- Alias of imap_lsub()
imap_lsub -- List all the subscribed mailboxes
imap_mail_compose -- Create a MIME message based on given envelope and body sections
imap_mail_copy -- Copy specified messages to a mailbox
imap_mail_move -- Move specified messages to a mailbox
imap_mail -- Send an email message
imap_mailboxmsginfo -- Get information about the current mailbox
imap_mime_header_decode -- Decode MIME header elements
imap_msgno -- This function returns the message sequence number for the given UID
imap_num_msg -- Gives the number of messages in the current mailbox
imap_num_recent -- Gives the number of recent messages in current mailbox
imap_open -- Open an IMAP stream to a mailbox
imap_ping -- Check if the IMAP stream is still active
imap_qprint -- Convert a quoted-printable string to an 8 bit string
imap_renamemailbox -- Rename an old mailbox to new mailbox
imap_reopen -- Reopen IMAP stream to new mailbox
imap_rfc822_parse_adrlist -- Parses an address string
imap_rfc822_parse_headers -- Parse mail headers from a string
imap_rfc822_write_address -- Returns a properly formatted email address given the mailbox, host, and personal info.
imap_scanmailbox -- Alias of imap_listscan()
imap_search -- This function returns an array of messages matching the given search criteria
imap_set_quota -- Sets a quota for a given mailbox
imap_setacl -- Sets the ACL for a giving mailbox
imap_setflag_full -- Sets flags on messages
imap_sort -- Sort an array of message headers
imap_status -- This function returns status information on a mailbox other than the current one
imap_subscribe -- Subscribe to a mailbox
imap_thread -- Return threaded by REFERENCES tree
imap_timeout -- Set or fetch imap timeout
imap_uid -- This function returns the UID for the given message sequence number
imap_undelete -- Unmark the message which is marked deleted
imap_unsubscribe -- Unsubscribe from a mailbox
imap_utf7_decode -- Decodes a modified UTF-7 encoded string.
imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text.
imap_utf8 -- Converts MIME-encoded text to UTF-8

Anterior | Principal | Próxima
read_exif_data | Acima | imap_8bit


imap_8bit

(PHP 3, PHP 4 , PHP 5)

imap_8bit -- Convert an 8bit string to a quoted-printable string

Description

string imap_8bit ( string string)

Convert an 8bit string to a quoted-printable string (according to RFC2045, section 6.7).

Returns a quoted-printable string.

See also imap_qprint().

Anterior | Principal | Próxima
IMAP, POP3 and NNTP Functions | Acima | imap_alerts


imap_alerts

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_alerts -- This function returns all IMAP alert messages (if any) that have occurred during this page request or since the alert stack was reset

Description

array imap_alerts ( void )

This function returns an array of all of the IMAP alert messages generated since the last imap_alerts() call, or the beginning of the page. When imap_alerts() is called, the alert stack is subsequently cleared. The IMAP specification requires that these messages be passed to the user.

Anterior | Principal | Próxima
imap_8bit | Acima | imap_append


imap_append

(PHP 3, PHP 4 , PHP 5)

imap_append -- Append a string message to a specified mailbox

Description

bool imap_append ( resource imap_stream, string mbox, string message [, string options])

imap_append() appends a string message to the specified mailbox mbox. If the optional options is specified, writes the options to that mailbox also.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

When talking to the Cyrus IMAP server, you must use "\r\n" as your end-of-line terminator instead of "\n" or the operation will fail.

Exemplo 1. imap_append() example

<?php
$stream = imap_open("{your.imap.host}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{your.imap.host}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "this is a test message, please ignore\r\n"
                   );

$check = imap_check($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);
?>

Anterior | Principal | Próxima
imap_alerts | Acima | imap_base64


imap_base64

(PHP 3, PHP 4 , PHP 5)

imap_base64 -- Decode BASE64 encoded text

Description

string imap_base64 ( string text)

imap_base64() function decodes BASE-64 encoded text (see RFC2045, Section 6.8). The decoded message is returned as a string.

See also imap_binary(),
base64_encode() and
base64_decode().

Anterior | Principal | Próxima
imap_append | Acima | imap_binary


imap_binary

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_binary -- Convert an 8bit string to a base64 string

Description

string imap_binary ( string string)

Convert an 8bit string to a base64 string (according to RFC2045, Section 6.8).

Returns a base64 string.

See also imap_base64().

Anterior | Principal | Próxima
imap_base64 | Acima | imap_body


imap_body

(PHP 3, PHP 4 , PHP 5)

imap_body -- Read the message body

Description

string imap_body ( resource imap_stream, int msg_number [, int options])

imap_body() returns the body of the message, numbered msg_number in the current mailbox.

The optional options are a bit mask with one or more of the following:

  • FT_UID - The msg_number is a UID

  • FT_PEEK - Do not set the \Seen flag if not already set

  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

imap_body() will only return a verbatim copy of the message body. To extract single parts of a multipart MIME-encoded message you have to use imap_fetchstructure() to analyze its structure and imap_fetchbody() to extract a copy of a single body component.

Anterior | Principal | Próxima
imap_binary | Acima | imap_bodystruct


imap_bodystruct

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_bodystruct -- Read the structure of a specified body section of a specific message

Description

object imap_bodystruct ( resource stream_id, int msg_no, int section)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imap_body | Acima | imap_check


imap_check

(PHP 3, PHP 4 , PHP 5)

imap_check -- Check current mailbox

Description

object imap_check ( resource imap_stream)

Returns information about the current mailbox. Returns FALSE on failure.

The imap_check() function checks the current mailbox status on the server and returns the information in an object with following properties:

  • Date - current system time formatted according to RFC822

  • Driver - protocol used to access this mailbox: POP3, IMAP, NNTP

  • Mailbox - the mailbox name

  • Nmsgs - number of messages in the mailbox

  • Recent - number of recent messages in the mailbox

Exemplo 1. imap_check() example

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

this will output :

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}

Anterior | Principal | Próxima
imap_bodystruct | Acima | imap_clearflag_full


imap_clearflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_clearflag_full -- Clears flags on messages

Description

bool imap_clearflag_full ( resource stream, string sequence, string flag, string options)

This function causes a store to delete the specified flag to the flags set for the messages in the specified sequence. The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by RFC2060). Retorna TRUE em caso de sucesso ou FALSE em falhas..

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

See also: imap_setflag_full().

Anterior | Principal | Próxima
imap_check | Acima | imap_close


imap_close

(PHP 3, PHP 4 , PHP 5)

imap_close -- Close an IMAP stream

Description

bool imap_close ( resource imap_stream [, int flag])

Closes the imap stream. Takes an optional flag CL_EXPUNGE, which will silently expunge the mailbox before closing, removing all messages marked for deletion.

See also: imap_open().

Anterior | Principal | Próxima
imap_clearflag_full | Acima | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4 , PHP 5)

imap_createmailbox -- Create a new mailbox

Description

bool imap_createmailbox ( resource imap_stream, string mbox)

imap_createmailbox() creates a new mailbox specified by mbox. Names containing international characters should be encoded by imap_utf7_encode()

Retorna TRUE em caso de sucesso ou FALSE em falhas..

Exemplo 1. imap_createmailbox() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
     or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewb&ouml;x");

$newname = $name1;

echo "Newname will be '$name1'<br />\n";

// we will now create a new mailbox "phptestbox" in your inbox folder,
// check its status after creation and finaly remove it to restore
// your inbox to its initial state

if (@imap_createmailbox($mbox, imap_utf7_encode("{your.imap.host}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{your.imap.host}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "your new mailbox '$name1' has the following status:<br />\n";
        echo "Messages:   " . $status->messages    . "<br />\n";
        echo "Recent:     " . $status->recent      . "<br />\n";
        echo "Unseen:     " . $status->unseen      . "<br />\n";
        echo "UIDnext:    " . $status->uidnext     . "<br />\n";
        echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{your.imap.host}INBOX.$newname", "{your.imap.host}INBOX.$name2")) {
            echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{your.imap.host}INBOX.$newname")) {
        echo "new mailbox removed to restore initial state<br />\n";
    } else {
        echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

See also imap_renamemailbox(),
imap_deletemailbox() and
imap_open() for the format
of mbox names.

Anterior | Principal | Próxima
imap_close | Acima | imap_delete


imap_delete

(PHP 3, PHP 4 , PHP 5)

imap_delete -- Mark a message for deletion from current mailbox

Description

bool imap_delete ( int imap_stream, int msg_number [, int options])

Returns TRUE.

imap_delete() marks messages listed in msg_number for deletion. The optional flags parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID. Messages marked for deletion will stay in the mailbox until either imap_expunge() is called or imap_close() is called with the optional parameter CL_EXPUNGE.

Nota: POP3 mailboxes do not have their message flags saved between connections, so imap_expunge() must be called during the same connection in order for messages marked for deletion to actually be purged.

Exemplo 1. imap_delete() example

<?php

$mbox = imap_open("{your.imap.host}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

See also: imap_undelete(),
imap_expunge(), and
imap_close().

Anterior | Principal | Próxima
imap_createmailbox | Acima | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4 , PHP 5)

imap_deletemailbox -- Delete a mailbox

Description

bool imap_deletemailbox ( resource imap_stream, string mbox)

imap_deletemailbox() deletes the specified mailbox (see imap_open() for the format of mbox names).

Retorna TRUE em caso de sucesso ou FALSE em falhas..

See also imap_createmailbox(),
imap_renamemailbox(), and
imap_open() for the format of
mbox.

Anterior | Principal | Próxima
imap_delete | Acima | imap_errors


imap_errors

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_errors -- This function returns all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.

Description

array imap_errors ( void )

This function returns an array of all of the IMAP error messages generated since the last imap_errors() call, or the beginning of the page. When imap_errors() is called, the error stack is subsequently cleared.

See also: imap_last_error().

Anterior | Principal | Próxima
imap_deletemailbox | Acima | imap_expunge


imap_expunge

(PHP 3, PHP 4 , PHP 5)

imap_expunge -- Delete all messages marked for deletion

Description

bool imap_expunge ( resource imap_stream)

imap_expunge() deletes all the messages marked
for deletion by imap_delete(),
imap_mail_move(), or
imap_setflag_full().

Returns TRUE.

Anterior | Principal | Próxima
imap_errors | Acima | imap_fetch_overview


imap_fetch_overview

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_fetch_overview -- Read an overview of the information in the headers of the given message

Description

array imap_fetch_overview ( resource imap_stream, string sequence [, int options])

This function fetches mail headers for the given sequence and returns an overview of their contents. sequence will contain a sequence of message indices or UIDs, if flags contains FT_UID. The returned value is an array of objects describing one message header each:

  • subject - the messages subject

  • from - who sent it

  • date - when was it sent

  • message_id - Message-ID

  • references - is a reference to this message id

  • size - size in bytes

  • uid - UID the message has in the mailbox

  • msgno - message sequence number in the maibox

  • recent - this message is flagged as recent

  • flagged - this message is flagged

  • answered - this message is flagged as answered

  • deleted - this message is flagged for deletion

  • seen - this message is flagged as already read

  • draft - this message is flagged as being a draft

Exemplo 1. imap_fetch_overview() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$overview = imap_fetch_overview($mbox, "2,4:6", 0);

if (is_array($overview)) {
        reset($overview);
        while (list($key, $val) = each($overview)) {
                echo      $val->msgno
                . " - " . $val->date
                . " - " . $val->subject
                . "\n";
        }
}

imap_close($mbox);
?>

Anterior | Principal | Próxima
imap_expunge | Acima | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4 , PHP 5)

imap_fetchbody -- Fetch a particular section of the body of the message

Description

string imap_fetchbody ( resource imap_stream, int msg_number, string part_number [, flags options])

This function causes a fetch of a particular section of the body of the specified messages as a text string and returns that text string. The section specification is a string of integers delimited by period which index into a body part list as per the IMAP4 specification. Body parts are not decoded by this function.

The options for imap_fetchbody() is a bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID

  • FT_PEEK - Do not set the \Seen flag if not already set

  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

See also: imap_fetchstructure().

Anterior | Principal | Próxima
imap_fetch_overview | Acima | imap_fetchheader


imap_fetchheader

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_fetchheader -- Returns header for a message

Description

string imap_fetchheader ( resource imap_stream, int msgno [, int options])

This function causes a fetch of the complete, unfiltered RFC2822 format header of the specified message as a text string and returns that text string.

The options are:

  • FT_UID - The msgno argument is a UID

  • FT_INTERNAL - The return string is in "internal" format, without any attempt to canonicalize to CRLF newlines

  • FT_PREFETCHTEXT - The RFC822.TEXT should be pre-fetched at the same time. This avoids an extra RTT on an IMAP connection if a full message text is desired (e.g. in a "save to local file" operation)

Anterior | Principal | Próxima
imap_fetchbody | Acima | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4 , PHP 5)

imap_fetchstructure -- Read the structure of a particular message

Description

object imap_fetchstructure ( resource imap_stream, int msg_number [, int options])

This function fetches all the structured information for a given message. The optional options parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID. The returned object includes the envelope, internal date, size, flags and body structure along with a similar object for each mime attachment. The structure of the returned objects is as follows:

Tabela 1. Returned Objects for imap_fetchstructure()

type | Primary body type
encoding | Body transfer encoding
ifsubtype | TRUE if there is a subtype string
subtype | MIME subtype
ifdescription | TRUE if there is a description string
description | Content description string
ifid | TRUE if there is an identification string
id | Identification string
lines | Number of lines
bytes | Number of bytes
ifdisposition | TRUE if there is a disposition string
disposition | Disposition string
ifdparameters | TRUE if the dparameters array exists
dparameters | An array of objects where each object has an "attribute" and a "value" property corresponding to the parameters on the Content-disposition MIMEheader.
ifparameters | TRUE if the parameters array exists
parameters | An array of objects where each object has an "attribute" and a "value" property.
parts | An array of objects identical in structure to the top-level object, each of which corresponds to a MIME body part.

Tabela 2. Primary body type

0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Tabela 3. Transfer encodings

0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

See also: imap_fetchbody().

Anterior | Principal | Próxima
imap_fetchheader | Acima | imap_get_quota


imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox

Description

array imap_get_quota ( resource imap_stream, string quota_root)

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

This function is currently only available to users of the c-client2000 or greater library.

NOTE: For this function to work, the mail stream is required to be opened as the mail-admin user. For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

imap_stream should be the value returned from an imap_open() call. NOTE: This stream is required to be opened as the mail admin user for the get_quota function to work. quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Exemplo 1. imap_get_quota() example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

As of PHP 4.3, the function more properly reflects the functionality as dictated by the RFC 2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it. The example below shows the updated returned output.

For backwards compatibility reasons, the originial access methods are still available for use, although it is suggested to update.

Exemplo 2. imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quotaroot().

Anterior | Principal | Próxima
imap_fetchstructure | Acima | imap_get_quotaroot


imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotaroot -- Retrieve the quota settings per user

Description

array imap_get_quotaroot ( resource imap_stream, string quota_root)

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity. This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream should be the value returned from an imap_open() call. This stream should be opened as the user whose mailbox you wish to check. quota_root should normally be in the form of which mailbox (i.e. INBOX).

Exemplo 1. imap_get_quotaroot() example

<?php
$mbox = imap_open("{your.imap.host}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE usage level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quota().

Anterior | Principal | Próxima
imap_get_quota | Acima | imap_getacl


imap_getacl

(PHP 5)

imap_getacl -- Gets the ACL for a given mailbox

Description

array imap_getacl ( resource stream_id, string mailbox)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also: imap_setacl().

Anterior | Principal | Próxima
imap_get_quotaroot | Acima | imap_getmailboxes


imap_getmailboxes

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_getmailboxes -- Read the list of mailboxes, returning detailed information on each one

Description

array imap_getmailboxes ( resource imap_stream, string ref, string pattern)

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox has no "children" (there are no mailboxes below this one).

  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.

  • LATT_MARKED - This mailbox is marked. Only used by UW-IMAPD.

  • LATT_UNMARKED - This mailbox is not marked. Only used by UW-IMAPD.

Mailbox names containing international Characters outside the printable ASCII range will be encoded and may be decoded by imap_utf7_decode().

ref should normally be just the server specification as described in imap_open(), and pattern specifies where in the mailbox hierarchy to start searching. If you want all mailboxes, pass '*' for pattern.

There are two special characters you can pass as part of the pattern: '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

Exemplo 1. imap_getmailboxes() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
  reset($list);
  while (list($key, $val) = each($list)) {
    echo "($key) ";
    echo imap_utf7_decode($val->name) . ",";
    echo "'" . $val->delimiter . "',";
    echo $val->attributes . "<br />\n";
  }
} else {
  echo "imap_getmailboxes failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

See also imap_getsubscribed().

Anterior | Principal | Próxima
imap_getacl | Acima | imap_getsubscribed


imap_getsubscribed

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_getsubscribed -- List all the subscribed mailboxes

Description

array imap_getsubscribed ( resource imap_stream, string ref, string pattern)

This function is identical to imap_getmailboxes(), except that it only returns mailboxes that the user is subscribed to.

Anterior | Principal | Próxima
imap_getmailboxes | Acima | imap_header


imap_header

imap_header -- Alias of imap_headerinfo()

Description

This function is an alias of imap_headerinfo().

Anterior | Principal | Próxima
imap_getsubscribed | Acima | imap_headerinfo


imap_headerinfo

(PHP 3, PHP 4 , PHP 5)

imap_headerinfo -- Read the header of the message

Description

object imap_headerinfo ( resource imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]])

This function returns an object of various header elements.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' if recent and seen,
'N' if recent and not seen,
' ' if not recent
Unseen - 'U' if not seen AND not recent,
' ' if seen OR not seen and recent
Answered -'A' if answered,
' ' if unanswered
Deleted - 'D' if deleted,
' ' if not deleted
Draft - 'X' if draft,
' ' if not draft
Flagged - 'F' if flagged,
' ' if not flagged

NOTE that the Recent/Unseen behavior is a little odd. If you want to
know if a message is Unseen, you must check for

Unseen == 'U' || Recent == 'N'

toaddress (full to: line, up to 1024 characters)

to[] (returns an array of objects from the To line, containing):
personal
adl
mailbox
host

fromaddress (full from: line, up to 1024 characters)

from[] (returns an array of objects from the From line, containing):
personal
adl
mailbox
host

ccaddress (full cc: line, up to 1024 characters)
cc[] (returns an array of objects from the Cc line, containing):
personal
adl
mailbox
host

bccaddress (full bcc line, up to 1024 characters)
bcc[] (returns an array of objects from the Bcc line, containing):
personal
adl
mailbox
host

reply_toaddress (full reply_to: line, up to 1024 characters)
reply_to[] (returns an array of objects from the Reply_to line,
containing):
personal
adl
mailbox
host

senderaddress (full sender: line, up to 1024 characters)
sender[] (returns an array of objects from the sender line, containing):
personal
adl
mailbox
host

return_path (full return-path: line, up to 1024 characters)
return_path[] (returns an array of objects from the return_path line,
containing):
personal
adl
mailbox
host

udate (mail message date in unix time)

fetchfrom (from line formatted to fit fromlength
characters)

fetchsubject (subject line formatted to fit subjectlength characters)

Anterior | Principal | Próxima
imap_header | Acima | imap_headers


imap_headers

(PHP 3, PHP 4 , PHP 5)

imap_headers -- Returns headers for all messages in a mailbox

Description

array imap_headers ( resource imap_stream)

Returns an array of string formatted with header info. One element per mail message.

Anterior | Principal | Próxima
imap_headerinfo | Acima | imap_last_error


imap_last_error

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_last_error -- This function returns the last IMAP error (if any) that occurred during this page request

Description

string imap_last_error ( void )

This function returns the full text of the last IMAP error message that occurred on the current page. The error stack is untouched; calling imap_last_error() subsequently, with no intervening errors, will return the same error.

See also: imap_errors().

Anterior | Principal | Próxima
imap_headers | Acima | imap_list


imap_list

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_list -- Read the list of mailboxes

Description

array imap_list ( resource imap_stream, string ref, string pattern)

Returns an array containing the names of the mailboxes. See imap_getmailboxes() for a description of ref and pattern.

Exemplo 1. imap_list() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
  reset($list);
  while (list($key, $val) = each($list)) {
    echo imap_utf7_decode($val) . "<br />\n";
  }
} else {
  echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

See also: imap_getmailboxes().

Anterior | Principal | Próxima
imap_last_error | Acima | imap_listmailbox


imap_listmailbox

imap_listmailbox -- Alias of imap_list()

Description

This function is an alias of imap_list().

Anterior | Principal | Próxima
imap_list | Acima | imap_listscan


imap_listscan

(no version information, might be only in CVS)

imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox

Description

array imap_listscan ( resource imap_stream, string ref, string pattern, string content)

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data.

See imap_getmailboxes() for a description of ref and pattern.

Anterior | Principal | Próxima
imap_listmailbox | Acima | imap_listsubscribed


imap_listsubscribed

imap_listsubscribed -- Alias of imap_lsub()

Description

This function is an alias of imap_lsub().

Anterior | Principal | Próxima
imap_listscan | Acima | imap_lsub


imap_lsub

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_lsub -- List all the subscribed mailboxes

Description

array imap_lsub ( resource imap_stream, string ref, string pattern)

Returns an array of all the mailboxes that you have subscribed.

Anterior | Principal | Próxima
imap_listsubscribed | Acima | imap_mail_compose


imap_mail_compose

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

imap_mail_compose -- Create a MIME message based on given envelope and body sections

Description

string imap_mail_compose ( array envelope, array body)

Exemplo 1. imap_mail_compose() example

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>

Anterior | Principal | Próxima
imap_lsub | Acima | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4 , PHP 5)

imap_mail_copy -- Copy specified messages to a mailbox

Description

bool imap_mail_copy ( resource imap_stream, string msglist, string mbox [, int options])

Copies mail messages specified by msglist to specified mailbox. Retorna TRUE em caso de sucesso ou FALSE em falhas..

msglist is a range not just message numbers (as described in RFC2060).

options is a bitmask of one or more of

  • CP_UID - the sequence numbers contain UIDS

  • CP_MOVE - Delete the messages from the current mailbox after copying

See also imap_mail_move().

Anterior | Principal | Próxima
imap_mail_compose | Acima | imap_mail_move


imap_mail_move

(PHP 3, PHP 4 , PHP 5)

imap_mail_move -- Move specified messages to a mailbox

Description

bool imap_mail_move ( resource imap_stream, string msglist, string mbox [, int options])

Moves mail messages specified by msglist to specified mailbox mbox. Retorna TRUE em caso de sucesso ou FALSE em falhas..

msglist is a range not just message numbers (as described in RFC2060).

options is a bitmask and may contain the single option:

  • CP_UID - the sequence numbers contain UIDS

See also imap_mail_copy().

Anterior | Principal | Próxima
imap_mail_copy | Acima | imap_mail


imap_mail

(PHP 3>= 3.0.14, PHP 4 , PHP 5)

imap_mail -- Send an email message

Description

bool imap_mail ( string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])

This function allows sending of emails with correct handling of Cc and Bcc receivers. Retorna TRUE em caso de sucesso ou FALSE em falhas..

The parameters to, cc and bcc are all strings and are all parsed as rfc822 address lists.

The receivers specified in bcc will get the mail, but are excluded from the headers.

Use the rpath parameter to specify return path. This is useful when using PHP as a mail client for multiple users.

Anterior | Principal | Próxima
imap_mail_move | Acima | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_mailboxmsginfo -- Get information about the current mailbox

Description

object imap_mailboxmsginfo ( resource imap_stream)

Returns information about the current mailbox. Returns FALSE on failure.

The imap_mailboxmsginfo() function checks the current mailbox status on the server. It is similar to imap_status(), but will additionally sum up the size of all messages in the mailbox, which will take some additional time to execute. It returns the information in an object with following properties.

Tabela 1. Mailbox properties

Date | date of last change
Driver | driver
Mailbox | name of the mailbox
Nmsgs | number of messages
Recent | number of recent messages
Unread | number of unread messages
Deleted | number of deleted messages
Size | mailbox size

Exemplo 1. imap_mailboxmsginfo() example

<?php

$mbox = imap_open("{your.imap.host}INBOX", "username", "password")
      or die("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date: "     . $check->Date    . "<br />\n" ;
    echo "Driver: "   . $check->Driver  . "<br />\n" ;
    echo "Mailbox: "  . $check->Mailbox . "<br />\n" ;
    echo "Messages: " . $check->Nmsgs   . "<br />\n" ;
    echo "Recent: "   . $check->Recent  . "<br />\n" ;
    echo "Unread: "   . $check->Unread  . "<br />\n" ;
    echo "Deleted: "  . $check->Deleted . "<br />\n" ;
    echo "Size: "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_check() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>

Anterior | Principal | Próxima
imap_mail | Acima | imap_mime_header_decode


imap_mime_header_decode

(PHP 3>= 3.0.17, PHP 4 , PHP 5)

imap_mime_header_decode -- Decode MIME header elements

Description

array imap_mime_header_decode ( string text)

imap_mime_header_decode() function decodes MIME message header extensions that are non ASCII text (see RFC2047) The decoded elements are returned in an array of objects, where each object has two properties, "charset" and "text". If the element hasn't been encoded, and in other words is in plain US-ASCII,the "charset" property of that element is set to "default".

Exemplo 1. imap_mime_header_decode() example

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
?>

In the above example we would have two elements, whereas the first element had previously been encoded with ISO-8859-1, and the second element would be plain US-ASCII.

Anterior | Principal | Próxima
imap_mailboxmsginfo | Acima | imap_msgno


imap_msgno

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_msgno -- This function returns the message sequence number for the given UID

Description

int imap_msgno ( resource imap_stream, int uid)

This function returns the message sequence number for the given uid. It is the inverse of imap_uid().

See also imap_uid().

Anterior | Principal | Próxima
imap_mime_header_decode | Acima | imap_num_msg


imap_num_msg

(PHP 3, PHP 4 , PHP 5)

imap_num_msg -- Gives the number of messages in the current mailbox

Description

int imap_num_msg ( resource imap_stream)

Return the number of messages in the current mailbox.

See also: imap_num_recent() and imap_status().

Anterior | Principal | Próxima
imap_msgno | Acima | imap_num_recent


imap_num_recent

(PHP 3, PHP 4 , PHP 5)

imap_num_recent -- Gives the number of recent messages in current mailbox

Description

int imap_num_recent ( resource imap_stream)

Returns the number of recent messages in the current mailbox.

See also: imap_num_msg() and imap_status().

Anterior | Principal | Próxima
imap_num_msg | Acima | imap_open


imap_open

(PHP 3, PHP 4 , PHP 5)

imap_open -- Open an IMAP stream to a mailbox

Description

resource imap_open ( string mailbox, string username, string password [, int options])

Returns an IMAP stream on success and FALSE on error. This function can also be used to open streams to POP3 and NNTP servers, but some functions and features are only available on IMAP servers.

A mailbox name consists of a server part and a mailbox path on this server. The special name INBOX stands for the current users personal mailbox. The server part, which is enclosed in '{' and '}', consists of the servers name or ip address, an optional port (prefixed by ':'), and an optional protocol specification (prefixed by '/'). The server part is mandatory in all mailbox parameters. Mailbox names that contain international characters besides those in the printable ASCII space have to be encoded with imap_utf7_encode().

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only

  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)

  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.

  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

To connect to an IMAP server running on port 143 on the local machine, do the following:

<?php
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");
?>

To connect to a POP3 server on port 110 on the local server, use:

<?php
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");
?>

To connect to an SSL IMAP or POP3 server, add /ssl after the protocol specification:

<?php
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");
?>

To connect to an SSL IMAP or POP3 server with a self-signed certificate, add /ssl/novalidate-cert after the protocol specification:

<?php
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");
?>

To connect to an NNTP server on port 119 on the local server, use:

<?php
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
?>

To connect to a remote server replace "localhost" with the name or the IP address of the server you want to connect to.

Exemplo 1. imap_open() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{your.imap.host:143}", "*");

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    while (list ($key, $val) = each($folders)) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    while (list ($key, $val) = each ($headers)) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Anterior | Principal | Próxima
imap_num_recent | Acima | imap_ping


imap_ping

(PHP 3, PHP 4 , PHP 5)

imap_ping -- Check if the IMAP stream is still active

Description

bool imap_ping ( resource imap_stream)

Returns TRUE if the stream is still alive, FALSE otherwise.

imap_ping() function pings the stream to see it is still active. It may discover new mail; this is the preferred method for a periodic "new mail check" as well as a "keep alive" for servers which have inactivity timeout. (As PHP scripts do not tend to run that long, I can hardly imagine that this function will be useful to anyone.)

Anterior | Principal | Próxima
imap_open | Acima | imap_qprint


imap_qprint

(PHP 3, PHP 4 , PHP 5)

imap_qprint -- Convert a quoted-printable string to an 8 bit string

Description

string imap_qprint ( string string)

Convert a quoted-printable string to an 8 bit string (according to RFC2045, section 6.7).

See also imap_8bit().

Anterior | Principal | Próxima
imap_ping | Acima | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4 , PHP 5)

imap_renamemailbox -- Rename an old mailbox to new mailbox

Description

bool imap_renamemailbox ( resource imap_stream, string old_mbox, string new_mbox)

This function renames on old mailbox to new mailbox (see imap_open() for the format of mbox names).

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also imap_createmailbox(),
imap_deletemailbox(), and
imap_open() for the format of
mbox.

Anterior | Principal | Próxima
imap_qprint | Acima | imap_reopen


imap_reopen

(PHP 3, PHP 4 , PHP 5)

imap_reopen -- Reopen IMAP stream to new mailbox

Description

bool imap_reopen ( resource imap_stream, string mailbox [, string options])

This function reopens the specified stream to a new mailbox on an IMAP or NNTP server.

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only

  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)

  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.

  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
imap_renamemailbox | Acima | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_rfc822_parse_adrlist -- Parses an address string

Description

array imap_rfc822_parse_adrlist ( string address, string default_host)

This function parses the address string as defined in RFC2822 and for each address, returns an array of objects. The objects properties are:

  • mailbox - the mailbox name (username)

  • host - the host name

  • personal - the personal name

  • adl - at domain source route

Exemplo 1. imap_rfc822_parse_adrlist() example

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("something is wrong\n");
}

foreach ($address_array as $val) {
  echo "mailbox : " . $val->mailbox . "<br />\n";
  echo "host    : " . $val->host . "<br />\n";
  echo "personal: " . $val->personal . "<br />\n";
  echo "adl     : " . $val->adl . "<br />\n";
}
?>

Anterior | Principal | Próxima
imap_reopen | Acima | imap_rfc822_parse_headers


imap_rfc822_parse_headers

(PHP 4 , PHP 5)

imap_rfc822_parse_headers -- Parse mail headers from a string

Description

object imap_rfc822_parse_headers ( string headers [, string defaulthost])

This function returns an object of various header elements, similar to imap_header(), except without the flags and other elements that come from the IMAP server.

Anterior | Principal | Próxima
imap_rfc822_parse_adrlist | Acima | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_rfc822_write_address -- Returns a properly formatted email address given the mailbox, host, and personal info.

Description

string imap_rfc822_write_address ( string mailbox, string host, string personal)

Returns a properly formatted email address as defined in RFC2822 given the mailbox, host, and personal info.

Exemplo 1. imap_rfc822_write_address() example

<?php
echo imap_rfc822_write_address("hartmut", "cvs.php.net", "Hartmut Holzgraefe") . "\n";
?>

Anterior | Principal | Próxima
imap_rfc822_parse_headers | Acima | imap_scanmailbox


imap_scanmailbox

imap_scanmailbox -- Alias of imap_listscan()

Description

This function is an alias of imap_listscan().

Anterior | Principal | Próxima
imap_rfc822_write_address | Acima | imap_search


imap_search

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_search -- This function returns an array of messages matching the given search criteria

Description

array imap_search ( resource imap_stream, string criteria, int options)

This function performs a search on the mailbox currently opened in the given imap stream. criteria is a string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted.

  • ALL - return all messages matching the rest of the criteria

  • ANSWERED - match messages with the \\ANSWERED flag set

  • BCC "string" - match messages with "string" in the Bcc: field

  • BEFORE "date" - match messages with Date: before "date"

  • BODY "string" - match messages with "string" in the body of the message

  • CC "string" - match messages with "string" in the Cc: field

  • DELETED - match deleted messages

  • FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set

  • FROM "string" - match messages with "string" in the From: field

  • KEYWORD "string" - match messages with "string" as a keyword

  • NEW - match new messages

  • OLD - match old messages

  • ON "date" - match messages with Date: matching "date"

  • RECENT - match messages with the \\RECENT flag set

  • SEEN - match messages that have been read (the \\SEEN flag is set)

  • SINCE "date" - match messages with Date: after "date"

  • SUBJECT "string" - match messages with "string" in the Subject:

  • TEXT "string" - match messages with text "string"

  • TO "string" - match messages with "string" in the To:

  • UNANSWERED - match messages that have not been answered

  • UNDELETED - match messages that are not deleted

  • UNFLAGGED - match messages that are not flagged

  • UNKEYWORD "string" - match messages that do not have the keyword "string"

  • UNSEEN - match messages which have not been read yet

For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom". Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client source code and may be incomplete or inaccurate (see also RFC2060, section 6.4.4).

Valid values for flags are SE_UID, which causes the returned array to contain UIDs instead of messages sequence numbers.

Anterior | Principal | Próxima
imap_scanmailbox | Acima | imap_set_quota


imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quota -- Sets a quota for a given mailbox

Description

bool imap_set_quota ( resource imap_stream, string quota_root, int quota_limit)

Sets an upper limit quota on a per mailbox basis. This function requires the imap_stream to have been opened as the mail administrator account. It will not work if opened as any other user.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream is the stream pointer returned from a imap_open() call. This stream must be opened as the mail administrator, other wise this function will fail. quota_root is the mailbox to have a quota set. This should follow the IMAP standard format for a mailbox, 'user.name'. quota_limit is the maximum size (in KB) for the quota_root.

Returns TRUE on success and FALSE on error.

Exemplo 1. imap_set_quota() example

<?php
$mbox = imap_open("{your.imap.host:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

See also imap_open() and imap_set_quota().

Anterior | Principal | Próxima
imap_search | Acima | imap_setacl


imap_setacl

(PHP 4 >= 4.1.0, PHP 5)

imap_setacl -- Sets the ACL for a giving mailbox

Description

bool imap_setacl ( resource stream_id, string mailbox, string id, string rights)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

See also: imap_getacl().

Anterior | Principal | Próxima
imap_set_quota | Acima | imap_setflag_full


imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_setflag_full -- Sets flags on messages

Description

bool imap_setflag_full ( resource stream, string sequence, string flag, string options)

This function causes a store to add the specified flag to the flags set for the messages in the specified sequence.

The flags which you can set are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by RFC2060).

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Exemplo 1. imap_setflag_full() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

See also: imap_clearflag_full().

Anterior | Principal | Próxima
imap_setacl | Acima | imap_sort


imap_sort

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_sort -- Sort an array of message headers

Description

array imap_sort ( resource stream, int criteria, int reverse [, int options [, string search_criteria]])

Returns an array of message numbers sorted by the given parameters.

Reverse is 1 for reverse-sorting.

Criteria can be one (and only one) of the following:

  • SORTDATE - message Date

  • SORTARRIVAL - arrival date

  • SORTFROM - mailbox in first From address

  • SORTSUBJECT - message subject

  • SORTTO - mailbox in first To address

  • SORTCC - mailbox in first cc address

  • SORTSIZE - size of message in octets

The flags are a bitmask of one or more of the following:

  • SE_UID - Return UIDs instead of sequence numbers

  • SE_NOPREFETCH - Don't prefetch searched messages

Anterior | Principal | Próxima
imap_setflag_full | Acima | imap_status


imap_status

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_status -- This function returns status information on a mailbox other than the current one

Description

object imap_status ( resource imap_stream, string mailbox, int options)

This function returns an object containing status information. Valid flags are:

  • SA_MESSAGES - set status->messages to the number of messages in the mailbox

  • SA_RECENT - set status->recent to the number of recent messages in the mailbox

  • SA_UNSEEN - set status->unseen to the number of unseen (new) messages in the mailbox

  • SA_UIDNEXT - set status->uidnext to the next uid to be used in the mailbox

  • SA_UIDVALIDITY - set status->uidvalidity to a constant that changes when uids for the mailbox may no longer be valid

  • SA_ALL - set all of the above

status->flags is also set, which contains a bitmask which can be checked against any of the above constants.

Exemplo 1. imap_status() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$status = imap_status($mbox, "{your.imap.host}INBOX", SA_ALL);
if ($status) {
  echo "Messages:   " . $status->messages    . "<br />\n";
  echo "Recent:     " . $status->recent      . "<br />\n";
  echo "Unseen:     " . $status->unseen      . "<br />\n";
  echo "UIDnext:    " . $status->uidnext     . "<br />\n";
  echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Anterior | Principal | Próxima
imap_sort | Acima | imap_subscribe


imap_subscribe

(PHP 3, PHP 4 , PHP 5)

imap_subscribe -- Subscribe to a mailbox

Description

bool imap_subscribe ( resource imap_stream, string mbox)

Subscribe to a new mailbox.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also: imap_unsubscribe().

Anterior | Principal | Próxima
imap_status | Acima | imap_thread


imap_thread

(PHP 4 >= 4.1.0, PHP 5)

imap_thread -- Return threaded by REFERENCES tree

Description

array imap_thread ( resource stream_id [, int options])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imap_subscribe | Acima | imap_timeout


imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeout -- Set or fetch imap timeout

Description

mixed imap_timeout ( int timeout_type [, int timeout])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
imap_thread | Acima | imap_uid


imap_uid

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_uid -- This function returns the UID for the given message sequence number

Description

int imap_uid ( resource imap_stream, int msgno)

This function returns the UID for the given message sequence number. An UID is an unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes. This function is the inverse of imap_msgno().

Nota: This is not supported by POP3 mailboxes.

See also: imap_msgno().

Anterior | Principal | Próxima
imap_timeout | Acima | imap_undelete


imap_undelete

(PHP 3, PHP 4 , PHP 5)

imap_undelete -- Unmark the message which is marked deleted

Description

bool imap_undelete ( resource imap_stream, int msg_number)

This function removes the deletion flag for a specified message, which is set by imap_delete() or imap_mail_move().

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also: imap_delete(), and imap_mail_move().

Anterior | Principal | Próxima
imap_uid | Acima | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4 , PHP 5)

imap_unsubscribe -- Unsubscribe from a mailbox

Description

bool imap_unsubscribe ( string imap_stream, string mbox)

Unsubscribe from a specified mailbox.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also: imap_subscribe().

Anterior | Principal | Próxima
imap_undelete | Acima | imap_utf7_decode


imap_utf7_decode

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

imap_utf7_decode -- Decodes a modified UTF-7 encoded string.

Description

string imap_utf7_decode ( string text)

Decodes modified UTF-7 text into ISO-8859-1 string.

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text, or FALSE if text contains invalid modified UTF-7 sequence or text contains a character that is not part of ISO-8859-1 character set.

This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.

The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defined in RFC1642).

See also: imap_utf7_encode().

Anterior | Principal | Próxima
imap_unsubscribe | Acima | imap_utf7_encode


imap_utf7_encode

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text.

Description

string imap_utf7_encode ( string data)

Converts data to modified UTF-7 text. Note that data is expected to be encoded in ISO-8859-1.

This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.

The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defined in RFC1642).

See also: imap_utf7_decode().

Anterior | Principal | Próxima
imap_utf7_decode | Acima | imap_utf8


imap_utf8

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imap_utf8 -- Converts MIME-encoded text to UTF-8

Description

string imap_utf8 ( string mime_encoded_text)

Converts the given mime_encoded_text to UTF-8. MIME encoding method and the UTF-8 specification are described in RFC2047 and RFC2044 respectively.

Anterior | Principal | Próxima
imap_utf7_encode | Acima | Informix Functions


Informix Functions

Manual do PHP
Anterior Próxima

XLIII. Informix Functions

Introdução

The Informix driver for Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x and IDS 2000 is implemented in "ifx.ec" and "php3_ifx.h" in the informix extension directory. IDS 7.x support is fairly complete, with full support for BYTE and TEXT columns. IUS 9.x support is partly finished: the new data types are there, but SLOB and CLOB support is still under construction.

Requisitos

Configuration notes: You need a version of ESQL/C to compile the PHP Informix driver. ESQL/C versions from 7.2x on should be OK. ESQL/C is now part of the Informix Client SDK.

Make sure that the "INFORMIXDIR" variable has been set, and that $INFORMIXDIR/bin is in your PATH before you run the "configure" script.

Instalação

To be able to use the functions defined in this module you must compile your PHP interpreter using the configure line --with_informix[=DIR], where DIR is the Informix base install directory, defaults to nothing.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Nota: Make sure that the Informix environment variables INFORMIXDIR and INFORMIXSERVER are available to the PHP ifx driver, and that the INFORMIX bin directory is in the PATH. Check this by running a script that contains a call to phpinfo() before you start testing. The phpinfo() output should list these environment variables. This is TRUE for both CGI php and Apache mod_php. You may have to set these environment variables in your Apache startup script.

The Informix shared libraries should also be available to the loader (check LD_LIBRARY_PATH or ld.so.conf/ldconfig).

Some notes on the use of BLOBs (TEXT and BYTE columns): BLOBs are normally addressed by BLOB identifiers. Select queries return a "blob id" for every BYTE and TEXT column. You can get at the contents with "string_var = ifx_get_blob($blob_id);" if you choose to get the BLOBs in memory (with: "ifx_blobinfile(0);"). If you prefer to receive the content of BLOB columns in a file, use "ifx_blobinfile(1);", and "ifx_get_blob($blob_id);" will get you the filename. Use normal file I/O to get at the blob contents.

For insert/update queries you must create these "blob id's" yourself with "ifx_create_blob();". You then plug the blob id's into an array, and replace the blob columns with a question mark (?) in the query string. For updates/inserts, you are responsible for setting the blob contents with ifx_update_blob().

The behaviour of BLOB columns can be altered by configuration variables that also can be set at runtime:

configuration variable: ifx.textasvarchar

configuration variable: ifx.byteasvarchar

runtime functions:

ifx_textasvarchar(0): use blob id's for select queries with TEXT columns

ifx_byteasvarchar(0): use blob id's for select queries with BYTE columns

ifx_textasvarchar(1): return TEXT columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

ifx_byteasvarchar(1): return BYTE columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

configuration variable: ifx.blobinfile

runtime function:

ifx_blobinfile_mode(0): return BYTE columns in memory, the blob id lets you get at the contents.

ifx_blobinfile_mode(1): return BYTE columns in a file, the blob id lets you get at the file name.

If you set ifx_text/byteasvarchar to 1, you can use TEXT and BYTE columns in select queries just like normal (but rather long) VARCHAR fields. Since all strings are "counted" in PHP, this remains "binary safe". It is up to you to handle this correctly. The returned data can contain anything, you are responsible for the contents.

If you set ifx_blobinfile to 1, use the file name returned by ifx_get_blob(..) to get at the blob contents. Note that in this case YOU ARE RESPONSIBLE FOR DELETING THE TEMPORARY FILES CREATED BY INFORMIX when fetching the row. Every new row fetched will create new temporary files for every BYTE column.

The location of the temporary files can be influenced by the environment variable "blobdir", default is "." (the current directory). Something like: putenv(blobdir=tmpblob"); will ease the cleaning up of temp files accidentally left behind (their names all start with "blb").

Automatically trimming "char" (SQLCHAR and SQLNCHAR) data: This can be set with the configuration variable

ifx.charasvarchar: if set to 1 trailing spaces will be automatically trimmed, to save you some "chopping".

NULL values: The configuration variable ifx.nullformat (and the runtime function ifx_nullformat()) when set to TRUE will return NULL columns as the string "NULL", when set to FALSE they return the empty string. This allows you to discriminate between NULL columns and empty columns.

Tabela 1. Informix configuration options

Name | Default | Changeable
ifx.allow_persistent | "1" | PHP_INI_SYSTEM
ifx.max_persistent | "-1" | PHP_INI_SYSTEM
ifx.max_links | "-1" | PHP_INI_SYSTEM
ifx.default_host | NULL | PHP_INI_SYSTEM
ifx.default_user | NULL | PHP_INI_SYSTEM
ifx.default_password | NULL | PHP_INI_SYSTEM
ifx.blobinfile | "1" | PHP_INI_ALL
ifx.textasvarchar | "0" | PHP_INI_ALL
ifx.byteasvarchar | "0" | PHP_INI_ALL
ifx.charasvarchar | "0" | PHP_INI_ALL
ifx.nullformat | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Breve descrição das diretivas de configuração.

ifx.allow_persistent boolean

Whether to allow persistent Informix connections.

ifx.max_persistent integer

The maximum number of persistent Informix connections per process.

ifx.max_links integer

The maximum number of Informix connections per process, including persistent connections.

ifx.default_host string

The default host to connect to when no host is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in safe mode.

ifx.default_user string

The default user id to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in safe mode.

ifx.default_password string

The default password to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in safe mode.

ifx.blobinfile boolean

Set to TRUE if you want to return blob columns in a file, FALSE if you want them in memory. You can override the setting at runtime with ifx_blobinfile_mode().

ifx.textasvarchar boolean

Set to TRUE if you want to return TEXT columns as normal strings in select statements, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.byteasvarchar boolean

Set to TRUE if you want to return BYTE columns as normal strings in select queries, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.charasvarchar boolean

Set to TRUE if you want to trim trailing spaces from CHAR columns when fetching them.

ifx.nullformat boolean

Set to TRUE if you want to return NULL columns as the literal string "NULL", FALSE if you want them returned as the empty string "". You can override this setting at runtime with ifx_nullformat().

Tipos Resource

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
ifx_affected_rows -- Get number of rows affected by a query
ifx_blobinfile_mode -- Set the default blob mode for all select queries
ifx_byteasvarchar -- Set the default byte mode
ifx_close -- Close Informix connection
ifx_connect -- Open Informix server connection
ifx_copy_blob -- Duplicates the given blob object
ifx_create_blob -- Creates an blob object
ifx_create_char -- Creates an char object
ifx_do -- Execute a previously prepared SQL-statement
ifx_error -- Returns error code of last Informix call
ifx_errormsg -- Returns error message of last Informix call
ifx_fetch_row -- Get row as enumerated array
ifx_fieldproperties -- List of SQL fieldproperties
ifx_fieldtypes -- List of Informix SQL fields
ifx_free_blob -- Deletes the blob object
ifx_free_char -- Deletes the char object
ifx_free_result -- Releases resources for the query
ifx_get_blob -- Return the content of a blob object
ifx_get_char -- Return the content of the char object
ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query
ifx_htmltbl_result -- Formats all rows of a query into a HTML table
ifx_nullformat -- Sets the default return value on a fetch row
ifx_num_fields -- Returns the number of columns in the query
ifx_num_rows -- Count the rows already fetched from a query
ifx_pconnect -- Open persistent Informix connection
ifx_prepare -- Prepare an SQL-statement for execution
ifx_query -- Send Informix query
ifx_textasvarchar -- Set the default text mode
ifx_update_blob -- Updates the content of the blob object
ifx_update_char -- Updates the content of the char object
ifxus_close_slob -- Deletes the slob object
ifxus_create_slob -- Creates an slob object and opens it
ifxus_free_slob -- Deletes the slob object
ifxus_open_slob -- Opens an slob object
ifxus_read_slob -- Reads nbytes of the slob object
ifxus_seek_slob -- Sets the current file or seek position
ifxus_tell_slob -- Returns the current file or seek position
ifxus_write_slob -- Writes a string into the slob object

Anterior | Principal | Próxima
imap_utf8 | Acima | ifx_affected_rows


ifx_affected_rows

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_affected_rows -- Get number of rows affected by a query

Description

int ifx_affected_rows ( int result_id)

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns the number of rows affected by a query associated with result_id.

For inserts, updates and deletes the number is the real number (sqlerrd[2]) of affected rows. For selects it is an estimate (sqlerrd[0]). Don't rely on it. The database server can never return the actual number of rows that will be returned by a SELECT because it has not even begun fetching them at this stage (just after the "PREPARE" when the optimizer has determined the query plan).

Useful after ifx_prepare() to limit queries to reasonable result sets.

Exemplo 1. Informix affected rows

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
?>

See also ifx_num_rows().

Anterior | Principal | Próxima
Informix Functions | Acima | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_blobinfile_mode -- Set the default blob mode for all select queries

Description

void ifx_blobinfile_mode ( int mode)

Set the default blob mode for all select queries. Mode "0" means save Byte-Blobs in memory, and mode "1" means save Byte-Blobs in a file.

Anterior | Principal | Próxima
ifx_affected_rows | Acima | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_byteasvarchar -- Set the default byte mode

Description

void ifx_byteasvarchar ( int mode)

Sets the default byte mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Anterior | Principal | Próxima
ifx_blobinfile_mode | Acima | ifx_close


ifx_close

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_close -- Close Informix connection

Description

int ifx_close ( [int link_identifier])

Returns: always TRUE.

ifx_close() closes the link to an Informix database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

ifx_close() will not close persistent links generated by ifx_pconnect().

Exemplo 1. Closing a Informix connection

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... some queries and stuff ... */
ifx_close($conn_id);
?>

See also ifx_connect() and ifx_pconnect().

Anterior | Principal | Próxima
ifx_byteasvarchar | Acima | ifx_connect


ifx_connect

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_connect -- Open Informix server connection

Description

int ifx_connect ( [string database [, string userid [, string password]]])

Returns a connection identifier on success, or FALSE on error.

ifx_connect() establishes a connection to an Informix server. All of the arguments are optional, and if they're missing, defaults are taken from values supplied in configuration file (ifx.default_host for the host (Informix libraries will use INFORMIXSERVER environment value if not defined), ifx.default_user for user, ifx.default_password for the password (none if not defined).

In case a second call is made to ifx_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ifx_close().

Exemplo 1. Connect to a Informix database

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

See also ifx_pconnect() and ifx_close().

Anterior | Principal | Próxima
ifx_close | Acima | ifx_copy_blob


ifx_copy_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_copy_blob -- Duplicates the given blob object

Description

int ifx_copy_blob ( int bid)

Duplicates the given blob object. bid is the ID of the blob object.

Returns FALSE on error otherwise the new blob object-id.

Anterior | Principal | Próxima
ifx_connect | Acima | ifx_create_blob


ifx_create_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_create_blob -- Creates an blob object

Description

int ifx_create_blob ( int type, int mode, string param)

Creates an blob object.

type: 1 = TEXT, 0 = BYTE

mode: 0 = blob-object holds the content in memory, 1 = blob-object holds the content in file.

param: if mode = 0: pointer to the content, if mode = 1: pointer to the filestring.

Return FALSE on error, otherwise the new blob object-id.

Anterior | Principal | Próxima
ifx_copy_blob | Acima | ifx_create_char


ifx_create_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_create_char -- Creates an char object

Description

int ifx_create_char ( string param)

Creates an char object. param should be the char content.

Anterior | Principal | Próxima
ifx_create_blob | Acima | ifx_do


ifx_do

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_do -- Execute a previously prepared SQL-statement

Description

int ifx_do ( int result_id)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Executes a previously prepared query or opens a cursor for it.

Does NOT free result_id on error.

Also sets the real number of ifx_affected_rows() for non-select statements for retrieval by ifx_affected_rows()

See also: ifx_prepare().

Anterior | Principal | Próxima
ifx_create_char | Acima | ifx_error


ifx_error

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_error -- Returns error code of last Informix call

Description

string ifx_error ( void )

The Informix error codes (SQLSTATE & SQLCODE) formatted as follows :

x [SQLSTATE = aa bbb SQLCODE=cccc]

where x = space : no error

E : error

N : no more data

W : warning

? : undefined

If the "x" character is anything other than space, SQLSTATE and SQLCODE describe the error in more detail.

See the Informix manual for the description of SQLSTATE and SQLCODE

Returns in a string one character describing the general results of a statement and both SQLSTATE and SQLCODE associated with the most recent SQL statement executed. The format of the string is "(char) [SQLSTATE=(two digits) (three digits) SQLCODE=(one digit)]". The first character can be ' ' (space) (success), 'W' (the statement caused some warning), 'E' (an error happened when executing the statement) or 'N' (the statement didn't return any data).

See also: ifx_errormsg()

Anterior | Principal | Próxima
ifx_do | Acima | ifx_errormsg


ifx_errormsg

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_errormsg -- Returns error message of last Informix call

Description

string ifx_errormsg ( [int errorcode])

Returns the Informix error message associated with the most recent Informix error, or, when the optional "errorcode" parameter is present, the error message corresponding to "errorcode".

Exemplo 1. ifx_errormsg() example

printf("%s\n&lt;br>", ifx_errormsg(-201));

See also ifx_error().

Anterior | Principal | Próxima
ifx_error | Acima | ifx_fetch_row


ifx_fetch_row

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fetch_row -- Get row as enumerated array

Description

array ifx_fetch_row ( int result_id [, mixed position])

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Blob columns are returned as integer blob id values for use in ifx_get_blob() unless you have used ifx_textasvarchar(1) or ifx_byteasvarchar(1), in which case blobs are returned as string values. Returns FALSE on error

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

position is an optional parameter for a "fetch" operation on "scroll" cursors: "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" or a number. If you specify a number, an "absolute" row fetch is executed. This parameter is optional, and only valid for SCROLL cursors.

ifx_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0, with the column name as key.

Subsequent calls to ifx_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Exemplo 1. Informix fetch rows

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do ($rid)) {
   /* ... error ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>

Anterior | Principal | Próxima
ifx_errormsg | Acima | ifx_fieldproperties


ifx_fieldproperties

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fieldproperties -- List of SQL fieldproperties

Description

array ifx_fieldproperties ( int result_id)

Returns an associative array with fieldnames as key and the SQL fieldproperties as data for a query with result_id. Returns FALSE on error.

Returns the Informix SQL fieldproperties of every field in the query as an associative array. Properties are encoded as: "SQLTYPE;length;precision;scale;ISNULLABLE" where SQLTYPE = the Informix type like "SQLVCHAR" etc. and ISNULLABLE = "Y" or "N".

Exemplo 1. Informix SQL fieldproperties

<?php
$properties = ifx_fieldproperties ($resultid);
if (! isset($properties)) {
    /* ... error ... */
}
for ($i = 0; $i < count($properties); $i++) {
    $fname = key ($properties);
    printf ("%s:\t type =  %s\n", $fname, $properties[$fname]);
    next ($properties);
}
?>

Anterior | Principal | Próxima
ifx_fetch_row | Acima | ifx_fieldtypes


ifx_fieldtypes

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fieldtypes -- List of Informix SQL fields

Description

array ifx_fieldtypes ( int result_id)

Returns an associative array with fieldnames as key and the SQL fieldtypes as data for query with result_id. Returns FALSE on error.

Exemplo 1. Fieldnames and SQL fieldtypes

<?php
$types = ifx_fieldtypes ($resultid);
if (! isset ($types)) {
    /* ... error ... */
}
for ($i = 0; $i < count($types); $i++) {
    $fname = key($types);
    printf("%s :\t type =  %s\n", $fname, $types[$fname]);
    next($types);
}
?>

Anterior | Principal | Próxima
ifx_fieldproperties | Acima | ifx_free_blob


ifx_free_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_free_blob -- Deletes the blob object

Description

int ifx_free_blob ( int bid)

Deletes the blobobject for the given blob object-id bid. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifx_fieldtypes | Acima | ifx_free_char


ifx_free_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_free_char -- Deletes the char object

Description

int ifx_free_char ( int bid)

Deletes the charobject for the given char object-id bid. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifx_free_blob | Acima | ifx_free_result


ifx_free_result

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_free_result -- Releases resources for the query

Description

int ifx_free_result ( int result_id)

Releases resources for the query associated with result_id. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifx_free_char | Acima | ifx_get_blob


ifx_get_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_get_blob -- Return the content of a blob object

Description

int ifx_get_blob ( int bid)

Returns the content of the blob object for the given blob object-id bid.

Anterior | Principal | Próxima
ifx_free_result | Acima | ifx_get_char


ifx_get_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_get_char -- Return the content of the char object

Description

int ifx_get_char ( int bid)

Returns the content of the char object for the given char object-id bid.

Anterior | Principal | Próxima
ifx_get_blob | Acima | ifx_getsqlca


ifx_getsqlca

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query

Description

array ifx_getsqlca ( int result_id)

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns a pseudo-row (associative array) with sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] after the query associated with result_id.

For inserts, updates and deletes the values returned are those as set by the server after executing the query. This gives access to the number of affected rows and the serial insert value. For SELECTs the values are those saved after the PREPARE statement. This gives access to the *estimated* number of affected rows. The use of this function saves the overhead of executing a "select dbinfo('sqlca.sqlerrdx')" query, as it retrieves the values that were saved by the ifx driver at the appropriate moment.

Exemplo 1. Retrieve Informix sqlca.sqlerrd[x] values

<?php
/* assume the first column of 'sometable' is a serial */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... error ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "The serial value of the inserted row is : $serial_value<br />\n";
?>

Anterior | Principal | Próxima
ifx_get_char | Acima | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_htmltbl_result -- Formats all rows of a query into a HTML table

Description

int ifx_htmltbl_result ( int result_id [, string html_table_options])

Returns the number of rows fetched or FALSE on error.

Formats all rows of the result_id query into a HTML table. The optional second argument is a string of <table> tag options

Exemplo 1. Informix results as HTML table

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do($rid)) {
    /* ... error ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>

Anterior | Principal | Próxima
ifx_getsqlca | Acima | ifx_nullformat


ifx_nullformat

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_nullformat -- Sets the default return value on a fetch row

Description

void ifx_nullformat ( int mode)

Sets the default return value of a NULL-value on a fetch row. Mode "0" returns "", and mode "1" returns "NULL".

Anterior | Principal | Próxima
ifx_htmltbl_result | Acima | ifx_num_fields


ifx_num_fields

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_num_fields -- Returns the number of columns in the query

Description

int ifx_num_fields ( int result_id)

Returns the number of columns in query for result_id or FALSE on error

After preparing or executing a query, this call gives you the number of columns in the query.

Anterior | Principal | Próxima
ifx_nullformat | Acima | ifx_num_rows


ifx_num_rows

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_num_rows -- Count the rows already fetched from a query

Description

int ifx_num_rows ( int result_id)

Gives the number of rows fetched so far for a query with result_id after a ifx_query() or ifx_do() query.

Anterior | Principal | Próxima
ifx_num_fields | Acima | ifx_pconnect


ifx_pconnect

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_pconnect -- Open persistent Informix connection

Description

int ifx_pconnect ( [string database [, string userid [, string password]]])

Returns: A positive Informix persistent link identifier on success, or FALSE on error

ifx_pconnect() acts very much like ifx_connect() with two major differences.

This function behaves exactly like ifx_connect() when PHP is not running as an Apache module. First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ifx_close() will not close links established by ifx_pconnect()).

This type of links is therefore called 'persistent'.

See also: ifx_connect().

Anterior | Principal | Próxima
ifx_num_rows | Acima | ifx_prepare


ifx_prepare

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_prepare -- Prepare an SQL-statement for execution

Description

int ifx_prepare ( string query, int conn_id [, int cursor_def, mixed blobidarray])

Returns an integer result_id for use by ifx_do(). Sets affected_rows for retrieval by the ifx_affected_rows() function.

Prepares query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together.

For either query type the estimated number of affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in the query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

See also: ifx_do().

Anterior | Principal | Próxima
ifx_pconnect | Acima | ifx_query


ifx_query

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_query -- Send Informix query

Description

int ifx_query ( string query, int link_identifier [, int cursor_type [, mixed blobidarray]])

Returns a positive Informix result identifier on success, or FALSE on error.

A "result_id" resource used by other functions to retrieve the query results. Sets "affected_rows" for retrieval by the ifx_affected_rows() function.

ifx_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Executes query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together. Non-select queries are "execute immediate". IFX_SCROLL and IFX_HOLD are symbolic constants and as such shouldn't be between quotes. I you omit this parameter the cursor is a normal sequential cursor.

For either query type the number of (estimated or real) affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in an update query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

Exemplo 1. Show all rows of the "orders" table as a HTML table

<?php
ifx_textasvarchar(1);      // use "text mode" for blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Exemplo 2. Insert some values into the "catalog" table

<?php

// create blob id's for a byte and text column
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");

// store blob id's in a blobid array
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// launch query
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

See also ifx_connect().

Anterior | Principal | Próxima
ifx_prepare | Acima | ifx_textasvarchar


ifx_textasvarchar

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_textasvarchar -- Set the default text mode

Description

void ifx_textasvarchar ( int mode)

Sets the default text mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Anterior | Principal | Próxima
ifx_query | Acima | ifx_update_blob


ifx_update_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_update_blob -- Updates the content of the blob object

Description

bool ifx_update_blob ( int bid, string content)

Updates the content of the blob object for the given blob object bid. content is a string with new data. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifx_textasvarchar | Acima | ifx_update_char


ifx_update_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_update_char -- Updates the content of the char object

Description

int ifx_update_char ( int bid, string content)

Updates the content of the char object for the given char object bid. content is a string with new data. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifx_update_blob | Acima | ifxus_close_slob


ifxus_close_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_close_slob -- Deletes the slob object

Description

int ifxus_close_slob ( int bid)

Deletes the slob object on the given slob object-id bid. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifx_update_char | Acima | ifxus_create_slob


ifxus_create_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_create_slob -- Creates an slob object and opens it

Description

int ifxus_create_slob ( int mode)

Creates an slob object and opens it. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. You can also use constants named IFX_LO_RDONLY, IFX_LO_WRONLY etc. Return FALSE on error otherwise the new slob object-id.

Anterior | Principal | Próxima
ifxus_close_slob | Acima | ifxus_free_slob


ifxus_free_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_free_slob -- Deletes the slob object

Description

int ifxus_free_slob ( int bid)

Deletes the slob object. bid is the Id of the slob object. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ifxus_create_slob | Acima | ifxus_open_slob


ifxus_open_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_open_slob -- Opens an slob object

Description

int ifxus_open_slob ( long bid, int mode)

Opens an slob object. bid should be an existing slob id. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. Returns FALSE on error otherwise the new slob object-id.

Anterior | Principal | Próxima
ifxus_free_slob | Acima | ifxus_read_slob


ifxus_read_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_read_slob -- Reads nbytes of the slob object

Description

int ifxus_read_slob ( long bid, long nbytes)

Reads nbytes of the slob object. bid is a existing slob id and nbytes is the number of bytes read. Return FALSE on error otherwise the string.

Anterior | Principal | Próxima
ifxus_open_slob | Acima | ifxus_seek_slob


ifxus_seek_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_seek_slob -- Sets the current file or seek position

Description

int ifxus_seek_slob ( long bid, int mode, long offset)

Sets the current file or seek position of an open slob object. bid should be an existing slob id. Modes: 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END and offset is an byte offset. Return FALSE on error otherwise the seek position.

Anterior | Principal | Próxima
ifxus_read_slob | Acima | ifxus_tell_slob


ifxus_tell_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_tell_slob -- Returns the current file or seek position

Description

int ifxus_tell_slob ( long bid)

Returns the current file or seek position of an open slob object bid should be an existing slob id. Return FALSE on error otherwise the seek position.

Anterior | Principal | Próxima
ifxus_seek_slob | Acima | ifxus_write_slob


ifxus_write_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_write_slob -- Writes a string into the slob object

Description

int ifxus_write_slob ( long bid, string content)

Writes a string into the slob object. bid is an existing slob id and content the content to write. Return FALSE on error otherwise bytes written.

Anterior | Principal | Próxima
ifxus_tell_slob | Acima | InterBase


InterBase

Manual do PHP
Anterior Próxima

XLIV. InterBase

Introdução

InterBase é um banco de dados popular criado pela Borland/Inprise. Maiores informações sobre o InterBase estão disponíveis em http://www.interbase.com/. Oh, a propósito, a InterBase recentemente se juntou ao movimento open source!

Nota: O suporte completo para o InterBase 6 foi adicionado no PHP 4.0.

Este banco de dados usa aspas simples (') para escapar, um funcionamento semelhante ao do banco de dados Sybase, adicione ao seu php.ini a seguinte diretiva:

magic_quotes_sybase = On

Requisitos

Instalação

Para ativar o suporte InterBase, configure o PHP com --with-interbase[=DIR], aonde DIR é o diretório base da instalação do InterBase, o qual o padrão é /usr/interbase.

Nota para os usários de Win32: Para ativar este módulo em um ambiente Windows, você deverá copiar gds32.dll da pasta DLL do pacote binário PHP/Win32 para a pasta SYSTEM32 em seu computador com Windows. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). No caso de você já ter o sevidor de banco de dados InterBase na mesma máquina onde o PHP esta sendo executado, você já deve ter esta DLL. Então você não precisará copiar gds32.dll a partir da pasta DLL.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do InterBase

Nome | Padrão | Modificável
ibase.allow_persistent | "1" | PHP_INI_SYSTEM
ibase.max_persistent | "-1" | PHP_INI_SYSTEM
ibase.max_links | "-1" | PHP_INI_SYSTEM
ibase.default_user | NULL | PHP_INI_ALL
ibase.default_password | NULL | PHP_INI_ALL
ibase.timestampformat | "%m/%d/%Y%H:%M:%S" | PHP_INI_ALL
ibase.dateformat | "%m/%d/%Y" | PHP_INI_ALL
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL
Para maiores detalhes e definição das constantes do PHP_INI_* veja ini_set().

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

IBASE_DEFAULT (integer)

IBASE_TEXT (integer)

IBASE_UNIXTIME (integer)

IBASE_WRITE (integer)

Modo de acesso

IBASE_READ (integer)

Modo de acesso

IBASE_COMMITTED (integer)

Nível de isolação

IBASE_CONSISTENCY (integer)

Nível de isolação

IBASE_CONCURRENCY (integer)

Nível de isolação (Padão)

IBASE_REC_VERSION (integer)

IBASE_REC_NO_VERSION (integer)

IBASE_NOWAIT (integer)

Resolução de travas

IBASE_WAIT (integer)

Resolução de travas (Padrão)

IBASE_TIMESTAMP (integer)

IBASE_DATE (integer)

IBASE_TIME (integer)

Índice
ibase_add_user -- Adiciona um usuário a um banco de dados seguro (apenas para IB6 ou posterior)
ibase_affected_rows -- Retorna o número de linhas que foram afetados pela consulta anterior
ibase_backup -- Initiates a backup task in the service manager and returns immediately
ibase_blob_add -- Adiciona dados em um blob recém criado
ibase_blob_cancel -- Cancela a criação de um blob
ibase_blob_close -- Fecha o blob
ibase_blob_create -- Cria um novo blob para adicionar dados
ibase_blob_echo -- Envia o conteúdo do blob para o browser
ibase_blob_get -- Retorna uma quantidade especificada de bytes de dados de um blob aberto
ibase_blob_import -- Cria um blob, copia um arquivo para ele e o fecha
ibase_blob_info -- Retorna o tamanho do blob e outras informações úteis
ibase_blob_open -- Abre um blob para obter partes de dados
ibase_close -- Fecha uma conexão com um banco de dados InterBase
ibase_commit_ret -- Grava uma transação sem fecha-la
ibase_commit -- Grava uma transação
ibase_connect -- Abre uma conexão com um banco de dados InterBase
ibase_db_info -- Request statistics about a database
ibase_delete_user -- Exclui um usuário de um banco de dados seguro (apenas para o IB6 ou posterior)
ibase_drop_db -- Exclui um banco de dados
ibase_errcode -- Retorna um código de erro
ibase_errmsg -- Retorna uma mensagem de erro
ibase_execute -- Executa uma consulta preparada anteriormente
ibase_fetch_assoc -- Obtém o resultado de uma linha da consulta como uma matriz associativa
ibase_fetch_object -- Obtém uma linha como um objeto de um banco de dados InterBase
ibase_fetch_row -- Obtém uma linha de um banco de dados InterBase
ibase_field_info -- Obtém informação sobre um campo
ibase_free_event_handler -- Cancela um manipulador de eventos registrado
ibase_free_query -- Libera a memória alocada para uma consulta preparada
ibase_free_result -- Libera um conjunto de resultados
ibase_gen_id -- Increments the named generator and returns its new value
ibase_maintain_db -- Execute a maintenance command on the database server
ibase_modify_user -- Modifica um usuário para um banco de dados seguro (somente para IB6 ou posterior)
ibase_name_result -- Define um nome para um conjunto de resultados
ibase_num_fields -- Obtém o número de campos em um conjunto de resultados
ibase_num_params -- Retorna o número de parâmetros em uma consulta preparada
ibase_param_info -- Retorna informação sobre um parâmetro em uma consulta preparada
ibase_pconnect -- Abre uma conexão persistente com um banco de dados InterBase
ibase_prepare -- Prepara uma consulta para execução posterior
ibase_query -- Executa uma consulta em um banco de dados InterBase
ibase_restore -- Initiates a restore task in the service manager and returns immediately
ibase_rollback_ret -- Desfaz uma transação sem fecha-la
ibase_rollback -- Desfaz uma transação
ibase_server_info -- Request information about a database server
ibase_service_attach -- Connect to the service manager
ibase_service_detach -- Disconnect from the service manager
ibase_set_event_handler -- Registra uma função de callback para ser chamada quando eventos são postados
ibase_timefmt -- Define o formato do timestamp, colunas do tipo data e hora retornadas de consultas
ibase_trans -- Inicia uma transação
ibase_wait_event -- Espera por um evento ser postado no banco de dados

Anterior | Principal | Próxima
ifxus_write_slob | Acima | ibase_add_user


ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_user -- Adiciona um usuário a um banco de dados seguro (apenas para IB6 ou posterior)

Descrição

bool ibase_add_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Veja também ibase_modify_user() e ibase_delete_user().

Anterior | Principal | Próxima
InterBase | Acima | ibase_affected_rows


ibase_affected_rows

(PHP 5)

ibase_affected_rows -- Retorna o número de linhas que foram afetados pela consulta anterior

Descrição

int ibase_affected_rows ( resource link_identifier)

Esta função retorna o número de registros que foram afetados pela consulta anterior que foi executada no contexto da transação especificada por link_identifier. Se link_identifier é um recurso de conexão, a transação padrão é usada.

Veja também ibase_query() e ibase_execute().

Anterior | Principal | Próxima
ibase_add_user | Acima | ibase_backup


ibase_backup

(PHP 5)

ibase_backup -- Initiates a backup task in the service manager and returns immediately

Description

mixed ibase_backup ( resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_affected_rows | Acima | ibase_blob_add


ibase_blob_add

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_add -- Adiciona dados em um blob recém criado

Descrição

bool ibase_blob_add ( resource blob_handle, string data)

ibase_blob_add() adiciona dados em um blob criado com ibase_blob_create(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também
ibase_blob_cancel(),
ibase_blob_close(),
ibase_blob_create() e
ibase_blob_import().

Anterior | Principal | Próxima
ibase_backup | Acima | ibase_blob_cancel


ibase_blob_cancel

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_cancel -- Cancela a criação de um blob

Descrição

bool ibase_blob_cancel ( resource blob_handle)

Esta função irá descartar um BLOB criado por ibase_create_blob() se ele ainda não tiver sido fechado com ibase_blob_close(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também
ibase_blob_close(),
ibase_blob_create() e
ibase_blob_import().

Anterior | Principal | Próxima
ibase_blob_add | Acima | ibase_blob_close


ibase_blob_close

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_close -- Fecha o blob

Descrição

mixed ibase_blob_close ( resource blob_handle)

Esta função fecha um BLOB que tenha sido aberto para leitura com ibase_open_blob() ou aberto para escrita com ibase_create_blob(). Se o BLOB estiver sendo lido, esta função retorna TRUE em caso de sucesso, se o BLOB estiver sendo escrito, esta função retorna o id do BLOB que foi dado para ele pelo banco de dados. Em caso de falha, esta função retorna FALSE.

Veja também ibase_blob_cancel() e ibase_blob_open().

Anterior | Principal | Próxima
ibase_blob_cancel | Acima | ibase_blob_create


ibase_blob_create

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_create -- Cria um novo blob para adicionar dados

Descrição

resource ibase_blob_create ( [resource link_identifier])

ibase_blob_create() cria um novo BLOB para ser prenchido com dados. Ele retorna um novo handle BLOB para uso posterior com ibase_blob_add() ou FALSE em caso de falha.

Veja também
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() e
ibase_blob_import().

Anterior | Principal | Próxima
ibase_blob_close | Acima | ibase_blob_echo


ibase_blob_echo

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_echo -- Envia o conteúdo do blob para o browser

Descrição

bool ibase_blob_echo ( string blob_id)

Esta função abre um BLOB para leitura e envia seu conteúdo diretamente para a saída padrão (o browser, na maioria dos casos). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também
ibase_blob_open(),
ibase_blob_close() e
ibase_blob_get().

Anterior | Principal | Próxima
ibase_blob_create | Acima | ibase_blob_get


ibase_blob_get

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_get -- Retorna uma quantidade especificada de bytes de dados de um blob aberto

Descrição

string ibase_blob_get ( resource blob_handle, int len)

Esta função retorna a quantidade len de bytes de um BLOB que foi aberto para leitura com ibase_blob_open(). Retorna FALSE em caso de falha.

<?php
    $sql       = "SELECT blob_value FROM table";
    $result    = ibase_query( $sql );
    $data      = ibase_fetch_object( $result );
    $blob_data = ibase_blob_info( $data->BLOB_VALUE );
    $blob_hndl = ibase_blob_open( $data->BLOB_VALUE );
    print        ibase_blob_get( $blob_hndl, $blob_data[0] );
?>

Enquanto este exemplo não faz muito mais do que um 'ibase_blob_echo( $data->BLOB_VALUE )' faria, ele mostra a você como obter a informação em uma $variavel para você poder manipular como quiser.

Nota: Não é possível ler a partir de um BLOB que tenha sido aberto para escrita com ibase_blob_create().

Veja também
ibase_blob_open(),
ibase_blob_close() e
ibase_blob_echo().

Anterior | Principal | Próxima
ibase_blob_echo | Acima | ibase_blob_import


ibase_blob_import

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_import -- Cria um blob, copia um arquivo para ele e o fecha

Descrição

string ibase_blob_import ( [resource link_identifier, resource file_handle])

Este função cria um BLOB, lê um arquivo inteiro para dentro dele, fecha, e retorna o id do BLOB. O parâmetro file_handle é um ponteiro de arquivo aberto com fopen(). Retorna FALSE em caso de falha.

Veja também
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() e
ibase_blob_create().

Anterior | Principal | Próxima
ibase_blob_get | Acima | ibase_blob_info


ibase_blob_info

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_info -- Retorna o tamanho do blob e outras informações úteis

Descrição

array ibase_blob_info ( string blob_id)

Retorna uma matriz contendo informações sobre um BLOB. A informação retornada consiste no tamanho do BLOB, o número de seguimentos que ele contém, o tamanho do maior seguimento e quando é um BLOB de stream ou um BLOB seguimentado.

Anterior | Principal | Próxima
ibase_blob_import | Acima | ibase_blob_open


ibase_blob_open

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_open -- Abre um blob para obter partes de dados

Descrição

resource ibase_blob_open ( string blob_id)

ibase_blob_open() abre um BLOB existente para leitura. Retorna um handle BLOB para uso posterior com ibase_blob_get() ou FALSE em caso de falha.

Veja também
ibase_blob_close(),
ibase_blob_echo() e
ibase_blob_get().

Anterior | Principal | Próxima
ibase_blob_info | Acima | ibase_close


ibase_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_close -- Fecha uma conexão com um banco de dados InterBase

Descrição

bool ibase_close ( [resource connection_id])

Fecha a conexão com um banco de dados InterBase que esta associado ao id de conexão retornado por ibase_connect(). Se o id da conexão for omitido, a última conexão aberta é assumida. A transação padrão na conexão é salva, outras transações são desfeitas. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ibase_connect() e ibase_pconnect().

Anterior | Principal | Próxima
ibase_blob_open | Acima | ibase_commit_ret


ibase_commit_ret

(PHP 5)

ibase_commit_ret -- Grava uma transação sem fecha-la

Description

bool ibase_commit_ret ( [resource link_identifier])

Se for utilizada sem um argumento, esta função grava a transação padrão da conexão padrão. Se o argumento é um identificador de conexão, a transação padrão da conexão correspondente será gravada. Se o argumento for um identificador de transação, a transação correspondente será salva. O contexto da transação será retido, então comandos executados a partir desta transação não seram invalidados. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ibase_close | Acima | ibase_commit


ibase_commit

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_commit -- Grava uma transação

Descrição

bool ibase_commit ( [resource link_identifier])

Se for chamada sem argumento, esta função grava a transação padrão na conexão padrão. Se o argumento é um identificador de conexão, a transação padrão na conexão correspondente será gravada. Se o argumento é um identificador de transação, a transação correspondente será gravada. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ibase_commit_ret | Acima | ibase_connect


ibase_connect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_connect -- Abre uma conexão com um banco de dados InterBase

Descrição

resource ibase_connect ( string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])

Estabelece uma conexão com um servidor InterBase. O parâmetro database deve ser um caminho válido para o arquivo de banco de dados no servidor no qual ele reside. Se o servidor não é local, deve ser prefixado por 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) or 'hostname@' (IPX/SPX), dependendo do protocolo de conexão utilizado. username e password também podem ser espeficicados com as diretivas de configuração do PHP ibase.default_user e ibase.default_password. charset é o conjunto de caracteres padrão para o banco de dados. buffers é o número de buffers de banco de dados para alocar para cache do lado do servidor. Se 0 ou omitido, o servidor escolherá o seu próprio padrão. dialect seleciona o dialeto padrão para todos os comandos SQL executados na conexão, e o padrão é o maior que seja suportado pelas bibliotecas do cliente.

No caso de executar novamente ibase_connect() com os mesmos argumentos, não será estabilizada uma nova conexão, mas ao invés, o identificador de conexão que já esta aberta será retornada. A conexão com o servidor será fechada assim que assim que termine a execução do script, a menos que seja fechada anteriormente usando a função ibase_close().

Exemplo 1. Exemplo ibase_connect()

<?php
    $host = 'localhost:/path/to/your.gdb';

    $dbh = ibase_connect($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query($dbh, $stmt);
    while ($row = ibase_fetch_object($sth)) {
        echo $row->email, "\n";
    }
    ibase_free_result($sth);
    ibase_close($dbh);
?>

Nota: O parâmetro opcional buffers foi adicionado no PHP 4.0.0.

Nota: O parâmetro opcional dialect foi adicionado no PHP 4.0.0 e somente funciona com o InterBase 6 ou superior.

Nota: O parâmetro opcional role foi adicionado no PHP 4.0.0 e somente funciona com o InterBase 5 ou superior.

Nota: Se você tiver um erro como "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (isto acontece quando você tenta usar alguns caracteres com acentos) quando você utilizar esta e depois ibase_query() você deverá definir o conjunto de caracteres (ex. ISO8859_1 ou seu conjunto de caraacteres atual).

Veja também ibase_pconnect() e ibase_close().

Anterior | Principal | Próxima
ibase_commit | Acima | ibase_db_info


ibase_db_info

(PHP 5)

ibase_db_info -- Request statistics about a database

Description

string ibase_db_info ( resource service_handle, string db, int action [, int argument])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_connect | Acima | ibase_delete_user


ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_user -- Exclui um usuário de um banco de dados seguro (apenas para o IB6 ou posterior)

Descrição

bool ibase_delete_user ( string server, string dba_user_name, string dba_user_password, string user_name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Veja também ibase_add_user() e ibase_modify_user().

Anterior | Principal | Próxima
ibase_db_info | Acima | ibase_drop_db


ibase_drop_db

(PHP 5)

ibase_drop_db -- Exclui um banco de dados

Descrição

bool ibase_drop_db ( resource connection)

Esta função exclui um banco de dados que foi aberto por ibase_connect() ou ibase_pconnect(). O banco de dados é fechado e excluído do servidor. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ibase_connect() e ibase_pconnect().

Anterior | Principal | Próxima
ibase_delete_user | Acima | ibase_errcode


ibase_errcode

(PHP 5)

ibase_errcode -- Retorna um código de erro

Descrição

int ibase_errcode ( void )

Retorna o código de erro que resultou da função do InterBase mais recentemente utilizada. Retorna FALSE se não aconteceu nenhum erro.

Veja também ibase_errmsg().

Anterior | Principal | Próxima
ibase_drop_db | Acima | ibase_errmsg


ibase_errmsg

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_errmsg -- Retorna uma mensagem de erro

Descrição

string ibase_errmsg ( void )

Retorna a mensagem de erro que resultou da função do InterBase mais recentemente utilizada. Retorna FALSE se não aconteceu nenhum erro.

Veja também ibase_errcode().

Anterior | Principal | Próxima
ibase_errcode | Acima | ibase_execute


ibase_execute

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_execute -- Executa uma consulta preparada anteriormente

Descrição

resource ibase_execute ( resource query [, int bind_args])

Executa uma consulta preparada por ibase_prepare(). Se houver um erro na consulta retorna FALSE. Se for bem sucedida e tiver um conjunto de resultados (possivelmente vazio), por exemplo de uma consulta SELECT, retorna um identificador de consulta. Se a consulta for bem sucedida e não houverem resultados TRUE.

Isto é muito mais efetivo do que usar ibase_query() se você estiver repetindo o mesmo tipo de consulta muitas vezes apenas mudando alguns parâmetros.

Exemplo 1. Exemplo ibase_execute()

<?php
    $dbh = ibase_connect($host, $username, $password);
    $updates = array(
        1 => 'Eric',
        5 => 'Filip',
        7 => 'Larry'
    );

    $query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

    while (list($baz, $bar) = each($updates)) {
        ibase_execute($query, $bar, $baz);
    }
?>

Nota: No PHP 5.0.0 e posterior, esta função retorna o número de linhas afetadas pela consulta (se > 0 e aplicado ao tipo de comando). A consulta que tenha sido bem sucedida mas não afete nenhuma linha(ex. um UPDATE de um registro que não exista) irá retornar TRUE.

Veja também ibase_query().

Anterior | Principal | Próxima
ibase_errmsg | Acima | ibase_fetch_assoc


ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assoc -- Obtém o resultado de uma linha da consulta como uma matriz associativa

Descrição

array ibase_fetch_assoc ( resource result [, int fetch_flag])

ibase_fetch_assoc() retorna uma matriz associativa que corresponde a linha obtida. As próximas chamadas a função irão a próxima linha no conjunto de resultados, ou FALSE se não houverem mais linhas.

ibase_fetch_assoc() obtém uma linha dos dados de result. Se duas ou mais colunas do resultado tiverem o mesmo nome de campo, a última coluna terá preferencia. Para acessar a outra(s) coluna de mesmo nome, você deverá acessar os resultados usando índice numérico com ibase_fetch_row() ou usar apelidos na sua consulta.

fetch_flag é uma combinação das constantes IBASE_TEXT e IBASE_UNIXTIME. Passando IBASE_TEXT irá fazer com que esta função retorne o conteúdo de BLOB, ao invés do id do BLOB. Passando IBASE_UNIXTIME irá fazer esta função retornar valores de data/hora como UNIX timestamps ao invés de strings formatadas.

Veja também ibase_fetch_row() e ibase_fetch_object().

Anterior | Principal | Próxima
ibase_execute | Acima | ibase_fetch_object


ibase_fetch_object

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_fetch_object -- Obtém uma linha como um objeto de um banco de dados InterBase

Descrição

object ibase_fetch_object ( resource result_id [, int fetch_flag])

Obtém uma linha como pseudo-objeto a partir de um resultado de uma consulta result_id obtido da função ibase_query() ou ibase_execute().

<?php
    $dbh = ibase_connect ($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query ($dbh, $stmt);
    while ($row = ibase_fetch_object ($sth)) {
        print $row->email . "\n";
    }
    ibase_close ($dbh);
?>

A próxima chamada a ibase_fetch_object() retorna a próxima linha no conjuto de resultados, ou FALSE se não houverem mais linhas.

fetch_flag é uma combinação das constantes IBASE_TEXT e IBASE_UNIXTIME. Passando IBASE_TEXT irá fazer com que esta função retorne o conteúdo de BLOB, ao invés do id do BLOB. Passando IBASE_UNIXTIME irá fazer esta função retornar valores de data/hora como UNIX timestamps ao invés de strings formatadas.

Veja também ibase_fetch_row() e ibase_fetch_assoc().

Anterior | Principal | Próxima
ibase_fetch_assoc | Acima | ibase_fetch_row


ibase_fetch_row

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_fetch_row -- Obtém uma linha de um banco de dados InterBase

Descrição

array ibase_fetch_row ( resource result_identifier [, int fetch_flag])

Retorna uma matriz que corresponde a linha obtida, ou FALSE se não houverem mais linhas.

ibase_fetch_row() obtém uma linha de dados do conjunto de resultados espeficicado com result_identifier. A linha é retornada como uma matriz. Cada coluna do resultado é guardada em um índice numérico, começando em 0.

A próxima chamada a ibase_fetch_row() retorna a próxima linha no conjunto de resultados, ou FALSE se não houverem mais linhas.

fetch_flag é uma combinação das constantes IBASE_TEXT e IBASE_UNIXTIME. Passando IBASE_TEXT irá fazer com que esta função retorne o conteúdo de BLOB, ao invés do id do BLOB. Passando IBASE_UNIXTIME irá fazer esta função retornar valores de data/hora como UNIX timestamps ao invés de strings formatadas.

Veja também ibase_fetch_assoc() e ibase_fetch_object().

Anterior | Principal | Próxima
ibase_fetch_object | Acima | ibase_field_info


ibase_field_info

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_field_info -- Obtém informação sobre um campo

Descrição

array ibase_field_info ( resource result, int field_number)

Retorna uma matriz com informações sobre um campo após uma consulta SELECT. A matriz esta na forma de name, alias, relation, length, type.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ". $col_info['name']. "\n";
        echo "alias: ". $col_info['alias']. "\n";
        echo "relation: ". $col_info['relation']. "\n";
        echo "length: ". $col_info['length']. "\n";
        echo "type: ". $col_info['type']. "\n";
    }
?>

Veja também: ibase_num_fields().

Anterior | Principal | Próxima
ibase_fetch_row | Acima | ibase_free_event_handler


ibase_free_event_handler

(PHP 5)

ibase_free_event_handler -- Cancela um manipulador de eventos registrado

Descrição

bool ibase_free_event_handler ( resource event)

Esta função faz com que o manipulador de eventos registrado especificado por event seja cancelado. A função de callback não será mais chamada para os eventos que estava registrada para manipular. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ibase_set_event_handler().

Anterior | Principal | Próxima
ibase_field_info | Acima | ibase_free_query


ibase_free_query

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_free_query -- Libera a memória alocada para uma consulta preparada

Descrição

bool ibase_free_query ( resource query)

Libera uma consulta preparda por ibase_prepare(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ibase_free_event_handler | Acima | ibase_free_result


ibase_free_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_free_result -- Libera um conjunto de resultados

Descrição

bool ibase_free_result ( resource result_identifier)

Libera um conjunto de resultados que tenha sido criado por ibase_query() ou ibase_execute(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ibase_free_query | Acima | ibase_gen_id


ibase_gen_id

(PHP 5)

ibase_gen_id -- Increments the named generator and returns its new value

Description

int ibase_gen_id ( [resource link_identifier [, string generator [, int increment]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_free_result | Acima | ibase_maintain_db


ibase_maintain_db

(PHP 5)

ibase_maintain_db -- Execute a maintenance command on the database server

Description

bool ibase_maintain_db ( resource service_handle, string db, int action [, int argument])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_gen_id | Acima | ibase_modify_user


ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_user -- Modifica um usuário para um banco de dados seguro (somente para IB6 ou posterior)

Descrição

bool ibase_modify_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Veja também ibase_add_user() e ibase_delete_user().

Anterior | Principal | Próxima
ibase_maintain_db | Acima | ibase_name_result


ibase_name_result

(PHP 5)

ibase_name_result -- Define um nome para um conjunto de resultados

Descrição

bool ibase_name_result ( resource result, string name)

Esta função define um nome para um conjunto de resultados. Este nome pode ser usado posteriormente em comandos UPDATE|DELETE ... WHERE CURRENT OF name. Retorna TRUE em caso de sucesso ou FALSE em falhas.

<?php
    $result = ibase_query( "SELECT field1,field2 FROM table FOR UPDATE" );
    ibase_name_result($result,"my_cursor");

    $updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

    for ($i = 0; ibase_fetch_row($result); ++$i) {
        ibase_execute($updateqry,$i);
    }
?>

veja também ibase_prepare() e ibase_execute().

Anterior | Principal | Próxima
ibase_modify_user | Acima | ibase_num_fields


ibase_num_fields

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_num_fields -- Obtém o número de campos em um conjunto de resultados

Descrição

int ibase_num_fields ( resource result_id)

Retorna um inteiro contendo o número de campos em um conjunto de resultados.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ".$col_info['name']."\n";
        echo "alias: ".$col_info['alias']."\n";
        echo "relation: ".$col_info['relation']."\n";
        echo "length: ".$col_info['length']."\n";
        echo "type: ".$col_info['type']."\n";
    }
?>

Veja também: ibase_field_info().

Anterior | Principal | Próxima
ibase_name_result | Acima | ibase_num_params


ibase_num_params

(PHP 5)

ibase_num_params -- Retorna o número de parâmetros em uma consulta preparada

Descrição

int ibase_num_params ( resource query)

Esta função retorna o número de parâmetros em uma consulta preparada especificada query. Este é o numero de argumentos que devem estar presentes quando usar a função ibase_execute().

Veja também ibase_prepare() e ibase_param_info().

Anterior | Principal | Próxima
ibase_num_fields | Acima | ibase_param_info


ibase_param_info

(PHP 5)

ibase_param_info -- Retorna informação sobre um parâmetro em uma consulta preparada

Descrição

array ibase_param_info ( resource query, int param_number)

Retorna uma matriz com informações sobre um parâmetro após a consulta ter sido preparada. A matriz esta na forma de name, alias, relation, length, type.

Veja também ibase_field_info() e ibase_num_params().

Anterior | Principal | Próxima
ibase_num_params | Acima | ibase_pconnect


ibase_pconnect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_pconnect -- Abre uma conexão persistente com um banco de dados InterBase

Descrição

resource ibase_pconnect ( string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])

ibase_pconnect() funciona de modo parecido ibase_connect() com duas maiores diferenças. Primeiro, ao conectar, irá primeiro tentar encontrar uma conexão (persistente) que já esteja aberta com os mesmos parâmetros. Se for encontrada uma, é retornado um identificador par ela ao invés de abrir uma nova conexão. Segundo, a conexão com o servidor InterBase não será fechada ao final da execução do scrip. Ao invés, permanecerá aberta para uso futuro (ibase_close() não irá fechar conexões abrtas com ibase_pconnect()). Este tipo de conexão é por isso chamada 'persistente'.

Nota: buffers foi adicionado no PHP4-RC2.

Nota: dialect foi adicionado no PHP4-RC2. Funciona somente com o InterBase 6 ou posterior.

Nota: role foi adicionado no PHP4-RC2. Funciona somente com o InterBase 5 ou posterior.

Veja também ibase_close() e ibase_connect() para indicações sobre os parâmetros passados para esta função. São exatamente os mesmo.

Anterior | Principal | Próxima
ibase_param_info | Acima | ibase_prepare


ibase_prepare

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_prepare -- Prepara uma consulta para execução posterior

Descrição

resource ibase_prepare ( [resource link_identifier, string query])

Prepara uma consulta para execução posterior. (via ibase_execute()).

Anterior | Principal | Próxima
ibase_pconnect | Acima | ibase_query


ibase_query

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_query -- Executa uma consulta em um banco de dados InterBase

Descrição

resource ibase_query ( [resource link_identifier, string query [, int bind_args]])

Executa uma consulta em um banco de dados InterBase. Se houver um erro na consulta, retorna FALSE. Se ela for bem sucedida e houver um conjunto de resultados (possivelmente vazio), como o retornado por uma consulta SELECT, retorna um identificados de resultado. Se a consulta for bem sucedida e não houver resultado, retorna TRUE.

Exemplo 1. Exemplo ibase_query()

<?php

    $host = 'localhost:/path/to/your.gdb';

    $dbh = ibase_connect($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';

    $sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

Nota: No PHP 5.0.0 e posterior, esta função retorna o número de linhas afetadas pela consulta (se > 0 e aplicado ao tipo de comando). A consulta que tenha sido bem sucedida mas não afete nenhuma linha(ex. um UPDATE de um registro que não exista) irá retornar TRUE.

Nota: Se você tiver um erro como "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (isto acontece quando você tenta usar alguns caracteres com acentos) quando você utilizar esta e depois ibase_query() você deverá definir o conjunto de caracteres (ex. ISO8859_1 ou seu conjunto de caraacteres atual).

Veja também ibase_errmsg(),
ibase_fetch_row(),
ibase_fetch_object() e
ibase_free_result().

Anterior | Principal | Próxima
ibase_prepare | Acima | ibase_restore


ibase_restore

(PHP 5)

ibase_restore -- Initiates a restore task in the service manager and returns immediately

Description

mixed ibase_restore ( resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_query | Acima | ibase_rollback_ret


ibase_rollback_ret

(PHP 5)

ibase_rollback_ret -- Desfaz uma transação sem fecha-la

Descrição

bool ibase_rollback_ret ( [resource link_identifier])

Se for chamada sem um argumento, esta função desfaz a transação padrão na conexão padrão. Se o argumento for um identificador de conexão, a transação padrão na conexão indicada será desfeita. Se o argumento for um identificador de transação, a transação correspondente será desfeita. O contexto da transação será mantido, então comandos executados a partir desta transação não seram invalidados. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ibase_restore | Acima | ibase_rollback


ibase_rollback

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_rollback -- Desfaz uma transação

Descrição

bool ibase_rollback ( [resource link_identifier])

Se for chamada sem um argumento, esta função desfaz a transação padrão na conexão padrão. Se o argumento for um identificador de conexão, a transação padrão na conexão indicada será desfeita. Se o argumento for um identificador de transação, a transação correspondente será desfeita. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ibase_rollback_ret | Acima | ibase_server_info


ibase_server_info

(PHP 5)

ibase_server_info -- Request information about a database server

Description

string ibase_server_info ( resource service_handle, int action)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_rollback | Acima | ibase_service_attach


ibase_service_attach

(PHP 5)

ibase_service_attach -- Connect to the service manager

Description

resource ibase_service_attach ( string host, string dba_username, string dba_password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_server_info | Acima | ibase_service_detach


ibase_service_detach

(PHP 5)

ibase_service_detach -- Disconnect from the service manager

Description

bool ibase_service_detach ( resource service_handle)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ibase_service_attach | Acima | ibase_set_event_handler


ibase_set_event_handler

(PHP 5)

ibase_set_event_handler -- Registra uma função de callback para ser chamada quando eventos são postados

Descrição

resource ibase_set_event_handler ( [resource connection, callback event_handler, string event_name1 [, string event_name2 [, string ...]]])

Esta função registra uma função do usuário como gerenciador de eventos para os eventos especificados. O callback é chamado com o nome do evento e a conexão como argumento quando qualquer um dos eventos especificados e postado pelo banco de dados. O callback deve retornar FALSE se o gerenciador de eventos deve ser cancelado. Qualquer outro valor retornado é ignorado.

<?php

    function event_handler($event_name, $link)
    {
        if ($event_name=="NEW ORDER") {
            // process new order
            ibase_query($link, "UPDATE orders SET status='handled'");
        } else if ($event_name=="DB_SHUTDOWN") {
            // free event handler
            return false;
        }
    }

    ibase_set_event_handler($link,"event_handler","NEW_ORDER","DB_SHUTDOWN");
?>

O valor de retorno é um recurso event. Este recurso pode ser utilizado para liberar o gerenciador de evento usando ibase_free_event_handler().

Veja também ibase_free_event_handler() e ibase_wait_event().

Anterior | Principal | Próxima
ibase_service_detach | Acima | ibase_timefmt


ibase_timefmt

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_timefmt -- Define o formato do timestamp, colunas do tipo data e hora retornadas de consultas

Descrição

int ibase_timefmt ( string format [, int columntype])

Define o formato de timestamp, data ou hora retornados de consultas. Internamente, as colunas são fomatadas pela função do c strftime(), então de uma olhada na sua documentação sobre o formato da string. O parâmetro columntype é uma das constantes IBASE_TIMESTAMP, IBASE_DATE e IBASE_TIME. Se for omitido, o padrão é IBASE_TIMESTAMP para compatibilidade com versões anteriores.

<?php
    /* InterBase 6 TIME-type columns will be returned in
     * the form '05 hours 37 minutes'. */
    ibase_timefmt("%H hours %M minutes", IBASE_TIME);
?>

Você também pode definir padrões para estes formatos com as diretivas de configuração do PHP ibase.timestampformat, ibase.dateformat e ibase.timeformat.

Nota: columntype Foi adicionado no PHP 4.0. Funciona somente para o InterBase versão 6 ou posterior.

Nota: Uma mudança incompatível com as versões anteriores aconteceu no PHP 4.0 quando a diretiva de configuração do PHP foi renomeada para ibase.timestampformat e as diretivas ibase.dateformat e ibase.timeformat foram adicionada, assim seu nomes descrevem melhor seu funcionamento.

Anterior | Principal | Próxima
ibase_set_event_handler | Acima | ibase_trans


ibase_trans

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_trans -- Inicia uma transação

Descrição

resource ibase_trans ( [int trans_args [, resource link_identifier]])

Inicia uma transação.

trans_args pode ser uma combinação de IBASE_READ, IBASE_WRITE, IBASE_COMMITED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT e IBASE_NOWAIT.

Nota: O funcionamento desta função mudou no PHP 5.0.0. A primeira chamada a ibase_trans() não irá retornar a transação padrão da conexão. Todas as transações começadas por ibase_trans() seram desfeitas ao final do script se não for gravada ou desfeita por ibase_commit() ou ibase_rollback().

Nota: No PHP 5.0.0. e posterior, estafunção aceitará multiplos argumentos trans_args e link_identifier. Isto irá permitir transações sobre multiplas conexões de banco de dados, as quais são gravadas usando um algaritimo de duas fases. Isto indica que suas atualizações podem ser bem sucedidas em todos os bancos de dados, ou falhar em todo os bancos de dados. Isto NÃO indica que você possa utilizar tabelas de banco de dados diferentes na mesma consulta!

Se você usar transações em multiplos bancos de dados, você tem que especificar os parâmetros link_id e transaction_id nas chamadas para ibase_query() e ibase_prepare().

Anterior | Principal | Próxima
ibase_timefmt | Acima | ibase_wait_event


ibase_wait_event

(PHP 5)

ibase_wait_event -- Espera por um evento ser postado no banco de dados

Descrição

string ibase_wait_event ( [resource connection, string event_name1 [, string event_name2 [, string ...]]])

Esta função suspende a execução do script até um dos dos eventos especificados é postado pelo banco de dados. O nome do evento que foi postado é retornado. Esta função aceita até 15 eventos de argumento.

veja também ibase_set_event_handler() e ibase_free_event_handler().

Anterior | Principal | Próxima
ibase_trans | Acima | Ingres II Functions


Ingres II Functions

Manual do PHP
Anterior Próxima

XLV. Ingres II Functions

Introdução

These functions allow you to access Ingres II database servers.

Nota: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be committed or rolled back before opening another transaction (which is automatically done when sending the first query).

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Requisitos

To compile PHP with Ingres support, you need the Open API library and header files included with Ingres II.

Instalação

In order to have these functions available, you must compile PHP with Ingres support by using the --with-ingres[=DIR] option, where DIR is the Ingres base directory, which defaults to /II/ingres. If the II_SYSTEM environment variable isn't correctly set you may have to use --with-ingres=DIR to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environment variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Ingres II configuration options

Name | Default | Changeable
ingres.allow_persistent | "1" | PHP_INI_SYSTEM
ingres.max_persistent | "-1" | PHP_INI_SYSTEM
ingres.max_links | "-1" | PHP_INI_SYSTEM
ingres.default_database | NULL | PHP_INI_ALL
ingres.default_user | NULL | PHP_INI_ALL
ingres.default_password | NULL | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

INGRES_ASSOC (integer)

INGRES_NUM (integer)

INGRES_BOTH (integer)

Índice
ingres_autocommit -- Switch autocommit on or off
ingres_close -- Close an Ingres II database connection
ingres_commit -- Commit a transaction
ingres_connect -- Open a connection to an Ingres II database
ingres_fetch_array -- Fetch a row of result into an array
ingres_fetch_object -- Fetch a row of result into an object.
ingres_fetch_row -- Fetch a row of result into an enumerated array
ingres_field_length -- Get the length of a field
ingres_field_name -- Get the name of a field in a query result.
ingres_field_nullable -- Test if a field is nullable
ingres_field_precision -- Get the precision of a field
ingres_field_scale -- Get the scale of a field
ingres_field_type -- Get the type of a field in a query result
ingres_num_fields -- Get the number of fields returned by the last query
ingres_num_rows -- Get the number of rows affected or returned by the last query
ingres_pconnect -- Open a persistent connection to an Ingres II database
ingres_query -- Send a SQL query to Ingres II
ingres_rollback -- Roll back a transaction

Anterior | Principal | Próxima
ibase_wait_event | Acima | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5)

ingres_autocommit -- Switch autocommit on or off

Description

bool ingres_autocommit ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_commit()) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off).

When the autocommit mode is on, every query is automatically committed by the server, as if ingres_commit() was called after every call to ingres_query().

See also
ingres_query(),
ingres_rollback(), and
ingres_commit().

Anterior | Principal | Próxima
Ingres II Functions | Acima | ingres_close


ingres_close

(PHP 4 >= 4.0.2, PHP 5)

ingres_close -- Close an Ingres II database connection

Description

bool ingres_close ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Returns TRUE on success, or FALSE on failure.

ingres_close() closes the connection to the Ingres server that's associated with the specified link. If the link parameter isn't specified, the last opened link is used.

ingres_close() isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script.

See also ingres_connect() and ingres_pconnect().

Anterior | Principal | Próxima
ingres_autocommit | Acima | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2, PHP 5)

ingres_commit -- Commit a transaction

Description

bool ingres_commit ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new one can be open by sending a query with ingres_query().

You can also have the server commit automatically after every query by calling ingres_autocommit() before opening the transaction.

See also
ingres_query(),
ingres_rollback(), and
ingres_autocommit().

Anterior | Principal | Próxima
ingres_close | Acima | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2, PHP 5)

ingres_connect -- Open a connection to an Ingres II database

Description

resource ingres_connect ( [string database [, string username [, string password]]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Returns a Ingres II link resource on success, or FALSE on failure.

ingres_connect() opens a connection with the Ingres database designated by database, which follows the syntax [node_id::]dbname[/svr_class].

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user, and ingres.default_password.

The connection is closed when the script ends or when ingres_close() is called on this link.

All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time.

Exemplo 1. ingres_connect() example

<?php
    $link = ingres_connect("mydb", "user", "pass")
        or die("Could not connect");
    echo "Connected successfully";
    ingres_close($link);
?>

Exemplo 2. ingres_connect() example using default link

<?php
    ingres_connect("mydb", "user", "pass")
        or die("Could not connect");
    echo "Connected successfully";
    ingres_close();
?>

See also ingres_pconnect() and ingres_close().

Anterior | Principal | Próxima
ingres_commit | Acima | ingres_fetch_array


ingres_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_array -- Fetch a row of result into an array

Description

array ingres_fetch_array ( [int result_type [, resource link]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_fetch_array() Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

This function is an extended version of ingres_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column.

<?php

ingres_query("select t1.f1 as foo t2.f1 as bar from t1, t2");
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

?>

result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default).

Speed-wise, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Exemplo 1. ingres_fetch_array() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_connect | Acima | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_object -- Fetch a row of result into an object.

Description

object ingres_fetch_object ( [int result_type [, resource link]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_fetch_object() Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

This function is similar to ingres_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH.

Speed-wise, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Exemplo 1. ingres_fetch_object() example

<?php
ingres_connect($database, $user, $password);
ingres_query("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_fetch_array | Acima | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_row -- Fetch a row of result into an enumerated array

Description

array ingres_fetch_row ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_fetch_row() returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent call to ingres_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Exemplo 1. ingres_fetch_row() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_num_fields(),
ingres_query(),
ingres_fetch_array(), and
ingres_fetch_object().

Anterior | Principal | Próxima
ingres_fetch_object | Acima | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_length -- Get the length of a field

Description

int ingres_field_length ( int index [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_field_length() returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_fetch_row | Acima | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_name -- Get the name of a field in a query result.

Description

string ingres_field_name ( int index [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_field_name() returns the name of a field in a query result, or FALSE on failure.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_field_length | Acima | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_nullable -- Test if a field is nullable

Description

bool ingres_field_nullable ( int index [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it can't.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_field_name | Acima | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_precision -- Get the precision of a field

Description

int ingres_field_precision ( int index [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_field_nullable | Acima | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_scale -- Get the scale of a field

Description

int ingres_field_scale ( int index [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_field_precision | Acima | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_type -- Get the type of a field in a query result

Description

string ingres_field_type ( int index [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_field_type() returns the type of a field in a query result, or FALSE on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_field_scale | Acima | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5)

ingres_num_fields -- Get the number of fields returned by the last query

Description

int ingres_num_fields ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query()

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_field_type | Acima | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5)

ingres_num_rows -- Get the number of rows affected or returned by the last query

Description

int ingres_num_rows ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

For delete, insert or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

Nota: This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row() the server will delete the result's data and the script won't be able to get them.

You should instead retrieve the result's data using one of these fetch functions in a loop until it returns FALSE, indicating that no more results are available.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Anterior | Principal | Próxima
ingres_num_fields | Acima | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5)

ingres_pconnect -- Open a persistent connection to an Ingres II database

Description

resource ingres_pconnect ( [string database [, string username [, string password]]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Returns a Ingres II link resource on success, or FALSE on failure.

See ingres_connect() for parameters details and examples. There are only 2 differences between ingres_pconnect() and ingres_connect() : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called 'persistent'.

See also ingres_connect() and ingres_close().

Anterior | Principal | Próxima
ingres_num_rows | Acima | ingres_query


ingres_query

(PHP 4 >= 4.0.2, PHP 5)

ingres_query -- Send a SQL query to Ingres II

Description

bool ingres_query ( string query [, resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Returns TRUE on success, or FALSE on failure.

ingres_query() sends the given query to the Ingres server. This query must be a valid SQL query (see the Ingres SQL reference guide)

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can either call ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed.

Some types of SQL queries can't be sent with this function:

  • close (see ingres_close())

  • commit (see ingres_commit())

  • connect (see ingres_connect())

  • disconnect (see ingres_close())

  • get dbevent

  • prepare to commit

  • rollback (see ingres_rollback())

  • savepoint

  • set autocommit (see ingres_autocommit())

  • all cursor related queries are unsupported

Exemplo 1. ingres_query() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback(), and
ingres_autocommit().

Anterior | Principal | Próxima
ingres_pconnect | Acima | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2, PHP 5)

ingres_rollback -- Roll back a transaction

Description

bool ingres_rollback ( [resource link])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ingres_rollback() rolls back the currently open transaction, actually canceling all changes made to the database during the transaction.

This closes the transaction. A new one can be open by sending a query with ingres_query().

See also
ingres_query(),
ingres_commit(), and
ingres_autocommit().

Anterior | Principal | Próxima
ingres_query | Acima | Funções de IRC Gateway


Funções de IRC Gateway

Manual do PHP
Anterior Próxima

XLVI. Funções de IRC Gateway

Introdução

Com IRCG você pode passar rapidamente dados XML para milhares de usuários conectados simultaneamente. Isso pode ser usado para desenvolver poderosos, plataformas interativas semelhante à jogos online e chats. IRCG também tem recursos que suportam modo non-streaming onde uma aplicação ajudante reformata dados de entrada e fornecendo fragmentos de arquivos estáticos em um formato especial como o cHTML (i-mode) ou WML (WAP). Esses arquivos estáticos são então entregues com alta performance ao servidor web.

Acima da v3, IRCG roda somente sobre estas plataformas:

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

Instalação

Detalhes sobre instalação podem ser encontrados aqui. Nós desejamos que você forneça o script de instalação.

Isto não é recomendado, mas você pode testar habilitar o suporte à IRCG por sua conta. Disponibilizando o path para o script ircg-config, --with-ircg-config=path/to/irc-config e outras adições em --with-ircg no seu configure.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
ircg_channel_mode -- Seta configurações de canal para o usuário
ircg_disconnect -- Fecha a conexão com o servidor
ircg_fetch_error_msg -- Retorna o erro de uma operação IRCG anterior
ircg_get_username -- Get username for connection
ircg_html_encode -- Codifica HTML preservando o output
ircg_ignore_add -- Adiciona um usuário à sua ignore list no servidor
ircg_ignore_del -- Remove um usuário da sua ignore list no servidor
ircg_invite -- Invites nickname to channel
ircg_is_conn_alive -- Verifica status da conexão
ircg_join -- Entra em um canal especificado do servidor
ircg_kick -- Chuta um usuário para fora de um canal especificado
ircg_list -- List topic/user count of channel(s)
ircg_lookup_format_messages -- Verifica a existência de uma configuração para o formato de mensagem
ircg_lusers -- IRC network statistics
ircg_msg -- Envia uma mensagem ao canal ou um usuário no servidor
ircg_nick -- Altera o nickname no servidor
ircg_nickname_escape -- Codifica caracteres especiais em um nickname para ser IRC-compliant
ircg_nickname_unescape -- Decodifica nickname previamente codificados
ircg_notice -- Envia uma notice para o usuário no servidor
ircg_oper -- Elevates privileges to IRC OPER
ircg_part -- Deixa um canal no servidor
ircg_pconnect -- Conecta à um servidor de IRC
ircg_register_format_messages -- Registra um formato de configuração de mensagem
ircg_set_current -- Seta conexão atual para saída de dados
ircg_set_file -- Seta um arquivo de log para a conexão
ircg_set_on_die -- Seta acção para ser executada quando a conexão fechar
ircg_topic -- Seta o tópico para o canal no servidor
ircg_who -- Queries server for WHO information
ircg_whois -- Pergunta ao servidor informações sobre um usuário

Anterior | Principal | Próxima
ingres_rollback | Acima | ircg_channel_mode


ircg_channel_mode

(PHP 4 >= 4.0.5, PHP 5)

ircg_channel_mode -- Seta configurações de canal para o usuário

Descrição

bool ircg_channel_mode ( resource connection, string channel, string mode_spec, string nick)

Seta configurações de canal em channel no servidor conectado por connection. Configurações são passadas em mode_spec e são aplicadas ao usuário especificado por nick.

Essas configurações são setadas ou não especificando um caractere como parâmetro e adicionando-o com um caractere positivo ou negativo, respectivamente. Exemplo: modo de operador é concedido por '+o' e retirado por '-o', como especificado em mode_spec.

Anterior | Principal | Próxima
Funções de IRC Gateway | Acima | ircg_disconnect


ircg_disconnect

(PHP 4 >= 4.0.4, PHP 5)

ircg_disconnect -- Fecha a conexão com o servidor

Descrição

bool ircg_disconnect ( resource connection, string reason)

ircg_disconnect() irá fechar uma connection para o servidor previamente estabilizado conexão com ircg_pconnect().

Veja também: ircg_pconnect().

Anterior | Principal | Próxima
ircg_channel_mode | Acima | ircg_fetch_error_msg


ircg_fetch_error_msg

(PHP 4 >= 4.1.0, PHP 5)

ircg_fetch_error_msg -- Retorna o erro de uma operação IRCG anterior

Descrição

array ircg_fetch_error_msg ( resource connection)

ircg_fetch_error_msg() retorna o erro de uma falha de conexão.

Nota: Código do erro é armazenado no primeiro elemento do array, o texto do erro em segundo. O código do erro é equivalente ao código de IRC reply definido por RFC 2812.

Exemplo 1. ircg_fetch_error_msg() example

<?php
if (!ircg_join ($id, "#php")) {
    $error = ircg_fetch_error_msg($id);
    print ("Can't join channel #php. Error code:
            $error[0] Description: $error[1]");
}
?>

Anterior | Principal | Próxima
ircg_disconnect | Acima | ircg_get_username


ircg_get_username

(PHP 4 >= 4.1.0, PHP 5)

ircg_get_username -- Get username for connection

Descrição

string ircg_get_username ( resource connection)

A função ircg_get_username() retorna o usuário para a conexão especificada em connection. Retorna FALSE se connection falhar ou não for válida.

Anterior | Principal | Próxima
ircg_fetch_error_msg | Acima | ircg_html_encode


ircg_html_encode

(PHP 4 >= 4.0.5, PHP 5)

ircg_html_encode -- Codifica HTML preservando o output

Descrição

bool ircg_html_encode ( string html_string)

Codifica um texto HTML html_string para saída. Isso expõe a interface na qual a extensão IRCG está usando internamente para reformatar os dados vindo de um IRC link. A função causa a cor/fonte de IRC para ser codificada em HTML e escapa alguns caracteres.

Anterior | Principal | Próxima
ircg_get_username | Acima | ircg_ignore_add


ircg_ignore_add

(PHP 4 >= 4.0.5, PHP 5)

ircg_ignore_add -- Adiciona um usuário à sua ignore list no servidor

Descrição

bool ircg_ignore_add ( resource connection, string nick)

Essa função adiciona o usuário nick para a sua ignore list da conexão connection. Depois, IRCG irá suprimir todas as mensagens deste usuário através associados à conexão.

Veja também: ircg_ignore_del().

Anterior | Principal | Próxima
ircg_html_encode | Acima | ircg_ignore_del


ircg_ignore_del

(PHP 4 >= 4.0.5, PHP 5)

ircg_ignore_del -- Remove um usuário da sua ignore list no servidor

Descrição

bool ircg_ignore_del ( resource connection, string nick)

Essa função remove o usuário nick associado à sua ignore list na conexão com o IRCG especificado por connection.

Veja também: ircg_ignore_add().

Anterior | Principal | Próxima
ircg_ignore_add | Acima | ircg_invite


ircg_invite

(PHP 4 >= 4.3.3, PHP 5)

ircg_invite -- Invites nickname to channel

Description

bool ircg_invite ( resource connection, string channel, string nickname)

ircg_invite() will send an invitation to the user nickname, prompting him to join channel. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ircg_ignore_del | Acima | ircg_is_conn_alive


ircg_is_conn_alive

(PHP 4 >= 4.0.5, PHP 5)

ircg_is_conn_alive -- Verifica status da conexão

Descrição

bool ircg_is_conn_alive ( resource connection)

ircg_is_conn_alive() retorna TRUE se connection está respondendo e trabalhando ainda ou FALSE, se a conexão estiver parada por alguma razão.

Anterior | Principal | Próxima
ircg_invite | Acima | ircg_join


ircg_join

(PHP 4 >= 4.0.4, PHP 5)

ircg_join -- Entra em um canal especificado do servidor

Descrição

bool ircg_join ( resource connection, string channel [, string key])

Entra em um canal channel no servidor conectado previamente por connection. IRCG irá opcionalmente passar chaves (configurações) da sala por key.

Anterior | Principal | Próxima
ircg_is_conn_alive | Acima | ircg_kick


ircg_kick

(PHP 4 >= 4.0.5, PHP 5)

ircg_kick -- Chuta um usuário para fora de um canal especificado

Descrição

bool ircg_kick ( resource connection, string channel, string nick, string reason)

Chuta um usuário nick de um channel no servidor conectado por connection. reason deve conter uma mensagem curta descrevendo o motivo que levou à execução desta ação.

Anterior | Principal | Próxima
ircg_join | Acima | ircg_list


ircg_list

(PHP 4 >= 4.3.3, PHP 5)

ircg_list -- List topic/user count of channel(s)

Description

bool ircg_list ( resource connection, string channel)

ircg_list() will request a list of users in the channel. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. ircg_list() example

<?php

// connect to server
$id = ircg_pconnect($nickname, $ip, $port);

// set to output to a file
ircg_set_file($id, 'irc_output.html');

// try to join a channel
if (!ircg_join($id, $channel)) {
    echo "Cannot /join $channel<br />";
}

// send list command
ircg_list($id, $channel);

// wait for output to arrive
sleep(5);

// disconnect
ircg_disconnect($id,'Bye World');

// output everything
readfile('irc_output.html');

?>

This example will output something similar to:

...
Channel #channel has n users and the topic is 'Topic'
End of LIST
...

See also: ircg_set_file(),
ircg_set_current(), and
ircg_who().

Anterior | Principal | Próxima
ircg_kick | Acima | ircg_lookup_format_messages


ircg_lookup_format_messages

(PHP 4 >= 4.0.5, PHP 5)

ircg_lookup_format_messages -- Verifica a existência de uma configuração para o formato de mensagem

Descrição

bool ircg_lookup_format_messages ( string name)

Verifica a existência de uma configuração para o formato de mensagem setado por name. Configurações devem ser registradas com ircg_register_format_messages(), uma configuração padrão chamada ircg está sempre disponível. Retorna TRUE, se a configuração existe e FALSE caso contrário.

Veja também: ircg_register_format_messages()

Anterior | Principal | Próxima
ircg_list | Acima | ircg_lusers


ircg_lusers

(PHP 4 >= 4.3.3, PHP 5)

ircg_lusers -- IRC network statistics

Description

bool ircg_lusers ( resource connection)

ircg_lusers() will request a statistical breakdown of users on the network connected to on connection. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also: ircg_set_file(), and ircg_set_current().

Anterior | Principal | Próxima
ircg_lookup_format_messages | Acima | ircg_msg


ircg_msg

(PHP 4 >= 4.0.4, PHP 5)

ircg_msg -- Envia uma mensagem ao canal ou um usuário no servidor

Descrição

bool ircg_msg ( resource connection, string recipient, string message [, boolean suppress])

ircg_msg() irá enviar a mensagem para o canal ou usuário no servidor especificado por connection. O recipient começa com um # ou & irá finalizar a message para o canal, qualquer outra coisa será interpretada como o nome de usuário.

Configurações de parâmetros adicionais suppress para um valor TRUE serão suprimidos na saída de sua mensagem para a sua própria connection. Este chamado laço de retorno é necessário, porque o servidor IRC não tem comandos echo PRIVMSG devolvendo para si próprio.

Anterior | Principal | Próxima
ircg_lusers | Acima | ircg_nick


ircg_nick

(PHP 4 >= 4.0.5, PHP 5)

ircg_nick -- Altera o nickname no servidor

Descrição

bool ircg_nick ( resource connection, string nick)

Altera seu nickname na conexão dada em connection para o primeiro nick dado em nick, se possível.

Irá retornar TRUE em caso de sucesso e FALSE em caso de falha.

Anterior | Principal | Próxima
ircg_msg | Acima | ircg_nickname_escape


ircg_nickname_escape

(PHP 4 >= 4.0.6, PHP 5)

ircg_nickname_escape -- Codifica caracteres especiais em um nickname para ser IRC-compliant

Descripção

string ircg_nickname_escape ( string nick)

A função ircg_nickname_escape() retorna um nickname codificado especificado por nick que é IRC-compliant.

Veja também: ircg_nickname_unescape()

Anterior | Principal | Próxima
ircg_nick | Acima | ircg_nickname_unescape


ircg_nickname_unescape

(PHP 4 >= 4.0.6, PHP 5)

ircg_nickname_unescape -- Decodifica nickname previamente codificados

Descrição

string ircg_nickname_unescape ( string nick)

A função ircg_nickname_unescape() retorna um nickname decodificado, que é especificado em nick.

Veja também: ircg_nickname_escape()

Anterior | Principal | Próxima
ircg_nickname_escape | Acima | ircg_notice


ircg_notice

(PHP 4 >= 4.0.5, PHP 5)

ircg_notice -- Envia uma notice para o usuário no servidor

Descrição

bool ircg_notice ( resource connection, string , string message)

Essa função irá enviar a message de texto para o usuário nick no servidor conectado por connection. O servidor IRC e outro software não irão gerar replies automáticos para NOTICEs em contraste com outros tipos de mensagem.

Anterior | Principal | Próxima
ircg_nickname_unescape | Acima | ircg_oper


ircg_oper

(PHP 4 >= 4.3.3, PHP 5)

ircg_oper -- Elevates privileges to IRC OPER

Description

bool ircg_oper ( resource connection, string name, string password)

ircg_oper() will authenticate the logged in user on connection as an IRC operator. name and password must match a registered IRC operator account. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ircg_notice | Acima | ircg_part


ircg_part

(PHP 4 >= 4.0.4, PHP 5)

ircg_part -- Deixa um canal no servidor

Descrição

bool ircg_part ( resource connection, string channel)

Deixa o canal channel no servidor conectado por connection.

Anterior | Principal | Próxima
ircg_oper | Acima | ircg_pconnect


ircg_pconnect

(PHP 4 >= 4.0.4, PHP 5)

ircg_pconnect -- Conecta à um servidor de IRC

Descrição

resource ircg_pconnect ( string username [, string server_ip [, int server_port [, string msg_format [, array ctcp_messages [, array user_settings]]]]])

ircg_pconnect() irá tentar estabelecer conexão com um servidor IRC e retornar o manuseador deste recurso para uso.

O parâmetro obrigatório é username, isso irá setar seu nickname inicial no servidor. server_ip e server_port são opcionais e o padrão é 127.0.0.1 e 6667.

Nota: Agora para o parâmetro server_ip não irá fazer checagem alguma de hostname e irá somente aceitar endereços IP em formato numérico. DNS lookups são caros e devem ser feitos com o contexto da IRCG.

Você pode customizar a saída das mensagens de IRC e eventos selecionando um formato de mensagem previamente criado com ircg_register_format_messages() para especificar as configurações do nome em msg_format.

Se você quer trabalhar com mensagens CTCP bem como ACTION (/me), você precisa definir um mapeamento para tipos CTCP (e.g. ACTION) para customizar um formato de texto. Faça isso passando um array associativo como ctcp_messages. As chaves do array são os tipos de CTCP e os respectivos valores são o formato da mensagem.

Você pode definir "ident", "password", e "realname" tokens que serão enviados para o servidor IRC pelas configurações destes arrays associativos. Passe este array como user_settings.

Veja também: ircg_disconnect(),
ircg_is_conn_alive(),
ircg_register_format_messages().

Anterior | Principal | Próxima
ircg_part | Acima | ircg_register_format_messages


ircg_register_format_messages

(PHP 4 >= 4.0.5, PHP 5)

ircg_register_format_messages -- Registra um formato de configuração de mensagem

Descrição

bool ircg_register_format_messages ( string name, array messages)

Com ircg_register_format_messages() você pode customizar o caminho da sua saída de dados como ou qual funções de script são chamadas no lado do cliente.

  • Plain channel message

  • Private message received

  • Private message sent

  • Some user leaves channel

  • Some user enters channel

  • Some user was kicked from the channel

  • Topic has been changed

  • Error

  • Fatal error

  • Join list end(?)

  • Self part(?)

  • Some user changes his nick

  • Some user quits his connection

  • Mass join begin

  • Mass join element

  • Mass join end

  • Whois user

  • Whois server

  • Whois idle

  • Whois channel

  • Whois end

  • Voice status change on user

  • Operator status change on user

  • Banlist

  • Banlist end

  • %f - from

  • %t - to

  • %c - channel

  • %r - plain message

  • %m - encoded message

  • %j - js encoded message

  • 1 - mod encode

  • 2 - nickname decode

See also: ircg_lookup_format_messages().

Anterior | Principal | Próxima
ircg_pconnect | Acima | ircg_set_current


ircg_set_current

(PHP 4 >= 4.0.4, PHP 5)

ircg_set_current -- Seta conexão atual para saída de dados

Descrição

bool ircg_set_current ( resource connection)

Seleciona a conexão atual HTTP para saída de dados nesse contexto de execução. Cada saída enviada para o servidor por connection irá ser copiada para saída padrão enquanto usando o padrão de formatação ou um formato de mensagem especificado por ircg_register_format_messages().

Veja também: ircg_register_format_messages().

Anterior | Principal | Próxima
ircg_register_format_messages | Acima | ircg_set_file


ircg_set_file

(PHP 4 >= 4.2.0, PHP 5)

ircg_set_file -- Seta um arquivo de log para a conexão

Descrição

bool ircg_set_file ( resource connection, string path)

A função ircg_set_file() especifica um arquivo de log path no qual todas as saídas de dados da conexão connection irão ser logados. Retorna TRUE em caso de sucesso, ou então FALSE.

Anterior | Principal | Próxima
ircg_set_current | Acima | ircg_set_on_die


ircg_set_on_die

(PHP 4 >= 4.2.0, PHP 5)

ircg_set_on_die -- Seta acção para ser executada quando a conexão fechar

Descrição

bool ircg_set_on_die ( resource connection, string host, int port, string data)

Em caso de finalização da conexão connection IRCG irá conectar para host na port (Note: host deve ser um endereço IPv4, IRCG não resolve nomes de host bloqueando seu uso), envia data para uma nova conexão com o host e irá aguardar até que o servidor remote feche a conexão. Isso pode ser usado como gatilho de um script PHP por exemplo.

Esse recurso requer IRCG 3.

Anterior | Principal | Próxima
ircg_set_file | Acima | ircg_topic


ircg_topic

(PHP 4 >= 4.0.5, PHP 5)

ircg_topic -- Seta o tópico para o canal no servidor

Descrição

bool ircg_topic ( resource connection, string channel, string new_topic)

Altera o tópico de um canal channel conectado no servidor por connection para new_topic.

Anterior | Principal | Próxima
ircg_set_on_die | Acima | ircg_who


ircg_who

(PHP 4 >= 4.3.3, PHP 5)

ircg_who -- Queries server for WHO information

Description

bool ircg_who ( resource connection, string mask [, bool ops_only])

ircg_who() will request a list of users whose nickname is matching mask on connected network connection. The optional parameter ops_only will shrink the list to server operators only.

The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also: ircg_set_file(), and ircg_set_current().

Anterior | Principal | Próxima
ircg_topic | Acima | ircg_whois


ircg_whois

(PHP 4 >= 4.0.5, PHP 5)

ircg_whois -- Pergunta ao servidor informações sobre um usuário

Descrição

bool ircg_whois ( resource connection, string nick)

Envia uma pergunta ao servidor conectado por connection perguntando informações sobre o usuário especificado em nick.

Anterior | Principal | Próxima
ircg_who | Acima | PHP / Java Integration


PHP / Java Integration

Manual do PHP
Anterior Próxima

XLVII. PHP / Java Integration

Introdução

There are two possible ways to bridge PHP and Java: you can either integrate PHP into a Java Servlet environment, which is the more stable and efficient solution, or integrate Java support into PHP. The former is provided by a SAPI module that interfaces with the Servlet server, the latter by this Java extension.

The Java extension provides a simple and effective means for creating and invoking methods on Java objects from PHP. The JVM is created using JNI, and everything runs in-process.

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Requisitos

You need a Java VM installed on your machine to use this extension.

Instalação

To include Java support in your PHP build you must add the option --with-java[=DIR] where DIR points to the base install directory of your JDK. This extension can only be built as a shared dl. More build instructions for this extension can be found in php-src/ext/java/README.

Note to Win32 Users: In order to enable this module on a Windows environment with PHP <= 4.0.6, you must copy jvm.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP > 4.0.6 you do not need any additional dll file.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Java configuration options

Name | Default | Changeable
java.class.path | NULL | PHP_INI_ALL
java.home | NULL | PHP_INI_ALL
java.library.path | NULL | PHP_INI_ALL
java.library | JAVALIB | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Exemplo 1. Java Example

<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
             $system->getProperty('os.version') . ' on ' .
             $system->getProperty('os.arch') . ' <br />';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
                      "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));
?>

Exemplo 2. AWT Example

<?php
// This example is only intended to be run as a CGI.

$frame  = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');

$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>
Notes:

  • new Java() will create an instance of a class if a suitable constructor is available. If no parameters are passed and the default constructor is useful as it provides access to classes like java.lang.System which expose most of their functionallity through static methods.

  • Accessing a member of an instance will first look for bean properties then public fields. In other words, print $date.time will first attempt to be resolved as $date.getTime(), then as $date.time.

  • Both static and instance members can be accessed on an object with the same syntax. Furthermore, if the java object is of type java.lang.Class, then static members of the class (fields and methods) can be accessed.

  • Exceptions raised result in PHP warnings, and NULL results. The warnings may be eliminated by prefixing the method call with an "@" sign. The following APIs may be used to retrieve and reset the last error:

    • java_last_exception_get()

    • java_last_exception_clear()

  • Overload resolution is in general a hard problem given the differences in types between the two languages. The PHP Java extension employs a simple, but fairly effective, metric for determining which overload is the best match.

    Additionally, method names in PHP are not case sensitive, potentially increasing the number of overloads to select from.

    Once a method is selected, the parameters are coerced if necessary, possibly with a loss of data (example: double precision floating point numbers will be converted to boolean).

  • In the tradition of PHP, arrays and hashtables may pretty much be used interchangably. Note that hashtables in PHP may only be indexed by integers or strings; and that arrays of primitive types in Java can not be sparse. Also note that these constructs are passed by value, so may be expensive in terms of memory and time.

Java Servlet SAPI

The Java Servlet SAPI builds upon the mechanism defined by the Java extension to enable the entire PHP processor to be run as a servlet. The primary advanatage of this from a PHP perspective is that web servers which support servlets typically take great care in pooling and reusing JVMs. Build instructions for the Servlet SAPI module can be found in php4/sapi/README. Notes:

  • While this code is intended to be able to run on any servlet engine, it has only been tested on Apache's Jakarta/tomcat to date. Bug reports, success stories and/or patches required to get this code to run on other engines would be appreciated.

  • PHP has a habit of changing the working directory. sapi/servlet will eventually change it back, but while PHP is running the servlet engine may not be able to load any classes from the CLASSPATH which are specified using a relative directory syntax, or find the work directory used for administration and JSP compilation tasks.

Índice
java_last_exception_clear -- Clear last Java exception
java_last_exception_get -- Get last Java exception

Anterior | Principal | Próxima
ircg_whois | Acima | java_last_exception_clear


java_last_exception_clear

(PHP 4 >= 4.0.2)

java_last_exception_clear -- Clear last Java exception

Description

void java_last_exception_clear ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

See java_last_exception_get() for an example.

Anterior | Principal | Próxima
PHP / Java Integration | Acima | java_last_exception_get


java_last_exception_get

(PHP 4 >= 4.0.2)

java_last_exception_get -- Get last Java exception

Description

exception java_last_exception_get ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The following example demonstrates the usage of Java's exception handler from within PHP:

Exemplo 1. Java exception handler

<?php
$stack = new Java('java.util.Stack');
$stack->push(1);

// This should succeed
$result = $stack->pop();
$ex = java_last_exception_get();
if (!$ex) {
  echo "$result\n";
}

// This should fail (error suppressed by @)
$result = @$stack->pop();
$ex = java_last_exception_get();
if ($ex) {
  echo $ex->toString();
}

// Clear last exception
java_last_exception_clear();
?>

Anterior | Principal | Próxima
java_last_exception_clear | Acima | LDAP Functions


LDAP Functions

Manual do PHP
Anterior Próxima

XLVIII. LDAP Functions

Introdução

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.

The concept is similar to your hard disk directory structure, except that in this context, the root directory is "The world" and the first level subdirectories are "countries". Lower levels of the directory structure contain entries for companies, organisations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

To refer to a file in a subdirectory on your hard disk, you might use something like:

/usr/local/myapp/docs

The forwards slash marks each division in the reference, and the sequence is read from left to right.

The equivalent to the fully qualified file reference in LDAP is the "distinguished name", referred to simply as "dn". An example dn might be:

cn=John Smith,ou=Accounts,o=My Company,c=US

The comma marks each division in the reference, and the sequence is read from right to left. You would read this dn as:

country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith

In the same way as there are no hard rules about how you organise the directory structure of a hard disk, a directory server manager can set up any structure that is meaningful for the purpose. However, there are some conventions that are used. The message is that you can not write code to access a directory server unless you know something about its structure, any more than you can use a database without some knowledge of what is available.

Lots of information about LDAP can be found at

  • Netscape

  • OpenLDAP Project

  • LDAP World

The Netscape SDK contains a helpful Programmer's Guide in HTML format.

Requisitos

You will need to get and compile LDAP client libraries from either the University of Michigan ldap-3.3 package, Netscape Directory SDK 3.0 or OpenLDAP to compile PHP with LDAP support.

Instalação

LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your windows machine. (Ex: C:\WINNT\SYSTEM32, or C:\WINDOWS\SYSTEM). For PHP <= 4.2.0 copy libsasl.dll, for PHP >= 4.3.0 copy libeay32.dll and ssleay32.dll to your SYSTEM folder.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. LDAP configuration options

Name | Default | Changeable
ldap.max_links | "-1" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

LDAP_DEREF_NEVER (integer)

LDAP_DEREF_SEARCHING (integer)

LDAP_DEREF_FINDING (integer)

LDAP_DEREF_ALWAYS (integer)

LDAP_OPT_DEREF (integer)

LDAP_OPT_SIZELIMIT (integer)

LDAP_OPT_TIMELIMIT (integer)

LDAP_OPT_PROTOCOL_VERSION (integer)

LDAP_OPT_ERROR_NUMBER (integer)

LDAP_OPT_REFERRALS (integer)

LDAP_OPT_RESTART (integer)

LDAP_OPT_HOST_NAME (integer)

LDAP_OPT_ERROR_STRING (integer)

LDAP_OPT_MATCHED_DN (integer)

LDAP_OPT_SERVER_CONTROLS (integer)

LDAP_OPT_CLIENT_CONTROLS (integer)

LDAP_OPT_DEBUG_LEVEL (integer)

GSLC_SSL_NO_AUTH (integer)

GSLC_SSL_ONEWAY_AUTH (integer)

GSLC_SSL_TWOWAY_AUTH (integer)

Exemplos

Retrieve information for all entries where the surname starts with "S" from a directory server, displaying an extract with name and email address.

Exemplo 1. LDAP search example

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost");  // must be a valid LDAP server!
echo "connect result is " . $ds . "<br />";

if ($ds) {
    echo "Binding ...";
    $r=ldap_bind($ds);     // this is an "anonymous" bind, typically
                           // read-only access
    echo "Bind result is " . $r . "<br />";

    echo "Searching for (sn=S*) ...";
    // Search surname entry
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*");
    echo "Search result is " . $sr . "<br />";

    echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";

    echo "Getting entries ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Data for " . $info["count"] . " items returned:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn is: " . $info[$i]["dn"] . "<br />";
        echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
        echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
    }

    echo "Closing connection";
    ldap_close($ds);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

Using the PHP LDAP calls

Before you can use the LDAP calls you will need to know ..

  • The name or address of the directory server you will use

  • The "base dn" of the server (the part of the world directory that is held on this server, which could be "o=My Company,c=US")

  • Whether you need a password to access the server (many servers will provide read access for an "anonymous bind" but require a password for anything else)

The typical sequence of LDAP calls you will make in an application will follow this pattern:

ldap_connect() // establish connection to server
|
ldap_bind() // anonymous or authenticated "login"
|
do something like search or update the directory
and display the results
|
ldap_close() // "logout"

Índice
ldap_8859_to_t61 -- Translate 8859 characters to t61 characters
ldap_add -- Add entries to LDAP directory
ldap_bind -- Bind to LDAP directory
ldap_close -- Close link to LDAP server
ldap_compare -- Compare value of attribute found in entry specified with DN
ldap_connect -- Connect to an LDAP server
ldap_count_entries -- Count the number of entries in a search
ldap_delete -- Delete an entry from a directory
ldap_dn2ufn -- Convert DN to User Friendly Naming format
ldap_err2str -- Convert LDAP error number into string error message
ldap_errno -- Return the LDAP error number of the last LDAP command
ldap_error -- Return the LDAP error message of the last LDAP command
ldap_explode_dn -- Splits DN into its component parts
ldap_first_attribute -- Return first attribute
ldap_first_entry -- Return first result id
ldap_first_reference -- Return first reference
ldap_free_result -- Free result memory
ldap_get_attributes -- Get attributes from a search result entry
ldap_get_dn -- Get the DN of a result entry
ldap_get_entries -- Get all result entries
ldap_get_option -- Get the current value for given option
ldap_get_values_len -- Get all binary values from a result entry
ldap_get_values -- Get all values from a result entry
ldap_list -- Single-level search
ldap_mod_add -- Add attribute values to current attributes
ldap_mod_del -- Delete attribute values from current attributes
ldap_mod_replace -- Replace attribute values with new ones
ldap_modify -- Modify an LDAP entry
ldap_next_attribute -- Get the next attribute in result
ldap_next_entry -- Get next result entry
ldap_next_reference -- Get next reference
ldap_parse_reference -- Extract information from reference entry
ldap_parse_result -- Extract information from result
ldap_read -- Read an entry
ldap_rename -- Modify the name of an entry
ldap_search -- Search LDAP tree
ldap_set_option -- Set the value of the given option
ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.
ldap_sort -- Sort LDAP result entries
ldap_start_tls -- Start TLS
ldap_t61_to_8859 -- Translate t61 characters to 8859 characters
ldap_unbind -- Unbind from LDAP directory

Anterior | Principal | Próxima
java_last_exception_get | Acima | ldap_8859_to_t61


ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61 -- Translate 8859 characters to t61 characters

Description

string ldap_8859_to_t61 ( string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
LDAP Functions | Acima | ldap_add


ldap_add

(PHP 3, PHP 4 , PHP 5)

ldap_add -- Add entries to LDAP directory

Description

bool ldap_add ( resource link_identifier, string dn, array entry)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

The ldap_add() function is used to add entries in the LDAP directory. The DN of the entry to be added is specified by dn. Array entry specifies the information about the entry. The values in the entries are indexed by individual attributes. In case of multiple values for an attribute, they are indexed using integers starting with 0.

entry["attribute1"] = value
entry["attribute2"][0] = value1
entry["attribute2"][1] = value2

Exemplo 1. Complete example with authenticated bind

<?php
$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $r=ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // prepare data
    $info["cn"]="John Jones";
    $info["sn"]="Jones";
    $info["mail"]="jonj@example.com";
    $info["objectclass"]="person";

    // add data to directory
    $r=ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>

Anterior | Principal | Próxima
ldap_8859_to_t61 | Acima | ldap_bind


ldap_bind

(PHP 3, PHP 4 , PHP 5)

ldap_bind -- Bind to LDAP directory

Description

bool ldap_bind ( resource link_identifier [, string bind_rdn [, string bind_password]])

Binds to the LDAP directory with specified RDN and password. Retorna TRUE em caso de sucesso ou FALSE em falhas.

ldap_bind() does a bind operation on the directory. bind_rdn and bind_password are optional. If not specified, anonymous bind is attempted.

Exemplo 1. Using LDAP Bind

<?php

// using ldap bind
$ldaprdn  = 'uname';     // ldap rdn or dn
$ldappass = 'password';  // associated password

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }

}

?>

Exemplo 2. Using LDAP Bind Anonymously

<?php

//using ldap bind anonymously

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding anonymously
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "LDAP bind anonymous successful...";
    } else {
        echo "LDAP bind anonymous failed...";
    }

}

?>

Anterior | Principal | Próxima
ldap_add | Acima | ldap_close


ldap_close

(PHP 3, PHP 4 , PHP 5)

ldap_close -- Close link to LDAP server

Description

bool ldap_close ( resource link_identifier)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

ldap_close() closes the link to the LDAP server that's associated with the specified link_identifier.

This call is internally identical to ldap_unbind(). The LDAP API uses the call ldap_unbind(), so perhaps you should use this in preference to ldap_close().

Nota: This function is an alias of ldap_unbind().

Anterior | Principal | Próxima
ldap_bind | Acima | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare -- Compare value of attribute found in entry specified with DN

Description

bool ldap_compare ( resource link_identifier, string dn, string attribute, string value)

Returns TRUE if value matches otherwise returns FALSE. Returns -1 on error.

ldap_compare() is used to compare value of attribute to value of same attribute in LDAP directory entry specified with dn.

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Exemplo 1. Complete example of password check

<?php

$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {

    // bind
    if (ldap_bind($ds)) {

        // prepare data
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // compare value
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Password correct.";
        } elseif ($r === false) {
            echo "Wrong guess! Password incorrect.";
        }

    } else {
        echo "Unable to bind to LDAP server.";
    }

    ldap_close($ds);

} else {
    echo "Unable to connect to LDAP server.";
}
?>

Atenção

ldap_compare() can NOT be used to compare BINARY values!

Nota: This function was added in 4.0.2.

Anterior | Principal | Próxima
ldap_close | Acima | ldap_connect


ldap_connect

(PHP 3, PHP 4 , PHP 5)

ldap_connect -- Connect to an LDAP server

Description

resource ldap_connect ( [string hostname [, int port]])

Returns a positive LDAP link identifier on success, or FALSE on error.

ldap_connect() establishes a connection to a LDAP server on a specified hostname and port. Both the arguments are optional. If no arguments are specified then the link identifier of the already opened link will be returned. If only hostname is specified, then the port defaults to 389.

If you are using OpenLDAP 2.x.x you can specify a URL instead of the hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL support, configure PHP with SSL, and use ldaps://hostname/ as host parameter. The port parameter is not used when using URLs.

Nota: URL and SSL support were added in 4.0.4.

Exemplo 1. Example of connecting to LDAP server.

<?php

// LDAP variables
$ldaphost = "ldap.example.com";  // your ldap servers
$ldapport = 389;                 // your ldap server's port number

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");

?>

Exemplo 2. Example of connecting securely to LDAP server.

<?php

// make sure your host is the correct one
// that you issued your secure certificate to
$ldaphost = "ldaps://ldap.example.com/";

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Could not connect to {$ldaphost}");

?>

Anterior | Principal | Próxima
ldap_compare | Acima | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4 , PHP 5)

ldap_count_entries -- Count the number of entries in a search

Description

int ldap_count_entries ( resource link_identifier, resource result_identifier)

Returns number of entries in the result or FALSE on error.

ldap_count_entries() returns the number of entries stored in the result of previous search operations. result_identifier identifies the internal ldap result.

Anterior | Principal | Próxima
ldap_connect | Acima | ldap_delete


ldap_delete

(PHP 3, PHP 4 , PHP 5)

ldap_delete -- Delete an entry from a directory

Description

bool ldap_delete ( resource link_identifier, string dn)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

ldap_delete() function delete a particular entry in LDAP directory specified by dn.

Anterior | Principal | Próxima
ldap_count_entries | Acima | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4 , PHP 5)

ldap_dn2ufn -- Convert DN to User Friendly Naming format

Description

string ldap_dn2ufn ( string dn)

ldap_dn2ufn() function is used to turn a DN, specified by dn, into a more user-friendly form, stripping off type names.

Anterior | Principal | Próxima
ldap_delete | Acima | ldap_err2str


ldap_err2str

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ldap_err2str -- Convert LDAP error number into string error message

Description

string ldap_err2str ( int errno)

Returns string error message.

This function returns the string error message explaining the error number errno. While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

See also ldap_errno() and ldap_error().

Exemplo 1. Enumerating all LDAP error messages

<?php
  for ($i=0; $i<100; $i++) {
    printf("Error $i: %s<br />\n", ldap_err2str($i));
  }
?>

Anterior | Principal | Próxima
ldap_dn2ufn | Acima | ldap_errno


ldap_errno

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ldap_errno -- Return the LDAP error number of the last LDAP command

Description

int ldap_errno ( resource link_identifier)

Return the LDAP error number of the last LDAP command for this link.

This function returns the standardized error number returned by the last LDAP command for the given link_identifier. This number can be converted into a textual error message using ldap_err2str().

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

Exemplo 1. Generating and catching an error

<?php
// This example contains an error, which we will catch.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// syntax error in filter expression (errno 87),
// must be "objectclass=*" to work.
$res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
    echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
    echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
    die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " matching entries.<br />\n";
?>

See also ldap_err2str() and ldap_error().

Anterior | Principal | Próxima
ldap_err2str | Acima | ldap_error


ldap_error

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ldap_error -- Return the LDAP error message of the last LDAP command

Description

string ldap_error ( resource link_identifier)

Returns string error message.

This function returns the string error message explaining the error generated by the last LDAP command for the given link_identifier While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

See also ldap_err2str() and ldap_errno().

Anterior | Principal | Próxima
ldap_errno | Acima | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4 , PHP 5)

ldap_explode_dn -- Splits DN into its component parts

Description

array ldap_explode_dn ( string dn, int with_attrib)

ldap_explode_dn() function is used to split the DN returned by ldap_get_dn() and breaks it up into its component parts. Each part is known as Relative Distinguished Name, or RDN. ldap_explode_dn() returns an array of all those components. with_attrib is used to request if the RDNs are returned with only values or their attributes as well. To get RDNs with the attributes (i.e. in attribute=value format) set with_attrib to 0 and to get only values set it to 1.

Anterior | Principal | Próxima
ldap_error | Acima | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4 , PHP 5)

ldap_first_attribute -- Return first attribute

Description

string ldap_first_attribute ( resource link_identifier, resource result_entry_identifier, int ber_identifier)

Returns the first attribute in the entry on success and FALSE on error.

Similar to reading entries, attributes are also read one by one from a particular entry. ldap_first_attribute() returns the first attribute in the entry pointed by the result_entry_identifier. Remaining attributes are retrieved by calling ldap_next_attribute() successively. ber_identifier is the identifier to internal memory location pointer. It is passed by reference. The same ber_identifier is passed to the ldap_next_attribute() function, which modifies that pointer.

See also ldap_get_attributes()

Anterior | Principal | Próxima
ldap_explode_dn | Acima | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4 , PHP 5)

ldap_first_entry -- Return first result id

Description

resource ldap_first_entry ( resource link_identifier, resource result_identifier)

Returns the result entry identifier for the first entry on success and FALSE on error.

Entries in the LDAP result are read sequentially using the ldap_first_entry() and ldap_next_entry() functions. ldap_first_entry() returns the entry identifier for first entry in the result. This entry identifier is then supplied to ldap_next_entry() routine to get successive entries from the result.

See also ldap_get_entries().

Anterior | Principal | Próxima
ldap_first_attribute | Acima | ldap_first_reference


ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_reference -- Return first reference

Description

resource ldap_first_reference ( resource link, resource result)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_first_entry | Acima | ldap_free_result


ldap_free_result

(PHP 3, PHP 4 , PHP 5)

ldap_free_result -- Free result memory

Description

bool ldap_free_result ( resource result_identifier)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

ldap_free_result() frees up the memory allocated internally to store the result and pointed by the result_identifier. All result memory will be automatically freed when the script terminates.

Typically all the memory allocated for the ldap result gets freed at the end of the script. In case the script is making successive searches which return large result sets, ldap_free_result() could be called to keep the runtime memory usage by the script low.

Anterior | Principal | Próxima
ldap_first_reference | Acima | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4 , PHP 5)

ldap_get_attributes -- Get attributes from a search result entry

Description

array ldap_get_attributes ( resource link_identifier, resource result_entry_identifier)

Returns a complete entry information in a multi-dimensional array on success and FALSE on error.

ldap_get_attributes() function is used to simplify reading the attributes and values from an entry in the search result. The return value is a multi-dimensional array of attributes and values.

Having located a specific entry in the directory, you can find out what information is held for that entry by using this call. You would use this call for an application which "browses" directory entries and/or where you do not know the structure of the directory entries. In many applications you will be searching for a specific attribute such as an email address or a surname, and won't care what other data is held.

return_value["count"] = number of attributes in the entry
return_value[0] = first attribute
return_value[n] = nth attribute

return_value["attribute"]["count"] = number of values for attribute
return_value["attribute"][0] = first value of the attribute
return_value["attribute"][i] = (i+1)th value of the attribute

Exemplo 1. Show the list of attributes held for a particular directory entry

<?php
// $ds is the link identifier for the directory

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributes held for this entry:<p>";

for ($i=0; $i<$attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

See also ldap_first_attribute() and ldap_next_attribute().

Anterior | Principal | Próxima
ldap_free_result | Acima | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4 , PHP 5)

ldap_get_dn -- Get the DN of a result entry

Description

string ldap_get_dn ( resource link_identifier, resource result_entry_identifier)

Returns the DN of the result entry and FALSE on error.

ldap_get_dn() function is used to find out the DN of an entry in the result.

Anterior | Principal | Próxima
ldap_get_attributes | Acima | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4 , PHP 5)

ldap_get_entries -- Get all result entries

Description

array ldap_get_entries ( resource link_identifier, resource result_identifier)

Returns a complete result information in a multi-dimensional array on success and FALSE on error.

ldap_get_entries() function is used to simplify reading multiple entries from the result, specified with result_identifier, and then reading the attributes and multiple values. The entire information is returned by one function call in a multi-dimensional array. The structure of the array is as follows.

The attribute index is converted to lowercase. (Attributes are case-insensitive for directory servers, but not when used as array indices.)

return_value["count"] = number of entries in the result
return_value[0] : refers to the details of first entry

return_value[i]["dn"] = DN of the ith entry in the result

return_value[i]["count"] = number of attributes in ith entry
return_value[i][j] = jth attribute in the ith entry in the result

return_value[i]["attribute"]["count"] = number of values for
attribute in ith entry
return_value[i]["attribute"][j] = jth value of attribute in ith entry

See also ldap_first_entry() and ldap_next_entry()

Anterior | Principal | Próxima
ldap_get_dn | Acima | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_option -- Get the current value for given option

Description

bool ldap_get_option ( resource link_identifier, int option, mixed retval)

Sets retval to the value of the specified option. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN. These are described in draft-ietf-ldapext-ldap-c-api-xx.txt

Nota: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4

Exemplo 1. Check protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Using protocol version $version\n";
} else {
    echo "Unable to determine protocol version\n";
}
?>

See also ldap_set_option().

Anterior | Principal | Próxima
ldap_get_entries | Acima | ldap_get_values_len


ldap_get_values_len

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ldap_get_values_len -- Get all binary values from a result entry

Description

array ldap_get_values_len ( resource link_identifier, resource result_entry_identifier, string attribute)

Returns an array of values for the attribute on success and FALSE on error.

ldap_get_values_len() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

This function is used exactly like ldap_get_values() except that it handles binary data and not string data.

Nota: This function was added in 4.0.

Anterior | Principal | Próxima
ldap_get_option | Acima | ldap_get_values


ldap_get_values

(PHP 3, PHP 4 , PHP 5)

ldap_get_values -- Get all values from a result entry

Description

array ldap_get_values ( resource link_identifier, resource result_entry_identifier, string attribute)

Returns an array of values for the attribute on success and FALSE on error.

ldap_get_values() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

This call needs a result_entry_identifier, so needs to be preceded by one of the ldap search calls and one of the calls to get an individual entry.

You application will either be hard coded to look for certain attributes (such as "surname" or "mail") or you will have to use the ldap_get_attributes() call to work out what attributes exist for a given entry.

LDAP allows more than one entry for an attribute, so it can, for example, store a number of email addresses for one person's directory entry all labeled with the attribute "mail"

return_value["count"] = number of values for attribute
return_value[0] = first value of attribute
return_value[i] = ith value of attribute

Exemplo 1. List all values of the "mail" attribute for a directory entry

<?php
// $ds is a valid link identifier for a directory server

// $sr is a valid search result from a prior call to
//     one of the ldap directory search calls

// $entry is a valid entry identifier from a prior call to
//        one of the calls that returns a directory entry

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " email addresses for this entry.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Anterior | Principal | Próxima
ldap_get_values_len | Acima | ldap_list


ldap_list

(PHP 3, PHP 4 , PHP 5)

ldap_list -- Single-level search

Description

resource ldap_list ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or FALSE on error.

ldap_list() performs the search for a specified filter on the directory with the scope LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL means that the search should only return information that is at the level immediately below the base_dn given in the call. (Equivalent to typing "ls" and getting a list of files and folders in the current working directory.)

This call takes 5 optional parameters. See ldap_search() notes.

Nota: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

Exemplo 1. Produce a list of all organizational units of an organization

// $ds is a valid link identifier for a directory server

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr=ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i<$info["count"]; $i++) {
    echo $info[$i]["ou"][0] ;
}

Nota: From 4.0.5 on it's also possible to do parallel searches. See ldap_search() for details.

Anterior | Principal | Próxima
ldap_get_values | Acima | ldap_mod_add


ldap_mod_add

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_add -- Add attribute values to current attributes

Description

bool ldap_mod_add ( resource link_identifier, string dn, array entry)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function adds attribute(s) to the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level additions are done by the ldap_add() function.

Anterior | Principal | Próxima
ldap_list | Acima | ldap_mod_del


ldap_mod_del

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_del -- Delete attribute values from current attributes

Description

bool ldap_mod_del ( resource link_identifier, string dn, array entry)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function removes attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level deletions are done by the ldap_delete() function.

Anterior | Principal | Próxima
ldap_mod_add | Acima | ldap_mod_replace


ldap_mod_replace

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_replace -- Replace attribute values with new ones

Description

bool ldap_mod_replace ( resource link_identifier, string dn, array entry)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function replaces attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level modifications are done by the ldap_modify() function.

Anterior | Principal | Próxima
ldap_mod_del | Acima | ldap_modify


ldap_modify

(PHP 3, PHP 4 , PHP 5)

ldap_modify -- Modify an LDAP entry

Description

bool ldap_modify ( resource link_identifier, string dn, array entry)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

ldap_modify() function is used to modify the existing entries in the LDAP directory. The structure of the entry is same as in ldap_add().

Anterior | Principal | Próxima
ldap_mod_replace | Acima | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4 , PHP 5)

ldap_next_attribute -- Get the next attribute in result

Description

string ldap_next_attribute ( resource link_identifier, resource result_entry_identifier, resource ber_identifier)

Returns the next attribute in an entry on success and FALSE on error.

ldap_next_attribute() is called to retrieve the attributes in an entry. The internal state of the pointer is maintained by the ber_identifier. It is passed by reference to the function. The first call to ldap_next_attribute() is made with the result_entry_identifier returned from ldap_first_attribute().

See also ldap_get_attributes()

Anterior | Principal | Próxima
ldap_modify | Acima | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4 , PHP 5)

ldap_next_entry -- Get next result entry

Description

resource ldap_next_entry ( resource link_identifier, resource result_entry_identifier)

Returns entry identifier for the next entry in the result whose entries are being read starting with ldap_first_entry(). If there are no more entries in the result then it returns FALSE.

ldap_next_entry() function is used to retrieve the entries stored in the result. Successive calls to the ldap_next_entry() return entries one by one till there are no more entries. The first call to ldap_next_entry() is made after the call to ldap_first_entry() with the result_entry_identifier as returned from the ldap_first_entry().

See also ldap_get_entries()

Anterior | Principal | Próxima
ldap_next_attribute | Acima | ldap_next_reference


ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_reference -- Get next reference

Description

resource ldap_next_reference ( resource link, resource entry)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_next_entry | Acima | ldap_parse_reference


ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_reference -- Extract information from reference entry

Description

bool ldap_parse_reference ( resource link, resource entry, array referrals)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_next_reference | Acima | ldap_parse_result


ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_result -- Extract information from result

Description

bool ldap_parse_result ( resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_parse_reference | Acima | ldap_read


ldap_read

(PHP 3, PHP 4 , PHP 5)

ldap_read -- Read an entry

Description

resource ldap_read ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or FALSE on error.

ldap_read() performs the search for a specified filter on the directory with the scope LDAP_SCOPE_BASE. So it is equivalent to reading an entry from the directory.

An empty filter is not allowed. If you want to retrieve absolutely all information for this entry, use a filter of "objectClass=*". If you know which entry types are used on the directory server, you might use an appropriate filter such as "objectClass=inetOrgPerson".

This call takes 5 optional parameters. See ldap_search() notes.

Nota: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

From 4.0.5 on it's also possible to do parallel searches. See ldap_search() for details.

Anterior | Principal | Próxima
ldap_parse_result | Acima | ldap_rename


ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_rename -- Modify the name of an entry

Description

bool ldap_rename ( resource link_identifier, string dn, string newrdn, string newparent, bool deleteoldrdn)

The entry specified by dn is renamed/moved. The new RDN is specified by newrdn and the new parent/superior entry is specified by newparent. If the parameter deleteoldrdn is TRUE the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: This function currently only works with LDAPv3. You may have to use ldap_set_option() prior to binding to use LDAPv3. This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.5.

Anterior | Principal | Próxima
ldap_read | Acima | ldap_search


ldap_search

(PHP 3, PHP 4 , PHP 5)

ldap_search -- Search LDAP tree

Description

resource ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or FALSE on error.

ldap_search() performs the search for a specified filter on the directory with the scope of LDAP_SCOPE_SUBTREE. This is equivalent to searching the entire directory. base_dn specifies the base DN for the directory.

There is an optional fourth parameter, that can be added to restrict the attributes and values returned by the server to just those required. This is much more efficient than the default action (which is to return all attributes and their associated values). The use of the fourth parameter should therefore be considered good practice.

The fourth parameter is a standard PHP string array of the required attributes, e.g. array("mail", "sn", "cn") Note that the "dn" is always returned irrespective of which attributes types are requested.

Note too that some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This occurs also if the sixth parameter sizelimit has been used to limit the count of fetched entries.

The fifth parameter attrsonly should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

With the sixth parameter sizelimit it is possible to limit the count of entries fetched. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset sizelimit. You can set it lower though.

The seventh parameter timelimit sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset timelimit. You can set it lower though.

The eighth parameter deref specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.

  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.

  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.

  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

Nota: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

The search filter can be simple or advanced, using boolean operators in the format described in the LDAP documentation (see the Netscape Directory SDK for full information on filters).

The example below retrieves the organizational unit, surname, given name and email address for all people in "My Company" where the surname or given name contains the substring $person. This example uses a boolean filter to tell the server to look for information in more than one attribute.

Exemplo 1. LDAP search

<?php
// $ds is a valid link identifier for a directory server

// $person is all or part of a person's name, eg "Jo"

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>

From 4.0.5 on it's also possible to do parallel searches. To do this you use an array of link identifiers, rather than a single identifier, as the first argument. If you don't want the same base DN and the same filter for all the searches, you can also use an array of base DNs and/or an array of filters. Those arrays must be of the same size as the link identifier array since the first entries of the arrays are used for one search, the second entries are used for another, and so on. When doing parallel searches an array of search result identifiers is returned, except in case of error, then the entry corresponding to the search will be FALSE. This is very much like the value normally returned, except that a result identifier is always returned when a search was made. There are some rare cases where the normal search returns FALSE while the parallel search returns an identifier.

Anterior | Principal | Próxima
ldap_rename | Acima | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option -- Set the value of the given option

Description

bool ldap_set_option ( resource link_identifier, int option, mixed newval)

Sets the value of the specified option to be newval. Retorna TRUE em caso de sucesso ou FALSE em falhas. on error.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN, LDAP_OPT_SERVER_CONTROLS, LDAP_OPT_CLIENT_CONTROLS. Here's a brief description, see draft-ietf-ldapext-ldap-c-api-xx.txt for details.

The options LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION and LDAP_OPT_ERROR_NUMBER have integer value, LDAP_OPT_REFERRALS and LDAP_OPT_RESTART have boolean value, and the options LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING and LDAP_OPT_MATCHED_DN have string value. The first example illustrates their use. The options LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of controls, this means that the value must be an array of controls. A control consists of an oid identifying the control, an optional value, and an optional flag for criticality. In PHP a control is given by an array containing an element with the key oid and string value, and two optional elements. The optional elements are key value with string value and key iscritical with boolean value. iscritical defaults to FALSE if not supplied. See also the second example below.

Nota: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4.

Exemplo 1. Set protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Using LDAPv3";
} else {
    echo "Failed to set protocol version to 3";
}
?>

Exemplo 2. Set server controls

<?php
// $ds is a valid link identifier for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
    echo "Failed to set server controls";
?>

See also ldap_get_option().

Anterior | Principal | Próxima
ldap_search | Acima | ldap_set_rebind_proc


ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.

Description

bool ldap_set_rebind_proc ( resource link, string callback)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_set_option | Acima | ldap_sort


ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sort -- Sort LDAP result entries

Description

bool ldap_sort ( resource link, resource result, string sortfilter)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_set_rebind_proc | Acima | ldap_start_tls


ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tls -- Start TLS

Description

bool ldap_start_tls ( resource link)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_sort | Acima | ldap_t61_to_8859


ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859 -- Translate t61 characters to 8859 characters

Description

string ldap_t61_to_8859 ( string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ldap_start_tls | Acima | ldap_unbind


ldap_unbind

(PHP 3, PHP 4 , PHP 5)

ldap_unbind -- Unbind from LDAP directory

Description

bool ldap_unbind ( resource link_identifier)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

ldap_unbind() function unbinds from the LDAP directory.

Anterior | Principal | Próxima
ldap_t61_to_8859 | Acima | LZF Functions


LZF Functions

Manual do PHP
Anterior Próxima

XLIX. LZF Functions

Introdução

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation.

Instalação

LZF is currently available through PECL http://pecl.php.net/package/lzf.

If PEAR is available on your *nix-like system you can use the pear installer to install the LZF extension, by the following command: pear -v install lzf.

You can always download the tar.gz package and install LZF by hand:

Exemplo 1. LZF install by hand

gunzip lzf-xxx.tgz
tar -xvf lzf-xxx.tar
cd lzf-xxx
phpize
./configure && make && make install

You can pass --enable-lzf-better-compression to optimize LZF for space rather then speed.

Windows users can download the extension dll php_lzf.dll from http://snaps.php.net/win32/PECL_STABLE/.

Índice
lzf_compress -- LZF compression.
lzf_decompress -- LZF decompression.
lzf_optimized_for -- Determines what LZF extension was optimized for.

Anterior | Principal | Próxima
ldap_unbind | Acima | lzf_compress


lzf_compress

(no version information, might be only in CVS)

lzf_compress -- LZF compression.

Description

string lzf_compress ( string arg)

lzf_compress() compresses data in arg parameter.

Returns compressed data or FALSE if an error occured.

See also lzf_decompress().

Anterior | Principal | Próxima
LZF Functions | Acima | lzf_decompress


lzf_decompress

(no version information, might be only in CVS)

lzf_decompress -- LZF decompression.

Description

string lzf_decompress ( string arg)

lzf_decompress() decompresses data from parameter arg.

Returns decompressed data or FALSE if an error occured.

See also lzf_compress().

Anterior | Principal | Próxima
lzf_compress | Acima | lzf_optimized_for


lzf_optimized_for

(no version information, might be only in CVS)

lzf_optimized_for -- Determines what LZF extension was optimized for.

Description

int lzf_optimized_for ( void )

Returns 1 if LZF was optimized for speed, 0 for compression.

Anterior | Principal | Próxima
lzf_decompress | Acima | Mail


Mail

Manual do PHP
Anterior Próxima

L. Mail

Introdução

A função mail() te permite enviar email.

Requisitos

Para as funções de E-mail estarem disponíveis, o PHP deve ter acesso ao binário sendmail de seu sistema durante a compilação. Se você utiliza um outro programa de email, tal como qmail ou postfix, certifique-se de usar os "wrappers" (envelopes) de sendmail apropriados que vêm com eles. O PHP vai procurar primeiro pelo sendmail em seu PATH, e então nos seguintes: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. É altamente recomendado ter o sendmail deisponível de seu PATH. Também, osuário que compilou o PHP deve ter permissão para acessar o binário de sendmail.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração de Mail

Name | Default | Changeable
SMTP | "localhost" | PHP_INI_ALL
smtp_port | "25" | PHP_INI_ALL
sendmail_from | NULL | PHP_INI_ALL
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM
Para mais detalhes e definições das constantes do PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

SMTP string

Usado dentro do windows apenas: nome DNS ou endereço IP do servidor SMTP que o PHP usaria para emails enviados com a função mail().

smtp_port int

Usado dentro do windows apenas: Número da porta para conectar ao servidor especificado com a configuração do SMTPquando enviando emai com mail(); por definição é 25. Disponível apenas a partir do PHP 4.3.0.

sendmail_from string

Qual "From:" endereço de email deveria ser usado em emails enviados do PHP dentro do Windows.

sendmail_path string

Onde o programa de sendmailpode ser encontrado, normalmente /usr/sbin/sendmail ou /usr/lib/sendmail. configure (configura) uma tentativa correta de localizar ele para você e definir um padrão, mas se ele falha, você pode definir ele aqui.

Sistemas que não usam sendmail deveriam definir esta diretiva para "sendmail wrapper/replacement" que seus sistemas de email oferecem, se algum. Por exemplo, Qmail usuários podem normalmente, defini-lo para /var/qmail/bin/sendmail ou /var/qmail/bin/qmail-inject.

qmail-injectnão requer nenhuma opção para processar o email corretamente.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
ezmlm_hash -- Calcula o valor do hash necessário para EZMLM
mail -- Envia email

Anterior | Principal | Próxima
lzf_optimized_for | Acima | ezmlm_hash


ezmlm_hash

(PHP 3>= 3.0.17, PHP 4 >= 4.0.2, PHP 5)

ezmlm_hash -- Calcula o valor do hash necessário para EZMLM

Descrição

int ezmlm_hash ( string addr)

ezmlm_hash() calcula valor do hash necessário quando mantendo listas de email EZMLM num banco de dados MySQL .

Exemplo 1. Calculando o hash e inscrevendo um usuário

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // using PHPLIB db interface

?>

Anterior | Principal | Próxima
Mail | Acima | mail


mail

(PHP 3, PHP 4 , PHP 5)

mail -- Envia email

Descrição

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

mail() automaticamente envia a mensagem especificada em message para o destinatário especificado em to. Destinatários múltiplos podem podem ser especificados colocando uma vírgula entre cada endereço em to. Email com anexos e tipos de conteúdo especiais podem ser enviados usando esta função. Esta é completada via MIME-encoding- para mais informações, veja o artigo do Zend ou o PEAR Mime Classes.

Os seguintes RFC's pode ser úteis: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048, e RFC 2049.

mail()devolve TRUE se o email foi enviado com sucesso, FALSE se não foi.

Atenção

A implentação do Windows de mail() difere bastante da implentação Unix. Primeiro, ele não usa um binary local para compor mensagens mas apenas opera com sockets diretos o que significa que uma MTA é necessária monitorando um socket de rede (que pode ser ou o localhost ou uma máquina remota). Segundo, os cabeçalhos personalizados como From:, Cc:, Bcc: e Date: são not interpretados por MTA em primeiro lugar, mas são analizados pelo PHP. PHP < 4.3 somente elementos suportados Cc: elemento de cabeçalho (e foi caso-sensitivo). PHP >= 4.3 suporta todos os elementos de cabeçalho mensionados e não mais caso-sensitivo.

Exemplo 1. Enviando email.

<?php
mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
?>

Se uma string como quarto argumento é passada, esta string é insrida no fim do cabeçalho. É usado tipicamente para adicionar cabeçalhos extras. Cabeçalhos extras múltiplos são separados com sinal de retorno e novalinha.

Nota: Você deve utilizar \r\n para separar headers, embora alguns agentes de transferência de email Unix podem trabalhar com uma simples "newline" (nova linha) apenas (\n).

Exemplo 2. Enviando email com cabeçalhos extras.

<?php
mail("nobody@example.com", "the subject", $message,
     "From: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
     "Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
     "X-Mailer: PHP/" . phpversion());
?>

O parâmetro additional_parameters pode ser usado para passar um parâmetro adicional para o programa configurado para usar quando enviar email usando a definição de configuração sendmail_path. Por exemplo, isto pode ser usado para definir o endereço do envelope remetente quando usar sendmail com a opção de configuração -f. Você pode precisar adicionar o usuário que seu servidor web executa como para sua configuração de sendmail para evitar que um cabeçalho 'X-Warning' seja adicionado á mensagem quando você define o envelope remetente usando este método.

Exemplo 3. Enviando email com cabeçalhos extras e definindo um parâmetro de uma linha de comando adicional.

<?php
mail("nobody@example.com", "the subject", $message,
     "From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
?>

Nota: Este quinto parâmetro foi adicionado no PHP 4.0.5. Desde o PHP 4.2.3 este parâmetro está desabilitado em safe_mode e a função mail() irá expor uma mensagem de aviso e devolverá FALSE se você estiver tentando usá-la.

Você pode utilizar strings simples utilizando técnicas para construir mensagens complexas.

Exemplo 4. Enviando email complexo.

<?php
/* Destinatário */
$to  = "mary@example.com" . ", " ; // Observe a vírgula
$to .= "kelly@example.com";

/* assunto */
$subject = "Birthday Reminders for August";

/* mensagem */
$message = '
<html>
<head>
 <title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
 <tr>
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
 </tr>
 <tr>
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
 </tr>
 <tr>
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
 </tr>
</table>
</body>
</html>
';

/* Atenção se você pretende inserir numa variável uma mensagem html mais
 complexa do que essa sem precisar escapar os carateres
 necessários pode ser feito o uso da sintaxe heredoc, consulte tipos-string-sintaxe-heredoc */

/* Para enviar email HTML, você precisa definir o header Content-type. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* headers adicionais */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* Enviar o email */
mail($to, $subject, $message, $headers);
?>

Nota: Certifique-se que você não tem nenhum caractere novalinha em to ou subject, ou o email não será enviado corretamente.

Nota: O parâmetro tonão deveria ser um endereço na forma de "Algo <alguem@example.com>". O comando de email poderia não analisar isso adequadamente enquanto se comunica com o MTA (Particularmente dentro do Windows).

Veja também imap_mail().

Anterior | Principal | Próxima
ezmlm_hash | Acima | mailparse Functions


mailparse Functions

Manual do PHP
Anterior Próxima

LI. mailparse Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

This extension has been moved from PHP as of PHP 4.2.0 and now mailparse lives in PECL.

Instalação

These functions are only available if PHP was configured with --enable-mailparse.

Índice
mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able
mailparse_msg_create -- Returns a handle that can be used to parse a message
mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding
mailparse_msg_extract_part -- Extracts/decodes a message section. If callbackfunc is not specified, the contents will be sent to "stdout"
mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()
mailparse_msg_get_part_data -- Returns an associative array of info about the message
mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage
mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message
mailparse_msg_parse_file -- Parse file and return a resource representing the structure
mailparse_msg_parse -- Incrementally parse data into buffer
mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data
mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp
mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file. Returns an array listing filename information

Anterior | Principal | Próxima
mail | Acima | mailparse_determine_best_xfer_encoding


mailparse_determine_best_xfer_encoding

(4.1.0 - 4.1.2 only)

mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able

Description

int mailparse_determine_best_xfer_encoding ( resource fp)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse Functions | Acima | mailparse_msg_create


mailparse_msg_create

(4.1.0 - 4.1.2 only)

mailparse_msg_create -- Returns a handle that can be used to parse a message

Description

int mailparse_msg_create ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_determine_best_xfer_encoding | Acima | mailparse_msg_extract_part_file


mailparse_msg_extract_part_file

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding

Description

string mailparse_msg_extract_part_file ( resource rfc2045, string filename [, string callbackfunc])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_create | Acima | mailparse_msg_extract_part


mailparse_msg_extract_part

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part -- Extracts/decodes a message section. If callbackfunc is not specified, the contents will be sent to "stdout"

Description

void mailparse_msg_extract_part ( resource rfc2045, string msgbody [, string callbackfunc])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_extract_part_file | Acima | mailparse_msg_free


mailparse_msg_free

(4.1.0 - 4.1.2 only)

mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()

Description

void mailparse_msg_free ( resource rfc2045buf)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_extract_part | Acima | mailparse_msg_get_part_data


mailparse_msg_get_part_data

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part_data -- Returns an associative array of info about the message

Description

array mailparse_msg_get_part_data ( resource rfc2045)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_free | Acima | mailparse_msg_get_part


mailparse_msg_get_part

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage

Description

int mailparse_msg_get_part ( resource rfc2045, string mimesection)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_get_part_data | Acima | mailparse_msg_get_structure


mailparse_msg_get_structure

(4.1.0 - 4.1.2 only)

mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message

Description

array mailparse_msg_get_structure ( resource rfc2045)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_get_part | Acima | mailparse_msg_parse_file


mailparse_msg_parse_file

(4.1.0 - 4.1.2 only)

mailparse_msg_parse_file -- Parse file and return a resource representing the structure

Description

resource mailparse_msg_parse_file ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_get_structure | Acima | mailparse_msg_parse


mailparse_msg_parse

(4.1.0 - 4.1.2 only)

mailparse_msg_parse -- Incrementally parse data into buffer

Description

void mailparse_msg_parse ( resource rfc2045buf, string data)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_parse_file | Acima | mailparse_rfc822_parse_addresses


mailparse_rfc822_parse_addresses

(4.1.0 - 4.1.2 only)

mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data

Description

array mailparse_rfc822_parse_addresses ( string addresses)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_msg_parse | Acima | mailparse_stream_encode


mailparse_stream_encode

(4.1.0 - 4.1.2 only)

mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp

Description

bool mailparse_stream_encode ( resource sourcefp, resource destfp, string encoding)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_rfc822_parse_addresses | Acima | mailparse_uudecode_all


mailparse_uudecode_all

(no version information, might be only in CVS)

mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file. Returns an array listing filename information

Description

array mailparse_uudecode_all ( resource fp)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mailparse_stream_encode | Acima | Matemática e Trigonometria


Matemática e Trigonometria

Manual do PHP
Anterior Próxima

LII. Matemática e Trigonometria

Introdução

Estas funções matemáticas somente suportam valores dentro do tamanho integer and float do seu computador. (estes correspondem atualmente aos tipos do C long e double) Se você precisa manipular números maiores, procure funções de matemática com precisão arbitrária.

Veja também a seção do manual sobre operadores aritméticos.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As constantes listadas abaixo estão sempre disponíveis como parte do núcleo do PHP.

Tabela 1. Constantes matemáticas

Constante | Valor | Descrição
M_PI | 3.14159265358979323846 | Pi
M_E | 2.7182818284590452354 | e
M_LOG2E | 1.4426950408889634074 | log_2 e
M_LOG10E | 0.43429448190325182765 | log_10 e
M_LN2 | 0.69314718055994530942 | log_e 2
M_LN10 | 2.30258509299404568402 | log_e 10
M_PI_2 | 1.57079632679489661923 | pi/2
M_PI_4 | 0.78539816339744830962 | pi/4
M_1_PI | 0.31830988618379067154 | 1/pi
M_2_PI | 0.63661977236758134308 | 2/pi
M_SQRTPI | 1.77245385090551602729 | raiz_quadrada(pi) [4.0.2]
M_2_SQRTPI | 1.12837916709551257390 | 2/raiz_quadrada(pi)
M_SQRT2 | 1.41421356237309504880 | raiz_quadrada(2)
M_SQRT3 | 1.73205080756887729352 | raiz_quadrada(3) [4.0.2]
M_SQRT1_2 | 0.70710678118654752440 | 1/raiz_quadrada(2)
M_LNPI | 1.14472988584940017414 | log_e(pi) [4.0.2]
M_EULER | 0.57721566490153286061 | Constante de Euler [4.0.2]
Somente M_PI está disponível nas versões do PHP anteriores a 4.0.0, inclusive. Todas as outras constantes foram disponibilizadas a partir da 4.0.0. Constantes marcadas com [4.0.2] foram acrescentadas no PHP 4.0.2.

Índice
abs -- Valor absoluto
acos -- Cosseno Inverso (arco cosseno)
acosh -- Coseno Hiperbólico Inverso
asin -- Seno Inverso (arco seno)
asinh -- Seno Hiperbólico Inverso
atan2 -- Tangente inversa de duas variáveis
atan -- Tangente Inversa (arco tangente)
atanh -- Tangente hiperbólica inversa
base_convert -- Converte um número entre bases arbitrárias
bindec -- Binário para decimal
ceil -- Arredonda frações para cima
cos -- Coseno
cosh -- Coseno hiperbólico
decbin -- Decimal para binário
dechex -- Decimal para hexadecimal
decoct -- Decimal para octal
deg2rad -- Converte o número em graus ao equivalente em radianos
exp -- Calcula o expoente de e (Neperiano ou base logarítmica natural)
expm1 -- Retorna exp(numero) - 1, computado de forma que é preciso mesmo quando o valor do número é perto de zero.
floor -- Arredonda frações para baixo
fmod -- Returns the floating point remainder (modulo) of the division of the arguments
getrandmax -- Retorna o maior valor aletório possível
hexdec -- Hexadecimal para decimal
hypot -- Retorna a raiz quadrada de (num1*num1 + num2*num2)
is_finite --
is_infinite --
is_nan --
lcg_value -- Gerador congruente linear combinado
log10 -- Logaritmo Base 10
log1p -- Retorna o log(1 + numero), calculado de forma que o valor do número seja próximo de zero.
log -- Logaritmo natural
max -- Localiza o maior número
min -- Localiza o menor número
mt_getrandmax -- Retorna o maior valor aletório possível
mt_rand -- Gerador melhorado de números aleatórios
mt_srand -- Semeia o gerador melhorado de números aleatórios
octdec -- Octal para decimal
pi -- Obtêm o valor de pi
pow -- Potência
rad2deg -- Converte o número em radianos para o equivalente em graus
rand -- Gera um número aleatório
round -- Arredonda um número
sin -- Seno
sinh -- Seno hiperbólico
sqrt -- Raiz quadrada
srand -- Semeia o gerador de números aletórios
tan -- Tangente
tanh -- Tangente hiperbólica

Anterior | Principal | Próxima
mailparse_uudecode_all | Acima | abs


abs

(PHP 3, PHP 4 , PHP 5)

abs -- Valor absoluto

Descrição

mixed abs ( mixed número)

Retorna o valor absoluto de um número. Se o argumento número é do tipo float, o número retornado também é float, em outro caso será inteiro (mas poderá retornar float se o resultado tiver magnitude maior que inteiro).

Exemplo 1. exemplo de abs()

<?php
$abs = abs(-4.2); // $abs = 4.2; (double/float)
$abs2 = abs(5);   // $abs2 = 5; (inteiro)
$abs3 = abs(-5);  // $abs3 = 5; (inteiro)
?>

Anterior | Principal | Próxima
Matemática e Trigonometria | Acima | acos


acos

(PHP 3, PHP 4 , PHP 5)

acos -- Cosseno Inverso (arco cosseno)

Descrição

float acos ( float arg)

Retorna o inverso do coseno de arg em radianos. acos() é a função complementar de cos(), o que significa que a==cos(acos(a)) para qualquer valor de var que esteja dentro dos limites de acos().

Veja também acosh(), asin() e atan().

Anterior | Principal | Próxima
abs | Acima | acosh


acosh

(PHP 4 >= 4.1.0, PHP 5)

acosh -- Coseno Hiperbólico Inverso

Descrição

float acosh ( float arg)

Retorna o coseno hiperbólico de arg, isto é, o valor cujo coseno hiperbólico é arg.

Nota: esta função não é implementada na plataforma Windows

Veja também acos(), asinh() e atanh().

Anterior | Principal | Próxima
acos | Acima | asin


asin

(PHP 3, PHP 4 , PHP 5)

asin -- Seno Inverso (arco seno)

Descrição

float asin ( float arg)

Retorna o inverso do seno de arg em radianos. asin() é a função complementar de sin(), o que significa que a==sin(asin(a)) para qualquer valor de var que esteja dentro dos limites de asin().

Veja também asinh(), acos() e atan().

Anterior | Principal | Próxima
acosh | Acima | asinh


asinh

(PHP 4 >= 4.1.0, PHP 5)

asinh -- Seno Hiperbólico Inverso

Descrição

float asinh ( float arg)

Retorna o inverso do seno hiperbólico de arg, isto é, o valor cujo seno hiperbólico é arg.

Nota: esta função não é implementada na plataforma Windows

Veja também asin(), acosh() e atanh().

Anterior | Principal | Próxima
asin | Acima | atan2


atan2

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

atan2 -- Tangente inversa de duas variáveis

Descrição

float atan2 ( float y, float x)

Esta função calcula a tangente inversa de duas variaveis x e y. Esta função é o equivalente a calcular a tangente inversa de y / x, exceto que os sinais de ambos os argumentos são usados para determinar o quadrante do resultado.

Esta função retorna o resultado em radianos, estando entre -PI e PI (inclusive).

Veja também acos() e atan().

Anterior | Principal | Próxima
asinh | Acima | atan


atan

(PHP 3, PHP 4 , PHP 5)

atan -- Tangente Inversa (arco tangente)

Descrição

float atan ( float arg)

Retorna o inverso da tangente de arg em radianos. atan() é a função complementar de tan(), o que significa que var == tan(atan(var)) para qualquer valor de a que esteja dentro dos limites de atan().

Veja também atanh(), asin() e acos().

Anterior | Principal | Próxima
atan2 | Acima | atanh


atanh

(PHP 4 >= 4.1.0, PHP 5)

atanh -- Tangente hiperbólica inversa

Descrição

float atanh ( float arg)

Retorna a tangente hiperbólica inversa de arg, isto é, o valor cuja tangente hiperbólica é arg.

Nota: esta função não é implementada na plataforma Windows

Veja também atan(), asinh() e acosh().

Anterior | Principal | Próxima
atan | Acima | base_convert


base_convert

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

base_convert -- Converte um número entre bases arbitrárias

Descrição

string base_convert ( string number, int frombase, int tobase)

Retorna uma string contendo number representado na base tobase. A base atual de number é especificada em frombase. Tanto frombase quanto tobase tem que estar entre 2 e 36, inclusive. Digitos em números com base maior do que 10 serão representados com letras a-z, com a significando 10, b significando 11 e z significando 35.

Exemplo 1. base_convert()

<?php
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);
?>

Exibe:

101000110111001100110100

Anterior | Principal | Próxima
atanh | Acima | bindec


bindec

(PHP 3, PHP 4 , PHP 5)

bindec -- Binário para decimal

Descrição

int bindec ( string binary_string)

Retorna o equivalente decimal do número binário representado pelo argumento binary_string.

bindec() converte um número binário em um integer. O maior número que pode ser convertido é 31 bits de ums (1) ou 2147483647 em decimal.

Veja também a função decbin().

Anterior | Principal | Próxima
base_convert | Acima | ceil


ceil

(PHP 3, PHP 4 , PHP 5)

ceil -- Arredonda frações para cima

Descrição

float ceil ( float valor)

Retorna o próximo maior valor inteiro arredondando para cima do valor, se fracionário. O valor retornado de ceil() é do tipo float porque a dimensão dos valores suportados por float é normalmente maior do que o do tipo int.

Exemplo 1. ceil() example

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
?>

Veja também floor() e round().

Anterior | Principal | Próxima
bindec | Acima | cos


cos

(PHP 3, PHP 4 , PHP 5)

cos -- Coseno

Descrição

float cos ( float arg)

cos() retorna o coseno de arg. O parametro arg deve estar em radianos.

Veja também acos(), sin() tan() e deg2rad().

Anterior | Principal | Próxima
ceil | Acima | cosh


cosh

(PHP 4 >= 4.1.0, PHP 5)

cosh -- Coseno hiperbólico

Descrição

float cosh ( float arg)

Retorna o coseno hiperbólico de arg, definido por (exp(arg) + exp(-arg))/2.

Veja também cos(), acosh(), sin() e tan().

Anterior | Principal | Próxima
cos | Acima | decbin


decbin

(PHP 3, PHP 4 , PHP 5)

decbin -- Decimal para binário

Descrição

string decbin ( int numero)

Retorna uma string contendo a representação binária do parâmetro numero. O maior número que pode ser convertido é 4294967295 em decimal, resultando em uma strings de 32 números 1.

Veja também a função bindec().

Anterior | Principal | Próxima
cosh | Acima | dechex


dechex

(PHP 3, PHP 4 , PHP 5)

dechex -- Decimal para hexadecimal

Descrição

string dechex ( int numero)

Retorna uma string contendo a representação hexadecimal do argumento numero. O maior número que pode ser convertido é 2147483647 em decimal, resultando em "7fffffff".

Veja também hexdec().

Anterior | Principal | Próxima
decbin | Acima | decoct


decoct

(PHP 3, PHP 4 , PHP 5)

decoct -- Decimal para octal

Descrição

string decoct ( int numero)

Retorna uma string contendo a representação octal do parâmetro numero. O maior número que pode ser convertido é 2147483647 em decimal, resultando em "17777777777".

Veja também octdec().

Anterior | Principal | Próxima
dechex | Acima | deg2rad


deg2rad

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

deg2rad -- Converte o número em graus ao equivalente em radianos

Descrição

float deg2rad ( float numero)

Esta função converte numero de graus ao equivalente em radianos.

Veja também rad2deg().

Anterior | Principal | Próxima
decoct | Acima | exp


exp

(PHP 3, PHP 4 , PHP 5)

exp -- Calcula o expoente de e (Neperiano ou base logarítmica natural)

Descrição

float exp ( float arg)

Retorna e a potência de arg.

Veja também log() e pow().

Anterior | Principal | Próxima
deg2rad | Acima | expm1


expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 -- Retorna exp(numero) - 1, computado de forma que é preciso mesmo quando o valor do número é perto de zero.

Descrição

float expm1 ( float numero)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
exp | Acima | floor


floor

(PHP 3, PHP 4 , PHP 5)

floor -- Arredonda frações para baixo

Descrição

float floor ( float valor)

Retorna o próximo menor valor inteiro ao se arredondar para baixo o valor, se necessário. O valor retornado de floor() é do tipo float porque o tipo float normalmente abrange mais números possíveis do que integer.

Exemplo 1. Exemplos de floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
?>

Veja também ceil() e round().

Anterior | Principal | Próxima
expm1 | Acima | fmod


fmod

(PHP 4 >= 4.2.0, PHP 5)

fmod -- Returns the floating point remainder (modulo) of the division of the arguments

Description

float fmod ( float x, float y)

Returns the floating point remainder of dividing the dividend (x) by the divisor (y). The reminder (r) is defined as: x = i * y + r, for some integer i. If y is non-zero, r has the same sign as x and a magnitude less than the magnitude of y.

Exemplo 1. Using fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7
?>

Anterior | Principal | Próxima
floor | Acima | getrandmax


getrandmax

(PHP 3, PHP 4 , PHP 5)

getrandmax -- Retorna o maior valor aletório possível

Descrição

int getrandmax ( void )

Retorna o valor máximo que pode ser gerado em uma chamada a função rand().

Veja também rand(), srand() e mt_getrandmax().

Anterior | Principal | Próxima
fmod | Acima | hexdec


hexdec

(PHP 3, PHP 4 , PHP 5)

hexdec -- Hexadecimal para decimal

Descrição

int hexdec ( string hex_string)

Retorna o decimal equivalente do número hexadecimal representado pelo argumento hex_string. hexdec() converte uma string hexadecimal para um número decimal. O maior número que pode ser convertido é 7fffffff (ou 2147483647 em decimal).

hexdec() substituirá qualquer caracter não hexadecimal que encontrar por 0. Desta forma, todos os zeros a esqueda são ignorados, mas zeros a direita serão avaliados.

Exemplo 1. exemplos hexdec()

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// ambos exibem "int(238)"

var_dump(hexdec("that"));
var_dump(hexdec("a0"));
// ambos exibem int(160)
?>

Veja também dechex().

Anterior | Principal | Próxima
getrandmax | Acima | hypot


hypot

(PHP 4 >= 4.1.0, PHP 5)

hypot -- Retorna a raiz quadrada de (num1*num1 + num2*num2)

Descrição

float hypot ( float num1, float num2)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
hexdec | Acima | is_finite


is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finite --

Descrição

bool is_finite ( float val)

Retorna TRUE se val é número finito legal dentro dos limites permitidos para um número float PHP nesta plataforma.

Veja também is_infinite() e is_nan().

Anterior | Principal | Próxima
hypot | Acima | is_infinite


is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinite --

Descrição

bool is_infinite ( float val)

Retorna TRUE se val é infinito (positivo ou negativo), como por exemplo o resultado de log(0) ou qualquer outro valor muito grande para caber num float desta plataforma.

Veja também is_finite() e is_nan().

Anterior | Principal | Próxima
is_finite | Acima | is_nan


is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nan --

Descrição

bool is_nan ( float val)

Retona TRUE se val 'não for um número', como o resultado de acos(1.01).

Veja também is_finite() e is_infinite().

Anterior | Principal | Próxima
is_infinite | Acima | lcg_value


lcg_value

(PHP 4 , PHP 5)

lcg_value -- Gerador congruente linear combinado

Descrição

float lcg_value ( void )

lcg_value() retorna um pseudo número aleatório nos limites de (0, 1). A função combina duas congruências geradas, com períodos de 2^31 - 85 e 2^31 - 249. O período desta função é igual ao produto de ambos os primos.

Anterior | Principal | Próxima
is_nan | Acima | log10


log10

(PHP 3, PHP 4 , PHP 5)

log10 -- Logaritmo Base 10

Descrição

float log10 ( float arg)

Retorna o logaritmo na base 10 de arg.

Anterior | Principal | Próxima
lcg_value | Acima | log1p


log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p -- Retorna o log(1 + numero), calculado de forma que o valor do número seja próximo de zero.

Descrição

float log1p ( float number)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
log10 | Acima | log


log

(PHP 3, PHP 4 , PHP 5)

log -- Logaritmo natural

Descrição

float log ( float arg [, float base])

Se o parâmetro opcional base for informado, log() retorna logbase arg, senão log() retorna o logaritmo natural de arg.

Nota: O parâmetro base foi acrescentado no PHP versão 4.3.0.

Você sempre pode calcular o logatitmo na base b de um número n pela utilização da identidade matemática: logb(n) = log(n)/log(b), onde log é o logaritmo neperiano (ou natural).

Veja também exp().

Anterior | Principal | Próxima
log1p | Acima | max


max

(PHP 3, PHP 4 , PHP 5)

max -- Localiza o maior número

Descrição

mixed max ( number arg1, number arg2 [, number ...])

mixed max ( array numbers [, array ...])

max() retorna o maior número dos parâmetros.

Se o primeiro e único parâmetro é um array, max() retorna o maior valor do array. Se o primeiro parâmetro é um inteiro, string ou float, você precisa informar pelo menos dois parâmetros, e max() retornará o maior desses números. Você pode comparar uma quantidade ilimitada de números.

Nota: O PHP irá avaliar uma string não numérica como 0, mas ainda retorna a string como se ela fosse numericamente o maior valor. Se vários agumentos forem avaliados como 0, max() irá retornar o primeiro deles (o mais a esquerda).

Exemplo 1. Exemplos de max()

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello
echo max(-1, 'hello');    // hello

// Com arrays múltiplos, max compara da esquerda para direita,
// assim nesse exemplo: 2 == 2, mas 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// Se forem informados um array e um não array, o array
// é sempre retornado como se ele fosse o maior
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)
?>

Veja também min() e count().

Anterior | Principal | Próxima
log | Acima | min


min

(PHP 3, PHP 4 , PHP 5)

min -- Localiza o menor número

Descrição

mixed min ( number arg1, number arg2 [, number ...])

mixed min ( array numbers [, array ...])

min() o menor dos números informados nos parâmetros.

Se o primeiro e único argumento é um array, min() retorna o menor valor no array. Se o primeiro parâmetro for um inteiro, string ou float, você precisa informar pelo menos dois parâmetros e min() retornará o menor deles. Você pode comparar uma quantidade ilimitada de valores.

Nota: O PHP irá avaliar uma string não numérica como 0, mas ainda retorna a string como se ela fosse numericamente o menor valor. Se vários agumentos forem avaliados como 0, min() irá retornar o primeiro deles (o mais a esquerda).

Exemplo 1. Exemplos de min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello
echo min('hello', -1);    // -1

// Com arrays múltiplos, min compara da esquerda para direita,
// assim nesse exemplo: 2 == 2, mas 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// Se ambos forem um array e um não array, o array
// nunca será retornado porque ele é sempre considerado o maior
$val = min('string', array(2, 5, 7), 42);   // string
?>

Veja também max() e count().

Anterior | Principal | Próxima
max | Acima | mt_getrandmax


mt_getrandmax

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_getrandmax -- Retorna o maior valor aletório possível

Descrição

int mt_getrandmax ( void )

Retorna o maior valor que pode ser obtido numa chamada a mt_rand().

Veja também mt_rand(), mt_srand() e getrandmax().

Anterior | Principal | Próxima
min | Acima | mt_rand


mt_rand

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_rand -- Gerador melhorado de números aleatórios

Descrição

int mt_rand ( [int min, int max])

Muitos geradores de números aleatórios das libcs antigas são duvidosos ou com características duvidosas e lentos. Por default, o PHP utiliza o gerador de números aleatórios da libc para a função rand(). A função mt_rand() é um bom substituto para a primeira. Ela utiliza um gerador de números aleatórios com características conhecidas, o Mersenne Twister, que produzirá números randômicos que podem ser utilizados como sementes em alguns tipos de criptografia (Veja a página para mais detalhes) e é em média quatro vezes mais rápido do que o fornecido pela libc.

Se chamada sem os argumentos opcionais min e max, mt_rand() retorna um pseudo número aletório enrte 0 e RAND_MAX. se você precisa de um número randômico entre 5 e 15 (inclusive), por exemplo, utilize mt_rand (5, 15).

Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.

Nota: Em versões anteriores a 3.0.7, o significado do parâmetro max era range. Assim, para obter os mesmos resultados do exemplo acima, você precisaria utilizar rand (5, 11) para obter um número aleatório entre 5 e 15.

Veja também mt_srand(),
mt_getrandmax() e
rand().

Anterior | Principal | Próxima
mt_getrandmax | Acima | mt_srand


mt_srand

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_srand -- Semeia o gerador melhorado de números aleatórios

Deszcrição

void mt_srand ( int seed)

Semeia o gerador de números aleatórios com seed.

<?php
// semente de microsegundos
function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.

Veja também mt_rand(), mt_getrandmax() e srand().

Anterior | Principal | Próxima
mt_rand | Acima | octdec


octdec

(PHP 3, PHP 4 , PHP 5)

octdec -- Octal para decimal

Descrição

int octdec ( string octal_string)

Retornar o decimal equivalente do número octal representado pelo argumento octal_string. O maior número que pode ser convertido é 17777777777 ou 2147483647 em decimal.

Veja também decoct().

Anterior | Principal | Próxima
mt_srand | Acima | pi


pi

(PHP 3, PHP 4 , PHP 5)

pi -- Obtêm o valor de pi

Descrição

float pi ( void )

Retorna o valor aproximado de Pi. O valor retornado float tem a precisão baseada na diretiva precision do php.ini, que tem por padrão 14. Também é possivel usar a constante M_PI que terá resultados idênticos a pi().

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>

Anterior | Principal | Próxima
octdec | Acima | pow


pow

(PHP 3, PHP 4 , PHP 5)

pow -- Potência

Descrição

number pow ( number base, number exp)

Retorna a base elevada ao expoente exp. Se possível, esta função retornará um integer.

Se a potência não puder ser calculada, um alerta será lançado, e pow() retornará FALSE.

Exemplo 1. Alguns exemplos de pow()

<?php

var_dump( pow(2,8) ); // int(256)
echo pow(-1,20); // 1
echo pow(0, 0); // 1

echo pow(-1, 5.5); // erro

?>

Atenção

No PHP 4.0.6 e posteriores, pow() sempre retornará um float, e não gerará avisos de erros.

Veja também exp() e sqrt().

Anterior | Principal | Próxima
pi | Acima | rad2deg


rad2deg

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

rad2deg -- Converte o número em radianos para o equivalente em graus

Descrição

float rad2deg ( float number)

Esta função converte number de radianos para graus.

Veja também deg2rad().

Anterior | Principal | Próxima
pow | Acima | rand


rand

(PHP 3, PHP 4 , PHP 5)

rand -- Gera um número aleatório

Descrição

int rand ( [int min, int max])

Se chamado sem os parâmetros opcionais min e max, rand() retornará um pseudo valor randômico entre 0 e RAND_MAX. Se você precisa de um número aleatório entre 5 e 15 (inclusive), por exemplo, utilize rand (5, 15).

Nota: Em algumas plataformas (como o Windows) RAND_MAX é somente 32768. Se você precisa de um número maior que 32768, considere utilizar mt_rand().

Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.

Nota: Em versões anteriores a 3.0.7, o significado do parâmetro max era range. Assim, para obter os mesmos resultados do exemplo acima, você precisaria utilizar rand (5, 11) para obter um número aleatório entre 5 e 15.

Veja também srand(),
getrandmax() e
mt_rand().

Anterior | Principal | Próxima
rad2deg | Acima | round


round

(PHP 3, PHP 4 , PHP 5)

round -- Arredonda um número

Descrição

float round ( float val [, int precision])

Retornar um valor arredondado de val em precision casas decimais. precision pode ser negativo ou zero (default).

Exemplo 1. Exemplo de round()

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.04
echo round(5.055, 2);    // 5.06
?>

Cuidado

Quando arredondando metades exatas, round() arredonda para baixo ou para cima probalisticamente. Se você deseja forcar apenas uma direção em um caso de .5 (ou .05), some ou subtraia um pequeno fator de indeterminação. A razão atrás pelo arrendondamente de metades uma parte para cima e outra para baixo serve para evitar problemas bancários clássicos, onde sempre arredondar para baixo é roubo de dinheiro dos clientes, ou se somente arredondar para cima você acaba no final do dia perdendo dinheiro.Calculando a média entre arredondamentos e truncamentos você pode nivelar estatísticas.

Nota: o PHP não manipula strings como "12,300.2" corretamente por padrão. Veja convertendo de strings.

Nota: O parâmetro precision foi acrescentado somente no PHP 4.

veja também ceil(),
floor() e
number_format().

Anterior | Principal | Próxima
rand | Acima | sin


sin

(PHP 3, PHP 4 , PHP 5)

sin -- Seno

Descrição

float sin ( float arg)

sin() retorna o seno do parâmetro arg. O argumento arg deve estar em radianos.

<?php

// Precisão depende da diretiva precision
print sin(deg2rad(60));  //  0.866025403 ...
print sin(60);           // -0.304810621 ...

?>

Veja também asin(), cos(), tan() e deg2rad().

Anterior | Principal | Próxima
round | Acima | sinh


sinh

(PHP 4 >= 4.1.0, PHP 5)

sinh -- Seno hiperbólico

Descrição

float sinh ( float arg)

Retorna o seno hiperbólico de arg, definido como (exp(arg) - exp(-arg))/2.

Veja também sin(), asinh(), cos() e tan().

Anterior | Principal | Próxima
sin | Acima | sqrt


sqrt

(PHP 3, PHP 4 , PHP 5)

sqrt -- Raiz quadrada

Descrição

float sqrt ( float arg)

Retorna a raiz quadrada de arg.

<?php
// Precisão depende de sua diretiva precision
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Veja também pow().

Anterior | Principal | Próxima
sinh | Acima | srand


srand

(PHP 3, PHP 4 , PHP 5)

srand -- Semeia o gerador de números aletórios

Descrição

void srand ( int seed)

Semeia o gerador de números aleatórios com seed.

<?php
// semeira com microsegundos
function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$randval = rand();
?>

Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() ou mt_srand() pois isso é feito automaticamente.

Veja também rand(),
getrandmax() e
mt_srand().

Anterior | Principal | Próxima
sqrt | Acima | tan


tan

(PHP 3, PHP 4 , PHP 5)

tan -- Tangente

Descrição

float tan ( float arg)

tan() retorna a tangente do parâmetro arg. O argumento arg deve estar em radianos.

Veja também atan(), sin(), cos() e deg2rad().

Anterior | Principal | Próxima
srand | Acima | tanh


tanh

(PHP 4 >= 4.1.0, PHP 5)

tanh -- Tangente hiperbólica

Descrição

float tanh ( float arg)

Retorna a tangente hiperbólica de arg, definida como sinh(arg)/cosh(arg).

Veja também tan(), atanh(), sin() e cos().

Anterior | Principal | Próxima
tan | Acima | Multibyte String Functions


Multibyte String Functions

Manual do PHP
Anterior Próxima

LIII. Multibyte String Functions

Introdução

While there are many languages in which every necessary character can be represented by a one-to-one mapping to a 8-bit value, there are also several languages which require so many characters for written communication that cannot be contained within the range a mere byte can code. Multibyte character encoding schemes were developed to express that many (more than 256) characters in the regular bytewise coding system.

When you manipulate (trim, split, splice, etc.) strings encoded in a multibyte encoding, you need to use special functions since two or more consecutive bytes may represent a single character in such encoding schemes. Otherwise, if you apply a non-multibyte-aware string function to the string, it probably fails to detect the beginning or ending of the multibyte character and ends up with a corrupted garbage string that most likely loses its original meaning.

mbstring provides these multibyte specific string functions that help you deal with multibyte encodings in PHP, which is basically supposed to be used with single byte encodings. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs.

mbstring is also designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below), whereas mbstring was originally developed for use in Japanese web pages.

PHP Character Encoding Requirements

Encodings of the following types are safely used with PHP.

  • A singlebyte encoding,

    • which has ASCII-compatible (ISO646 compatible) mappings for the characters in range of 00h to 7fh.

  • A multibyte encoding,

    • which has ASCII-compatible mappings for the characters in range of 00h to 7fh.

    • which don't use ISO2022 escape sequences.

    • which don't use a value from 00h to 7fh in any of the compounded bytes that represents a single character.

These are examples of character encodings that are unlikely to work with PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Although PHP scripts written in any of those encodings might not work, especially in the case where encoded strings appear as identifiers or literals in the script, you can almost avoid using these encodings by setting up the mbstring's transparent encoding filter function for incoming HTTP queries.

Nota: It's highly discouraged to use SJIS, BIG5, CP936, CP949 and GB18030 for the internal encoding unless you are familiar with the parser, the scanner and the character encoding.

Nota: If you have some database connected with PHP, it is recommended that you use the same character encoding for both database and the internal encoding for ease of use and better performance.

If you are using PostgreSQL, the character encoding used in the database and the one used in the PHP may differ as it supports automatic character set conversion between the backend and the frontend.

Instalação

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring=LANG: Enable mbstring functions. This option is required to use mbstring functions.

    As of PHP 4.3.0, mbstring extension provides
enhanced support for Simplified Chinese, Traditional Chinese,
Korean, and Russian in addition to Japanese.
To enable that feature, you will have to supply either one of the
following options to the LANG parameter;
--enable-mbstring=cn for Simplified Chinese support,
--enable-mbstring=tw for Traditional Chinese support,
--enable-mbstring=kr for Korean support,
--enable-mbstring=ru for Russian support, and
--enable-mbstring=ja for Japanese support.

    Also --enable-mbstring=all is convenient for you to enable all the supported languages listed above.

    Nota: Japanese language support is also enabled by --enable-mbstring without any options for the sake of backwards compatibility.

  • --enable-mbstr-enc-trans : Enable HTTP input character encoding conversion using mbstring conversion engine. If this feature is enabled, HTTP input character encoding may be converted to mbstring.internal_encoding automatically.

    Nota: As of PHP 4.3.0, the option --enable-mbstr-enc-trans was eliminated and replaced with the runtime setting mbstring.encoding_translation. HTTP input character encoding conversion is enabled when this is set to On (the default is Off).

  • --enable-mbregex: Enable regular expression functions with multibyte character support.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. mbstring configuration options

Name | Default | Changeable
mbstring.language | "neutral" | PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | "pass" | PHP_INI_ALL
mbstring.http_output | "pass" | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.script_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.encoding_translation | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
For the definition of the PHP_INI_* constants, please refer to ini_set().

Breve descrição das diretivas de configuração.

  • mbstring.language is the default national language setting (NLS) used in mbstring. Note that this option automagically defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

  • mbstring.encoding_translation enables the transparent character encoding filter for the incoming HTTP queries, which performs detection and conversion of the input encoding to the internal character encoding.

  • mbstring.internal_encoding defines the default internal character encoding.

  • mbstring.http_input defines the default HTTP input character encoding.

  • mbstring.http_output defines the default HTTP output character encoding.

  • mbstring.detect_order defines default character code detection order. See also mb_detect_order().

  • mbstring.substitute_character defines character to substitute for invalid character encoding.

  • mbstring.func_overload overloads a set of single byte functions by the mbstring counterparts. See Funtion overloading for more information.

According to the HTML 4.01 specification, Web browsers are allowed to encode a form being submitted with a character encoding different from the one used for the page. See mb_http_input() to detect character encoding used by browsers.

Although popular browsers are capable of giving a reasonably accurate guess to the character encoding of a given HTML document, it would be better to set the charset parameter in the Content-Type HTTP header to the appropriate value by header() or default_charset ini setting.

Exemplo 1. php.ini setting examples

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Set HTTP2 input to  SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Exemplo 2. php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Exemplo 3. php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

MB_OVERLOAD_MAIL (integer)

MB_OVERLOAD_STRING (integer)

MB_OVERLOAD_REGEX (integer)

HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Nota: In PHP 4.3.2 or earlier versions, there was a limitation in this functionality that mbstring does not perform character encoding conversion in POST data if the enctype attribute in the form element is set to multipart/form-data. So you have to convert the incoming data by yourself in this case if necessary.

Beginning with PHP 4.3.3, if enctype for HTML form is set to multipart/form-data and mbstring.encoding_translation is set to On in php.ini the POST'ed variables and the names of uploaded files will be converted to the internal character encoding as well. However, the conversion isn't applied to the query keys.

  • HTTP Input

    There is no way to control HTTP input character conversion from PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Exemplo 4. Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override those settings in each Virtual Host directive in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as ob_start callback function.

    Nota: PHP3-i18n users should note that mbstring's output conversion differs from PHP3-i18n. Character encoding is converted using output buffer.

Exemplo 5. php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Exemplo 6. Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>

Supported Character Encodings

Currently the following character encodings are supported by the mbstring module. Any of those Character encodings can be specified in the encoding parameter of mbstring functions.

The following character encoding is supported in this PHP extension:

  • UCS-4

  • UCS-4BE

  • UCS-4LE

  • UCS-2

  • UCS-2BE

  • UCS-2LE

  • UTF-32

  • UTF-32BE

  • UTF-32LE

  • UTF-16

  • UTF-16BE

  • UTF-16LE

  • UTF-7

  • UTF7-IMAP

  • UTF-8

  • ASCII

  • EUC-JP

  • SJIS

  • eucJP-win

  • SJIS-win

  • ISO-2022-JP

  • JIS

  • ISO-8859-1

  • ISO-8859-2

  • ISO-8859-3

  • ISO-8859-4

  • ISO-8859-5

  • ISO-8859-6

  • ISO-8859-7

  • ISO-8859-8

  • ISO-8859-9

  • ISO-8859-10

  • ISO-8859-13

  • ISO-8859-14

  • ISO-8859-15

  • byte2be

  • byte2le

  • byte4be

  • byte4le

  • BASE64

  • HTML-ENTITIES

  • 7bit

  • 8bit

  • EUC-CN

  • CP936

  • HZ

  • EUC-TW

  • CP950

  • BIG-5

  • EUC-KR

  • UHC (CP949)

  • ISO-2022-KR

  • Windows-1251 (CP1251)

  • Windows-1252 (CP1252)

  • CP866 (IBM866)

  • KOI8-R

php.ini entry, which accepts encoding name, accepts "auto" and "pass" also. mbstring functions, which accepts encoding name, and accepts "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to the list of encodings defined per the NLS. For instance, if the NLS is set to Japanese, the value is assumed to be "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()

Function Overloading Feature

You might often find it difficult to get an existing PHP application work in a given multibyte environment. That's mostly because lots of PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.

To use the function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if is set for 7, mail, strings and regular expression functions should be overloaded. The list of overloaded functions are shown below.

Tabela 2. Functions to be overloaded

value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Nota: It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.

Basics of Japanese multi-byte encodings

It is often said quite hard to figure out how Japanese texts are handled in the computer. This is not only because Japanese characters can only be represented by multibyte encodings, but because different encoding standards are adopted for different purposes / platforms. Moreover, not a few character set standards are used there, which are slightly different from one another. Those facts have often led developers to inevitable mess-up.

To create a working web application that would be put in the Japanese environment, it is important to use the proper character encoding and character set for the task in hand.

  • Storage for a character can be up to six bytes

  • Most of multibyte characters often appear twice as wide as a single-byte character on display. Those characters are called "zen-kaku" in Japanese which means "full width", and the other (narrower) characters are called "han-kaku" - means half width. However the graphical properties of the characters depend on the glyphs of the type faces used to display them or print them out.

  • Some character encodings use shift(escape) sequences defined in ISO2022 to switch the code map of the specific code area (00h to 7fh).

  • ISO-2022-JP should be used in SMTP/NNTP, and headers and entities should be reencoded as per RFC requirements. Although those are not requisites, it's still a good idea because several popular user agents cannot recognize any other encoding methods.

  • Webpages created for mobile phone services such as i-mode, Vodafone live!, or EZweb are supposed to use Shift_JIS.

References

Multibyte character encoding schemes and the related issues are very complicated. There should be too few space to cover in sufficient details. Please refer to the following URLs and other resources for further readings.

  • Unicode materials

    http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Summaries of supported encodings

Summaries of supported encodings

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: ISO 10646

Description: The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in little endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-32

Underlying character set: Unicode

Description: Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-32BE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-32LE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-16

Underlying character set: Unicode

Description: Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-8

Underlying character set: Unicode / UCS

Description: Unicode Transformation Format of 8-bit unit width.

Additional note: none

Name in the IANA character set registry: UTF-7

Underlying character set: Unicode

Description: A mail-safe transformation format of Unicode, specified in RFC2152.

Additional note: none

Name in the IANA character set registry: (none)

Underlying character set: Unicode

Description: A variant of UTF-7 which is specialized for use in the IMAP protocol.

Additional note: none

Name in the IANA character set registry: US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII

Underlying character set: ASCII / ISO 646

Description: American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646.

Additional note: (none)

Name in the IANA character set registry: EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese

Underlying character set: Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990

Description: As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022.

Additional note: The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.

Name in the IANA character set registry: Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997

Description: Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatiblities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets.

Additional note: For the CP932 codemap, use SJIS-WIN instead.

Name in the IANA character set registry: (none)

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP.

Additional note: none

Name in the IANA character set registry: Windows-31J / csWindows31J

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS.

Additional note: (none)

Name in the IANA character set registry: ISO-2022-JP (preferred MIME name) / csISO2022JP

Underlying character set: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983

Description: RFC1468

Additional note: (none)

Name in the IANA character set registry: JIS

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-1

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-2

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-3

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-4

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-6

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-7

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-8

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-9

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-10

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-13

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-14

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-15

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BASE64

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HTML-ENTITIES

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 7bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 8bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-CN

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP936

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HZ

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-TW

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP950

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BIG-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: UHC (CP949)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-2022-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1251 (CP1251)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1252 (CP1252)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP866 (IBM866)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: KOI8-R

Underlying character set:

Description:

Additional note:

Índice
mb_convert_case -- Perform case folding on a string
mb_convert_encoding -- Convert character encoding
mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
mb_convert_variables -- Convert character code in variable(s)
mb_decode_mimeheader -- Decode string in MIME header field
mb_decode_numericentity -- Decode HTML numeric string reference to character
mb_detect_encoding -- Detect character encoding
mb_detect_order -- Set/Get character encoding detection order
mb_encode_mimeheader -- Encode string for MIME header
mb_encode_numericentity -- Encode character to HTML numeric string reference
mb_ereg_match -- Regular expression match for multibyte string
mb_ereg_replace -- Replace regular expression with multibyte support
mb_ereg_search_getpos -- Returns start point for next regular expression match
mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match
mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match
mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string
mb_ereg_search_regs -- Returns the matched part of multibyte regular expression
mb_ereg_search_setpos -- Set start point of next regular expression match
mb_ereg_search -- Multibyte regular expression match for predefined multibyte string
mb_ereg -- Regular expression match with multibyte support
mb_eregi_replace -- Replace regular expression with multibyte support ignoring case
mb_eregi -- Regular expression match ignoring case with multibyte support
mb_get_info -- Get internal settings of mbstring
mb_http_input -- Detect HTTP input character encoding
mb_http_output -- Set/Get HTTP output character encoding
mb_internal_encoding -- Set/Get internal character encoding
mb_language -- Set/Get current language
mb_output_handler -- Callback function converts character encoding in output buffer
mb_parse_str -- Parse GET/POST/COOKIE data and set global variable
mb_preferred_mime_name -- Get MIME charset string
mb_regex_encoding -- Returns current encoding for multibyte regex as string
mb_regex_set_options -- Set/Get the default options for mbregex functions
mb_send_mail -- Send encoded mail.
mb_split -- Split multibyte string using regular expression
mb_strcut -- Get part of string
mb_strimwidth -- Get truncated string with specified width
mb_strlen -- Get string length
mb_strpos -- Find position of first occurrence of string in a string
mb_strrpos -- Find position of last occurrence of a string in a string
mb_strtolower -- Make a string lowercase
mb_strtoupper -- Make a string uppercase
mb_strwidth -- Return width of string
mb_substitute_character -- Set/Get substitution character
mb_substr_count -- Count the number of substring occurrences
mb_substr -- Get part of string

Anterior | Principal | Próxima
tanh | Acima | mb_convert_case


mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case -- Perform case folding on a string

Description

string mb_convert_case ( string str, int mode [, string encoding])

mb_convert_case() returns case folded version of string converted in the way specified by mode.

mode can be one of MB_CASE_UPPER, MB_CASE_LOWER or MB_CASE_TITLE.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

The return value is str with the appropriate case folding applied.

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Exemplo 1. mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints Mary Had A Little Lamb And She Loved It So
?>

See also mb_strtolower(),
mb_strtoupper(),
strtolower() and
strtoupper().

Anterior | Principal | Próxima
Multibyte String Functions | Acima | mb_convert_encoding


mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding -- Convert character encoding

Description

string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])

mb_convert_encoding() converts character encoding of string str from from-encoding to to-encoding.

str : String to be converted.

from-encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

Exemplo 1. mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

See also mb_detect_order().

Anterior | Principal | Próxima
mb_convert_case | Acima | mb_convert_kana


mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

Description

string mb_convert_kana ( string str, string option [, mixed encoding])

mb_convert_kana() performs "han-kaku" - "zen-kaku" conversion for string str. It returns converted string. This function is only useful for Japanese.

option is conversion option. Default value is "KV".

encoding is character encoding. If it is omitted, internal character encoding is used.

Specify with combination of following options. Default value is KV.

Tabela 1. Applicable Conversion Options

Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

Exemplo 1. mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alpha-numeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

Anterior | Principal | Próxima
mb_convert_encoding | Acima | mb_convert_variables


mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variables -- Convert character code in variable(s)

Description

string mb_convert_variables ( string to-encoding, mixed from-encoding, mixed vars)

mb_convert_variables() convert character encoding of variables vars in encoding from-encoding to encoding to-encoding. It returns character encoding before conversion for success, FALSE for failure.

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

It from-encoding is specified by array or comma separated string, it tries to detect encoding from from-coding. When encoding is omitted, detect_order is used.

vars (3rd and larger) is reference to variable to be converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

Exemplo 1. mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>

Anterior | Principal | Próxima
mb_convert_kana | Acima | mb_decode_mimeheader


mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheader -- Decode string in MIME header field

Description

string mb_decode_mimeheader ( string str)

mb_decode_mimeheader() decodes encoded-word string str in MIME header.

It returns decoded string in internal character encoding.

See also mb_encode_mimeheader().

Anterior | Principal | Próxima
mb_convert_variables | Acima | mb_decode_numericentity


mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentity -- Decode HTML numeric string reference to character

Description

string mb_decode_numericentity ( string str, array convmap [, string encoding])

Convert numeric string reference of string str in specified block to character. It returns converted string.

convmap is array to specifies code area to convert.

encoding is character encoding. If it is omitted, internal character encoding is used.

Exemplo 1. convmap example

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.

See also mb_encode_numericentity().

Anterior | Principal | Próxima
mb_decode_mimeheader | Acima | mb_detect_encoding


mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encoding -- Detect character encoding

Description

string mb_detect_encoding ( string str [, mixed encoding-list])

mb_detect_encoding() detects character encoding in string str. It returns detected character encoding.

encoding-list is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encoding_list is omitted, detect_order is used.

Exemplo 1. mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

See also mb_detect_order().

Anterior | Principal | Próxima
mb_decode_numericentity | Acima | mb_detect_order


mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_order -- Set/Get character encoding detection order

Description

array mb_detect_order ( [mixed encoding-list])

mb_detect_order() sets automatic character encoding detection order to encoding-list. It returns TRUE for success, FALSE for failure.

encoding-list is array or comma separated list of character encoding. ("auto" is expanded to "ASCII, JIS, UTF-8, EUC-JP, SJIS")

If encoding-list is omitted, it returns current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

Nota: mbstring currently implements following encoding detection filters. If there is an invalid byte sequence for following encoding, encoding detection will fail.

Nota: UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Exemplo 1. Useless detect order example

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Exemplo 2. mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

See also mb_internal_encoding(),
mb_http_input(),
mb_http_output() and
mb_send_mail().

Anterior | Principal | Próxima
mb_detect_encoding | Acima | mb_encode_mimeheader


mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheader -- Encode string for MIME header

Description

string mb_encode_mimeheader ( string str [, string charset [, string transfer-encoding [, string linefeed]]])

mb_encode_mimeheader() encodes a given string str by the MIME header encoding scheme. Returns a converted version of the string represented in ASCII.

charset specifies the name of the character set in which str is represented in. The default value is determined by the current NLS setting (mbstring.language).

transfer-encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.

linefeed specifies the EOL (end-of-line) marker with which mb_encode_mime_header() performs line-folding (a RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to "\r\n" (CRLF) if not given.

Exemplo 1. mb_encode_mimeheader() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Nota: This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.

See also mb_decode_mimeheader().

Anterior | Principal | Próxima
mb_detect_order | Acima | mb_encode_numericentity


mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentity -- Encode character to HTML numeric string reference

Description

string mb_encode_numericentity ( string str, array convmap [, string encoding])

mb_encode_numericentity() converts specified character codes in string str from HTML numeric character reference to character code. It returns converted string.

convmap is array specifies code area to convert.

encoding is character encoding.

Exemplo 1. convmap example

$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.

Exemplo 2. mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

See also mb_decode_numericentity().

Anterior | Principal | Próxima
mb_encode_mimeheader | Acima | mb_ereg_match


mb_ereg_match

(PHP 4 >= 4.2.0)

mb_ereg_match -- Regular expression match for multibyte string

Description

bool mb_ereg_match ( string pattern, string string [, string option])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_match() returns TRUE if string matches regular expression pattern, FALSE if not.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Anterior | Principal | Próxima
mb_encode_numericentity | Acima | mb_ereg_replace


mb_ereg_replace

(PHP 4 >= 4.2.0)

mb_ereg_replace -- Replace regular expression with multibyte support

Description

string mb_ereg_replace ( string pattern, string replacement, string string [, array option])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern.

Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. If e is specified, replacement string will be evaluated as PHP expression.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi_replace().

Anterior | Principal | Próxima
mb_ereg_match | Acima | mb_ereg_search_getpos


mb_ereg_search_getpos

(PHP 4 >= 4.2.0)

mb_ereg_search_getpos -- Returns start point for next regular expression match

Description

array mb_ereg_search_getpos ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_setpos().

Anterior | Principal | Próxima
mb_ereg_replace | Acima | mb_ereg_search_getregs


mb_ereg_search_getregs

(PHP 4 >= 4.2.0)

mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match

Description

array mb_ereg_search_getregs ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search_getregs() returns an array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some maches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns FALSE on error;

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Principal | Próxima
mb_ereg_search_getpos | Acima | mb_ereg_search_init


mb_ereg_search_init

(PHP 4 >= 4.2.0)

mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match

Description

array mb_ereg_search_init ( string string [, string pattern [, string option]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search_init() sets string and pattern for multibyte regular expression. These values are used for mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). It returns TRUE for success, FALSE for error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_regs().

Anterior | Principal | Próxima
mb_ereg_search_getregs | Acima | mb_ereg_search_pos


mb_ereg_search_pos

(PHP 4 >= 4.2.0)

mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string

Description

array mb_ereg_search_pos ( [string pattern [, string option]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search_pos() returns an array including position of matched part for multibyte regular expression. The first element of the array will be the beginning of matched part, the second element will be length (bytes) of matched part. It returns FALSE on error.

The string for match is specified by mb_ereg_search_init(). It it is not specified, the previous one will be used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Principal | Próxima
mb_ereg_search_init | Acima | mb_ereg_search_regs


mb_ereg_search_regs

(PHP 4 >= 4.2.0)

mb_ereg_search_regs -- Returns the matched part of multibyte regular expression

Description

array mb_ereg_search_regs ( [string pattern [, string option]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns FALSE on error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Principal | Próxima
mb_ereg_search_pos | Acima | mb_ereg_search_setpos


mb_ereg_search_setpos

(PHP 4 >= 4.2.0)

mb_ereg_search_setpos -- Set start point of next regular expression match

Description

array mb_ereg_search_setpos ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search_setpos() sets the starting point of match for mb_ereg_search().

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Principal | Próxima
mb_ereg_search_regs | Acima | mb_ereg_search


mb_ereg_search

(PHP 4 >= 4.2.0)

mb_ereg_search -- Multibyte regular expression match for predefined multibyte string

Description

bool mb_ereg_search ( [string pattern [, string option]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_search() returns TRUE if the multibyte string matches with the regular expression, FALSE for otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Principal | Próxima
mb_ereg_search_setpos | Acima | mb_ereg


mb_ereg

(PHP 4 >= 4.2.0)

mb_ereg -- Regular expression match with multibyte support

Description

int mb_ereg ( string pattern, string string [, array regs])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg() executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi()

Anterior | Principal | Próxima
mb_ereg_search | Acima | mb_eregi_replace


mb_eregi_replace

(PHP 4 >= 4.2.0)

mb_eregi_replace -- Replace regular expression with multibyte support ignoring case

Description

string mb_eregi_replace ( string pattern, string replace, string string)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern. The case will be ignored.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_replace().

Anterior | Principal | Próxima
mb_ereg | Acima | mb_eregi


mb_eregi

(PHP 4 >= 4.2.0)

mb_eregi -- Regular expression match ignoring case with multibyte support

Description

int mb_eregi ( string pattern, string string [, array regs])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_eregi() executes the regular expression match with multibyte support, and returns 1 if matches are found. This function ignore case. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Anterior | Principal | Próxima
mb_eregi_replace | Acima | mb_get_info


mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_info -- Get internal settings of mbstring

Description

string mb_get_info ( [string type])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_get_info() returns internal setting parameter of mbstring.

If type isn't specified or is specified to "all", an array having the elements "internal_encoding", "http_output", "http_input", "func_overload" will be returned.

If type is specified for "http_output", "http_input", "internal_encoding", "func_overload", the specified setting parameter will be returned.

See also mb_internal_encoding(), mb_http_output().

Anterior | Principal | Próxima
mb_eregi | Acima | mb_http_input


mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_input -- Detect HTTP input character encoding

Description

string mb_http_input ( [string type])

mb_http_input() returns result of HTTP input character encoding detection.

type: Input string specifies input type. "G" for GET, "P" for POST, "C" for COOKIE. If type is omitted, it returns last input type processed.

Return Value: Character encoding name. If mb_http_input() does not process specified HTTP input, it returns FALSE.

See also mb_internal_encoding(),
mb_http_output(),
mb_detect_order().

Anterior | Principal | Próxima
mb_get_info | Acima | mb_http_output


mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_output -- Set/Get HTTP output character encoding

Description

string mb_http_output ( [string encoding])

If encoding is set, mb_http_output() sets HTTP output character encoding to encoding. Output after this function is converted to encoding. mb_http_output() returns TRUE for success and FALSE for failure.

If encoding is omitted, mb_http_output() returns current HTTP output character encoding.

See also mb_internal_encoding(),
mb_http_input(),
mb_detect_order().

Anterior | Principal | Próxima
mb_http_input | Acima | mb_internal_encoding


mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding -- Set/Get internal character encoding

Description

mixed mb_internal_encoding ( [string encoding])

mb_internal_encoding() sets internal character encoding to encoding If parameter is omitted, it returns current internal encoding.

encoding is used for HTTP input character encoding conversion, HTTP output character encoding conversion and default character encoding for string functions defined by mbstring module.

encoding: Character encoding name

Return Value: If encoding is set,mb_internal_encoding() returns TRUE for success, otherwise returns FALSE. If encoding is omitted, it returns current character encoding name.

Exemplo 1. mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

See also mb_http_input(),
mb_http_output() and
mb_detect_order().

Anterior | Principal | Próxima
mb_http_output | Acima | mb_language


mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_language -- Set/Get current language

Description

string mb_language ( [string language])

mb_language() sets language. If language is omitted, it returns current language as string.

language setting is used for encoding e-mail messages. Valid languages are "Japanese", "ja","English","en" and "uni" (UTF-8). mb_send_mail() uses this setting to encode e-mail.

Language and its setting is ISO-2022-JP/Base64 for Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for English.

Return Value: If language is set and language is valid, it returns TRUE. Otherwise, it returns FALSE. When language is omitted, it returns language name as string. If no language is set previously, it returns FALSE.

See also mb_send_mail().

Anterior | Principal | Próxima
mb_internal_encoding | Acima | mb_output_handler


mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handler -- Callback function converts character encoding in output buffer

Description

string mb_output_handler ( string contents, int status)

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in output buffer from internal character encoding to
HTTP output character encoding.

4.1.0 or later version, this handler adds charset HTTP header when following conditions are met:

  • Does not set Content-Type by header()

  • Default MIME type begins with text/

  • http_output setting is other than pass

contents : Output buffer contents

status : Output buffer status

Return Value: String converted

Exemplo 1. mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Nota: If you want to output some binary data such as image from PHP script with PHP 4.3.0 or later, Content-Type: header must be send using header() before any binary data was send to client (e.g. header("Content-Type: image/png")). If Content-Type: header was send, output character encoding conversion will not be performed.

Note that if 'Content-Type: text/*' was send using header(), the sending data is regarded as text, encoding conversion will be performed using character encoding settings.

If you want to output some binary data such as image from PHP script with PHP 4.2.x or earlier, you must set output encoding to "pass" using mb_http_output().

See also ob_start().

Anterior | Principal | Próxima
mb_language | Acima | mb_parse_str


mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_str -- Parse GET/POST/COOKIE data and set global variable

Description

bool mb_parse_str ( string encoded_string [, array result])

mb_parse_str() parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only used for GET data for now. It preses URL encoded data, detects encoding, converts coding to internal encoding and set values to result array or global variables.

encoded_string: URL encoded data.

result: Array contains decoded and character encoding converted values.

Return Value: It returns TRUE for success or FALSE for failure.

See also mb_detect_order(), mb_internal_encoding().

Anterior | Principal | Próxima
mb_output_handler | Acima | mb_preferred_mime_name


mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_name -- Get MIME charset string

Description

string mb_preferred_mime_name ( string encoding)

mb_preferred_mime_name() returns MIME charset string for character encoding encoding. It returns charset string.

Exemplo 1. mb_preferred_mime_string() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

Anterior | Principal | Próxima
mb_parse_str | Acima | mb_regex_encoding


mb_regex_encoding

(PHP 4 >= 4.2.0)

mb_regex_encoding -- Returns current encoding for multibyte regex as string

Description

string mb_regex_encoding ( [string encoding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_regex_encoding() returns the character encoding used by multibyte regex functions.

If the optional parameter encoding is specified, it is set to the character encoding for multibyte regex. The default value is the internal character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_internal_encoding(), mb_ereg()

Anterior | Principal | Próxima
mb_preferred_mime_name | Acima | mb_regex_set_options


mb_regex_set_options

(PHP 4 >= 4.3.0)

mb_regex_set_options -- Set/Get the default options for mbregex functions

Description

string mb_regex_set_options ( [string options])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_regex_set_options() sets the default options described by options for multibyte regex functions.

Returns the previous options. If options is omitted, it returns the string that describes the current options.

Nota: This function is supported in PHP 4.3.0 or higher.

See also
mb_split(),
mb_ereg() and
mb_eregi()

Anterior | Principal | Próxima
mb_regex_encoding | Acima | mb_send_mail


mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail -- Send encoded mail.

Description

bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]])

mb_send_mail() sends email. Headers and
message are converted and encoded according to
mb_language() setting.
mb_send_mail() is wrapper
function of mail(). See
mail() for details.

to is mail addresses send to. Multiple recipients can be specified by putting a comma between each address in to. This parameter is not automatically encoded.

subject is subject of mail.

message is mail message.

additional_headers is inserted at the end of the header. This is typically used to add extra headers. Multiple extra headers are separated with a newline ("\n").

additional_parameter is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also mail(),
mb_encode_mimeheader(), and
mb_language().

Anterior | Principal | Próxima
mb_regex_set_options | Acima | mb_split


mb_split

(PHP 4 >= 4.2.0)

mb_split -- Split multibyte string using regular expression

Description

array mb_split ( string pattern, string string [, int limit])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

mb_split() split multibyte string using regular expression pattern and returns the result as an array.

If optional parameter limit is specified, it will be split in limit elements as maximum.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Anterior | Principal | Próxima
mb_send_mail | Acima | mb_strcut


mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcut -- Get part of string

Description

string mb_strcut ( string str, int start [, int length [, string encoding]])

mb_strcut() returns the portion of str specified by the start and length parameters.

mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.

It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

encoding is character encoding. If it is not set, internal character encoding is used.

See also mb_substr(), mb_internal_encoding().

Anterior | Principal | Próxima
mb_split | Acima | mb_strimwidth


mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth -- Get truncated string with specified width

Description

string mb_strimwidth ( string str, int start, int width, string trimmarker [, string encoding])

mb_strimwidth() truncates string str to specified width. It returns truncated string.

If trimmarker is set, trimmarker is appended to return value.

start is start position offset. Number of characters from the beginning of string. (First character is 0)

trimmarker is string that is added to the end of string when string is truncated.

encoding is character encoding. If it is omitted, internal encoding is used.

Exemplo 1. mb_strimwidth() example

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

See also mb_strwidth() and mb_internal_encoding().

Anterior | Principal | Próxima
mb_strcut | Acima | mb_strlen


mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlen -- Get string length

Description

string mb_strlen ( string str [, string encoding])

mb_strlen() returns number of characters in string str having character encoding encoding. A multi-byte character is counted as 1.

encoding is character encoding for str. If encoding is omitted, internal character encoding is used.

See also mb_internal_encoding(), strlen().

Anterior | Principal | Próxima
mb_strimwidth | Acima | mb_strpos


mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos -- Find position of first occurrence of string in a string

Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]])

mb_strpos() returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strpos() performs multi-byte safe strpos() operation based on number of characters. needle position is counted from the beginning of the haystack. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal character encoding is used. mb_strrpos() accepts string for needle where strrpos() accepts only character.

offset is search offset. If it is not specified, 0 is used.

encoding is character encoding name. If it is omitted, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strpos()

Anterior | Principal | Próxima
mb_strlen | Acima | mb_strrpos


mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrpos -- Find position of last occurrence of a string in a string

Description

int mb_strrpos ( string haystack, string needle [, string encoding])

mb_strrpos() returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strrpos() performs multi-byte safe strrpos() operation based on number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1.

If encoding is omitted, internal encoding is assumed. mb_strrpos() accepts string for needle where strrpos() accepts only character.

encoding is character encoding. If it is not specified, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strrpos().

Anterior | Principal | Próxima
mb_strpos | Acima | mb_strtolower


mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolower -- Make a string lowercase

Description

string mb_strtolower ( string str [, string encoding])

mb_strtolower() returns str with all alphabetic characters converted to lowercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

Exemplo 1. mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

See also strtolower(),
mb_strtoupper() and
mb_convert_case().

Anterior | Principal | Próxima
mb_strrpos | Acima | mb_strtoupper


mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupper -- Make a string uppercase

Description

string mb_strtoupper ( string str [, string encoding])

mb_strtoupper() returns str with all alphabetic characters converted to uppercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Exemplo 1. mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

See also strtoupper(),
mb_strtolower() and
mb_convert_case().

Anterior | Principal | Próxima
mb_strtolower | Acima | mb_strwidth


mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidth -- Return width of string

Description

int mb_strwidth ( string str [, string encoding])

mb_strwidth() returns width of string str.

Multi-byte character usually twice of width compare to single byte character.

Tabela 1. Characters width

Chars | Width
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

encoding is character encoding. If it is omitted, internal encoding is used.

See also: mb_strimwidth(), mb_internal_encoding().

Anterior | Principal | Próxima
mb_strtoupper | Acima | mb_substitute_character


mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_character -- Set/Get substitution character

Description

mixed mb_substitute_character ( [mixed substrchar])

mb_substitute_character() specifies substitution character when input character encoding is invalid or character code is not exist in output character encoding. Invalid characters may be substituted NULL(no output), string or integer value (Unicode character code value).

This setting affects mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
and mb_send_mail().

substchar : Specify Unicode value as integer or specify as string as follows

  • "none" : no output

  • "long" : Output character code value (Example: U+3000,JIS+7E7E)

Return Value: If substchar is set, it returns TRUE for success, otherwise returns FALSE. If substchar is not set, it returns Unicode value or "none"/"long".

Exemplo 1. mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>

Anterior | Principal | Próxima
mb_strwidth | Acima | mb_substr_count


mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_count -- Count the number of substring occurrences

Description

int mb_substr_count ( string haystack, string needle [, string encoding])

mb_substr_count() returns the number of times the needle substring occurs in the haystack string.

encoding specifies the encoding for needle and haystack. If omitted, internal character encoding is used.

Exemplo 1. mb_substr_count() example

<?php
echo mb_substr_count("This is a test", "is"); // prints out 2
?>

See also substr_count(), mb_strpos(), mb_substr().

Anterior | Principal | Próxima
mb_substitute_character | Acima | mb_substr


mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substr -- Get part of string

Description

string mb_substr ( string str, int start [, int length [, string encoding]])

mb_substr() returns the portion of str specified by the start and length parameters.

mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal encoding is assumed.

encoding is character encoding. If it is omitted, internal character encoding is used.

See also mb_strcut(), mb_internal_encoding().

Anterior | Principal | Próxima
mb_substr_count | Acima | MCAL Functions


MCAL Functions

Manual do PHP
Anterior Próxima

LIV. MCAL Functions

Introdução

MCAL stands for Modular Calendar Access Library.

Libmcal is a C library for accessing calendars. It's written to be very modular, with pluggable drivers. MCAL is the calendar equivalent of the IMAP module for mailboxes.

With mcal support, a calendar stream can be opened much like the mailbox stream with the IMAP support. Calendars can be local file stores, remote ICAP servers, or other formats that are supported by the mcal library.

Calendar events can be pulled up, queried, and stored. There is also support for calendar triggers (alarms) and recurring events.

With libmcal, central calendar servers can be accessed, removing the need for any specific database or local file programming.

Most of the functions use an internal event structure that is unique for each stream. This alleviates the need to pass around large objects between functions. There are convenience functions for setting, initializing, and retrieving the event structure values.

Nota: Esta extensão foi movida a partir do PHP 5 para o repositório PECL.

Nota: PHP had an ICAP extension previously, but the original library and the PHP extension is not supported anymore. The suggested replacement is MCAL.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

This extension requires the mcal library to be installed. Grab the latest version from http://mcal.chek.com/ and compile and install it.

Instalação

After you installed the mcal library, to get these functions to work, you have to compile PHP -with-mcal[=DIR].

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

MCAL_SUNDAY (integer)

MCAL_MONDAY (integer)

MCAL_TUESDAY (integer)

MCAL_WEDNESDAY (integer)

MCAL_THURSDAY (integer)

MCAL_FRIDAY (integer)

MCAL_SATURDAY (integer)

MCAL_JANUARY (integer)

MCAL_FEBRUARY (integer)

MCAL_MARCH (integer)

MCAL_APRIL (integer)

MCAL_MAY (integer)

MCAL_JUNE (integer)

MCAL_JULY (integer)

MCAL_AUGUST (integer)

MCAL_SEPTEMBER (integer)

MCAL_OCTOBER (integer)

MCAL_NOVEMBER (integer)

MCAL_DECEMBER (integer)

MCAL_RECUR_NONE (integer)

MCAL_RECUR_DAILY (integer)

MCAL_RECUR_WEEKLY (integer)

MCAL_RECUR_MONTHLY_MDAY (integer)

MCAL_RECUR_MONTHLY_WDAY (integer)

MCAL_RECUR_YEARLY (integer)

MCAL_M_SUNDAY (integer)

MCAL_M_MONDAY (integer)

MCAL_M_TUESDAY (integer)

MCAL_M_WEDNESDAY (integer)

MCAL_M_THURSDAY (integer)

MCAL_M_FRIDAY (integer)

MCAL_M_SATURDAY (integer)

MCAL_M_WEEKDAYS (integer)

MCAL_M_WEEKEND (integer)

MCAL_M_ALLDAYS (integer)

Índice
mcal_append_event -- Store a new event into an MCAL calendar
mcal_close -- Close an MCAL stream
mcal_create_calendar -- Create a new MCAL calendar
mcal_date_compare -- Compares two dates
mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date
mcal_day_of_week -- Returns the day of the week of the given date
mcal_day_of_year -- Returns the day of the year of the given date
mcal_days_in_month -- Returns the number of days in a month
mcal_delete_calendar -- Delete an MCAL calendar
mcal_delete_event -- Delete an event from an MCAL calendar
mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure
mcal_event_init -- Initializes a streams global event structure
mcal_event_set_alarm -- Sets the alarm of the streams global event structure
mcal_event_set_category -- Sets the category of the streams global event structure
mcal_event_set_class -- Sets the class of the streams global event structure
mcal_event_set_description -- Sets the description of the streams global event structure
mcal_event_set_end -- Sets the end date and time of the streams global event structure
mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure
mcal_event_set_start -- Sets the start date and time of the streams global event structure
mcal_event_set_title -- Sets the title of the streams global event structure
mcal_expunge -- Deletes all events marked for being expunged.
mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure
mcal_fetch_event -- Fetches an event from the calendar stream
mcal_is_leap_year -- Returns if the given year is a leap year or not
mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime
mcal_list_events -- Return a list of IDs for a date or a range of dates
mcal_next_recurrence -- Returns the next recurrence of the event
mcal_open -- Opens up an MCAL connection
mcal_popen -- Opens up a persistent MCAL connection
mcal_rename_calendar -- Rename an MCAL calendar
mcal_reopen -- Reopens an MCAL connection
mcal_snooze -- Turn off an alarm for an event
mcal_store_event -- Modify an existing event in an MCAL calendar
mcal_time_valid -- Returns TRUE if the given hour, minutes and seconds is a valid time
mcal_week_of_year -- Returns the week number of the given date

Anterior | Principal | Próxima
mb_substr | Acima | mcal_append_event


mcal_append_event

(PHP 4 )

mcal_append_event -- Store a new event into an MCAL calendar

Description

int mcal_append_event ( int mcal_stream)

mcal_append_event() stores the global event into an MCAL calendar for the stream mcal_stream.

Returns the id of the newly inserted event.

Anterior | Principal | Próxima
MCAL Functions | Acima | mcal_close


mcal_close

(PHP 3>= 3.0.13, PHP 4 )

mcal_close -- Close an MCAL stream

Description

int mcal_close ( int mcal_stream, int flags)

Closes the given mcal stream.

Anterior | Principal | Próxima
mcal_append_event | Acima | mcal_create_calendar


mcal_create_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_create_calendar -- Create a new MCAL calendar

Description

bool mcal_create_calendar ( int stream, string calendar)

Creates a new calendar named calendar.

Anterior | Principal | Próxima
mcal_close | Acima | mcal_date_compare


mcal_date_compare

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_compare -- Compares two dates

Description

int mcal_date_compare ( int a_year, int a_month, int a_day, int b_year, int b_month, int b_day)

mcal_date_compare() Compares the two given dates, returns <0, 0, >0 if a<b, a==b, a>b respectively.

Anterior | Principal | Próxima
mcal_create_calendar | Acima | mcal_date_valid


mcal_date_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date

Description

int mcal_date_valid ( int year, int month, int day)

mcal_date_valid() Returns TRUE if the given year, month and day is a valid date, FALSE if not.

Anterior | Principal | Próxima
mcal_date_compare | Acima | mcal_day_of_week


mcal_day_of_week

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_week -- Returns the day of the week of the given date

Description

int mcal_day_of_week ( int year, int month, int day)

mcal_day_of_week() returns the day of the week of the given date. Possible return values range from 0 for Sunday through 6 for Saturday.

Anterior | Principal | Próxima
mcal_date_valid | Acima | mcal_day_of_year


mcal_day_of_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_year -- Returns the day of the year of the given date

Description

int mcal_day_of_year ( int year, int month, int day)

mcal_day_of_year() returns the day of the year of the given date.

Anterior | Principal | Próxima
mcal_day_of_week | Acima | mcal_days_in_month


mcal_days_in_month

(PHP 3>= 3.0.13, PHP 4 )

mcal_days_in_month -- Returns the number of days in a month

Description

int mcal_days_in_month ( int month, int leap_year)

mcal_days_in_month() returns the number of days in the month month, taking into account if the considered year is a leap year or not.

Anterior | Principal | Próxima
mcal_day_of_year | Acima | mcal_delete_calendar


mcal_delete_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_calendar -- Delete an MCAL calendar

Description

string mcal_delete_calendar ( int stream, string calendar)

Deletes the calendar named calendar.

Anterior | Principal | Próxima
mcal_days_in_month | Acima | mcal_delete_event


mcal_delete_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_event -- Delete an event from an MCAL calendar

Description

int mcal_delete_event ( int mcal_stream [, int event_id])

mcal_delete_event() deletes the calendar event specified by the event_id.

Returns TRUE.

Anterior | Principal | Próxima
mcal_delete_calendar | Acima | mcal_event_add_attribute


mcal_event_add_attribute

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure

Description

void mcal_event_add_attribute ( int stream, string attribute, string value)

mcal_event_add_attribute() adds an attribute to the stream's global event structure with the value given by "value".

Anterior | Principal | Próxima
mcal_delete_event | Acima | mcal_event_init


mcal_event_init

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_init -- Initializes a streams global event structure

Description

int mcal_event_init ( int stream)

mcal_event_init() initializes a streams global event structure. this effectively sets all elements of the structure to 0, or the default settings.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_add_attribute | Acima | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_alarm -- Sets the alarm of the streams global event structure

Description

int mcal_event_set_alarm ( int stream, int alarm)

mcal_event_set_alarm() sets the streams global event structure's alarm to the given minutes before the event.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_init | Acima | mcal_event_set_category


mcal_event_set_category

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_category -- Sets the category of the streams global event structure

Description

int mcal_event_set_category ( int stream, string category)

mcal_event_set_category() sets the streams global event structure's category to the given string.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_set_alarm | Acima | mcal_event_set_class


mcal_event_set_class

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_class -- Sets the class of the streams global event structure

Description

int mcal_event_set_class ( int stream, int class)

mcal_event_set_class() sets the streams global event structure's class to the given value. The class is either 1 for public, or 0 for private.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_set_category | Acima | mcal_event_set_description


mcal_event_set_description

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_description -- Sets the description of the streams global event structure

Description

int mcal_event_set_description ( int stream, string description)

mcal_event_set_description() sets the streams global event structure's description to the given string.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_set_class | Acima | mcal_event_set_end


mcal_event_set_end

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_end -- Sets the end date and time of the streams global event structure

Description

int mcal_event_set_end ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_end() sets the streams global event structure's end date and time to the given values.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_set_description | Acima | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_daily ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_daily() sets the streams global event structure's recurrence to the given value to be reoccurring on a daily basis, ending at the given date.

Anterior | Principal | Próxima
mcal_event_set_end | Acima | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_mday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_mday() sets the streams global event structure's recurrence to the given value to be reoccurring on a monthly by month day basis, ending at the given date.

Anterior | Principal | Próxima
mcal_event_set_recur_daily | Acima | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_wday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_wday() sets the streams global event structure's recurrence to the given value to be reoccurring on a monthly by week basis, ending at the given date.

Anterior | Principal | Próxima
mcal_event_set_recur_monthly_mday | Acima | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_none ( int stream)

mcal_event_set_recur_none() sets the streams global event structure to not recur (event->recur_type is set to MCAL_RECUR_NONE).

Anterior | Principal | Próxima
mcal_event_set_recur_monthly_wday | Acima | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_weekly ( int stream, int year, int month, int day, int interval, int weekdays)

mcal_event_set_recur_weekly() sets the streams global event structure's recurrence to the given value to be reoccurring on a weekly basis, ending at the given date.

Anterior | Principal | Próxima
mcal_event_set_recur_none | Acima | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_yearly ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_yearly() sets the streams global event structure's recurrence to the given value to be reoccurring on a yearly basis,ending at the given date.

Anterior | Principal | Próxima
mcal_event_set_recur_weekly | Acima | mcal_event_set_start


mcal_event_set_start

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_start -- Sets the start date and time of the streams global event structure

Description

int mcal_event_set_start ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_start() sets the streams global event structure's start date and time to the given values.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_set_recur_yearly | Acima | mcal_event_set_title


mcal_event_set_title

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_title -- Sets the title of the streams global event structure

Description

int mcal_event_set_title ( int stream, string title)

mcal_event_set_title() sets the streams global event structure's title to the given string.

Returns TRUE.

Anterior | Principal | Próxima
mcal_event_set_start | Acima | mcal_expunge


mcal_expunge

(no version information, might be only in CVS)

mcal_expunge -- Deletes all events marked for being expunged.

Description

int mcal_expunge ( int stream)

mcal_expunge() deletes all events which have been previously marked for deletion.

Anterior | Principal | Próxima
mcal_event_set_title | Acima | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure

Description

object mcal_fetch_current_stream_event ( int stream)

mcal_fetch_current_stream_event() returns the current stream's event structure as an object containing:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

Anterior | Principal | Próxima
mcal_expunge | Acima | mcal_fetch_event


mcal_fetch_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_event -- Fetches an event from the calendar stream

Description

object mcal_fetch_event ( int mcal_stream, int event_id [, int options])

mcal_fetch_event() fetches an event from the calendar stream specified by id.

Returns an event object consisting of:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

The possible values for recur_type are:

  • 0 - Indicates that this event does not recur

  • 1 - This event recurs daily

  • 2 - This event recurs on a weekly basis

  • 3 - This event recurs monthly on a specific day of the month (e.g. the 10th of the month)

  • 4 - This event recurs monthly on a sequenced day of the week (e.g. the 3rd Saturday)

  • 5 - This event recurs on an annual basis

Anterior | Principal | Próxima
mcal_fetch_current_stream_event | Acima | mcal_is_leap_year


mcal_is_leap_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_is_leap_year -- Returns if the given year is a leap year or not

Description

int mcal_is_leap_year ( int year)

mcal_is_leap_year() returns 1 if the given year is a leap year, 0 if not.

Anterior | Principal | Próxima
mcal_fetch_event | Acima | mcal_list_alarms


mcal_list_alarms

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

array mcal_list_alarms ( int mcal_stream [, int begin_year [, int begin_month [, int begin_day [, int end_year [, int end_month [, int end_day]]]]]])

Returns an array of event ID's that has an alarm going off between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Anterior | Principal | Próxima
mcal_is_leap_year | Acima | mcal_list_events


mcal_list_events

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_events -- Return a list of IDs for a date or a range of dates

Description

array mcal_list_events ( int mcal_stream, object begin_date [, object end_date])

Returns an array of ID's that are between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() takes in an beginning date and an optional end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Anterior | Principal | Próxima
mcal_list_alarms | Acima | mcal_next_recurrence


mcal_next_recurrence

(PHP 3>= 3.0.13, PHP 4 )

mcal_next_recurrence -- Returns the next recurrence of the event

Description

int mcal_next_recurrence ( int stream, int weekstart, array next)

mcal_next_recurrence() returns an object filled with the next date the event occurs, on or after the supplied date. Returns empty date field if event does not occur or something is invalid. Uses weekstart to determine what day is considered the beginning of the week.

Anterior | Principal | Próxima
mcal_list_events | Acima | mcal_open


mcal_open

(PHP 3>= 3.0.13, PHP 4 )

mcal_open -- Opens up an MCAL connection

Description

int mcal_open ( string calendar, string username, string password [, int options])

Returns an MCAL stream on success, FALSE on error.

mcal_open() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Anterior | Principal | Próxima
mcal_next_recurrence | Acima | mcal_popen


mcal_popen

(PHP 3>= 3.0.13, PHP 4 )

mcal_popen -- Opens up a persistent MCAL connection

Description

int mcal_popen ( string calendar, string username, string password [, int options])

Returns an MCAL stream on success, FALSE on error.

mcal_popen() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Anterior | Principal | Próxima
mcal_open | Acima | mcal_rename_calendar


mcal_rename_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_rename_calendar -- Rename an MCAL calendar

Description

string mcal_rename_calendar ( int stream, string old_name, string new_name)

Renames the calendar old_name to new_name.

Anterior | Principal | Próxima
mcal_popen | Acima | mcal_reopen


mcal_reopen

(PHP 3>= 3.0.13, PHP 4 )

mcal_reopen -- Reopens an MCAL connection

Description

int mcal_reopen ( string calendar [, int options])

Reopens an MCAL stream to a new calendar.

mcal_reopen() reopens an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Anterior | Principal | Próxima
mcal_rename_calendar | Acima | mcal_snooze


mcal_snooze

(PHP 3>= 3.0.13, PHP 4 )

mcal_snooze -- Turn off an alarm for an event

Description

bool mcal_snooze ( int stream_id, int event_id)

mcal_snooze() turns off an alarm for a calendar event specified by the stream_id and event_id.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
mcal_reopen | Acima | mcal_store_event


mcal_store_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_store_event -- Modify an existing event in an MCAL calendar

Description

int mcal_store_event ( int mcal_stream)

mcal_store_event() stores the modifications to the current global event for the given stream.

Returns the event id of the modified event on success and FALSE on error.

Anterior | Principal | Próxima
mcal_snooze | Acima | mcal_time_valid


mcal_time_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_time_valid -- Returns TRUE if the given hour, minutes and seconds is a valid time

Description

int mcal_time_valid ( int hour, int minutes, int seconds)

mcal_time_valid() Returns TRUE if the given hour, minutes and seconds is a valid time, FALSE if not.

Anterior | Principal | Próxima
mcal_store_event | Acima | mcal_week_of_year


mcal_week_of_year

(PHP 4 )

mcal_week_of_year -- Returns the week number of the given date

Description

int mcal_week_of_year ( int day, int month, int year)

mcal_week_of_year() returns the week number of the given date.

Anterior | Principal | Próxima
mcal_time_valid | Acima | Mcrypt Encryption Functions


Mcrypt Encryption Functions

Manual do PHP
Anterior Próxima

LV. Mcrypt Encryption Functions

Introdução

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free".

Requisitos

These functions work using mcrypt. To use it, download libmcrypt-x.x.tar.gz from http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at http://ftp.emini.dk/pub/php/win32/mcrypt/.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.

Instalação

You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Mcrypt configuration options

Name | Default | Changeable
mcrypt.algorithms_dir | NULL | PHP_INI_ALL
mcrypt.modes_dir | NULL | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Mcrypt can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x or higher the functions can also operate in the block cipher mode nOFB and in STREAM mode. Below you find a list with all supported encryption modes together with the constants that are defines for the encryption mode. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) is suitable for random data, such as encrypting other keys. Since data there is short and random, the disadvantages of ECB have a favorable negative effect.

  • MCRYPT_MODE_CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.

  • MCRYPT_MODE_CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.

  • MCRYPT_MODE_OFB (output feedback, in 8bit) is comparable to CFB, but can be used in applications where error propagation cannot be tolerated. It's insecure (because it operates in 8bit mode) so it is not recommended to use it.

  • MCRYPT_MODE_NOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.

  • MCRYPT_MODE_STREAM is an extra mode to include some stream algorithms like WAKE or RC4.

Some other mode and random device constants:

MCRYPT_ENCRYPT (integer)

MCRYPT_DECRYPT (integer)

MCRYPT_DEV_RANDOM (integer)

MCRYPT_DEV_URANDOM (integer)

MCRYPT_RAND (integer)

Mcrypt ciphers

Here is a list of ciphers which are currently supported by the mcrypt extension. For a complete list of supported ciphers, see the defines at the end of mcrypt.h. The general rule with the mcrypt-2.2.x API is that you can access the cipher from PHP with MCRYPT_ciphername. With the libmcrypt-2.4.x and libmcrypt-2.5.x API these constants also work, but it is possible to specify the name of the cipher as a string with a call to mcrypt_module_open().

  • MCRYPT_3DES

  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)

  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)

  • MCRYPT_BLOWFISH

  • MCRYPT_CAST_128

  • MCRYPT_CAST_256

  • MCRYPT_CRYPT

  • MCRYPT_DES

  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)

  • MCRYPT_ENIGMA (libmcrypt > 2.4.x only, alias for MCRYPT_CRYPT)

  • MCRYPT_GOST

  • MCRYPT_IDEA (non-free)

  • MCRYPT_LOKI97 (libmcrypt > 2.4.x only)

  • MCRYPT_MARS (libmcrypt > 2.4.x only, non-free)

  • MCRYPT_PANAMA (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x only)

  • MCRYPT_RC2

  • MCRYPT_RC4 (libmcrypt 2.2.x only)

  • MCRYPT_RC6 (libmcrypt > 2.4.x only)

  • MCRYPT_RC6_128 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_192 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_256 (libmcrypt 2.2.x only)

  • MCRYPT_SAFER64

  • MCRYPT_SAFER128

  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT(libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x only)

  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x only)

  • MCRYPT_TEAN (libmcrypt 2.2.x only)

  • MCRYPT_THREEWAY

  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x only)

  • MCRYPT_TWOFISH (for older mcrypt 2.x versions, or mcrypt > 2.4.x )

  • MCRYPT_TWOFISH128 (TWOFISHxxx are available in newer 2.x versions, but not in the 2.4.x versions)

  • MCRYPT_TWOFISH192

  • MCRYPT_TWOFISH256

  • MCRYPT_WAKE (libmcrypt > 2.4.x only)

  • MCRYPT_XTEA (libmcrypt > 2.4.x only)

You must (in CFB and OFB mode) or can (in CBC mode) supply an initialization vector (IV) to the respective cipher function. The IV must be unique and must be the same when decrypting/encrypting. With data which is stored encrypted, you can take the output of a function of the index under which the data is stored (e.g. the MD5 key of the filename). Alternatively, you can transmit the IV together with the encrypted data (see chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic).

Exemplos

Mcrypt can be used to encrypt and decrypt using the above mentioned ciphers. If you linked against libmcrypt-2.2.x, the four important mcrypt commands (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) can operate in both modes which are named MCRYPT_ENCRYPT and MCRYPT_DECRYPT, respectively.

Exemplo 1. Encrypt an input value with TripleDES under 2.2.x in ECB mode

<?php
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";

$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
?>
This example will give you the encrypted data as a string in $encrypted_data.

If you linked against libmcrypt 2.4.x or 2.5.x, these functions are still available, but it is recommended that you use the advanced functions.

Exemplo 2. Encrypt an input value with TripleDES under 2.4.x and higher in ECB mode

<?php
    $key = "this is a secret key";
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('tripledes', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
This example will give you the encrypted data as a string in $encrypted_data. For a full example see mcrypt_module_open().

Índice
mcrypt_cbc -- Encrypt/decrypt data in CBC mode
mcrypt_cfb -- Encrypt/decrypt data in CFB mode
mcrypt_create_iv -- Create an initialization vector (IV) from a random source
mcrypt_decrypt -- Decrypts crypttext with given parameters
mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode
mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm
mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm
mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm
mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_enc_get_modes_name -- Returns the name of the opened mode
mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks
mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm
mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks
mcrypt_enc_self_test -- This function runs a self test on the opened module
mcrypt_encrypt -- Encrypts plaintext with given parameters
mcrypt_generic_deinit -- This function deinitializes an encryption module
mcrypt_generic_end -- This function terminates encryption
mcrypt_generic_init -- This function initializes all buffers needed for encryption
mcrypt_generic -- This function encrypts data
mcrypt_get_block_size -- Get the block size of the specified cipher
mcrypt_get_cipher_name -- Get the name of the specified cipher
mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination
mcrypt_get_key_size -- Get the key size of the specified cipher
mcrypt_list_algorithms -- Get an array of all supported ciphers
mcrypt_list_modes -- Get an array of all supported modes
mcrypt_module_close -- Close the mcrypt module
mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm
mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_module_is_block_algorithm_mode -- returns if the specified module is a block algorithm or not
mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm
mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not
mcrypt_module_open -- Opens the module of the algorithm and the mode to be used
mcrypt_module_self_test -- This function runs a self test on the specified module
mcrypt_ofb -- Encrypt/decrypt data in OFB mode
mdecrypt_generic -- Decrypt data

Anterior | Principal | Próxima
mcal_week_of_year | Acima | mcrypt_cbc


mcrypt_cbc

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_cbc -- Encrypt/decrypt data in CBC mode

Description

string mcrypt_cbc ( int cipher, string key, string data, int mode [, string iv])

string mcrypt_cbc ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Anterior | Principal | Próxima
Mcrypt Encryption Functions | Acima | mcrypt_cfb


mcrypt_cfb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_cfb -- Encrypt/decrypt data in CFB mode

Description

string mcrypt_cfb ( int cipher, string key, string data, int mode, string iv)

string mcrypt_cfb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Anterior | Principal | Próxima
mcrypt_cbc | Acima | mcrypt_create_iv


mcrypt_create_iv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_create_iv -- Create an initialization vector (IV) from a random source

Description

string mcrypt_create_iv ( int size, int source)

mcrypt_create_iv() is used to create an IV.

mcrypt_create_iv() takes two arguments, size determines the size of the IV, source specifies the source of the IV.

The source can be MCRYPT_RAND (system random number generator), MCRYPT_DEV_RANDOM (read data from /dev/random) and MCRYPT_DEV_URANDOM (read data from /dev/urandom). If you use MCRYPT_RAND, make sure to call srand() before to initialize the random number generator. MCRYPT_RAND is the only one supported on Windows because Windows (of course) doesn't have /dev/random or /dev/urandom.

Exemplo 1. mcrypt_create_iv() example

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without loosing security.

More information can be found at http://www.ciphersbyritter.com/GLOSSARY.HTM#IV, http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm and in chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic.

Anterior | Principal | Próxima
mcrypt_cfb | Acima | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decrypt -- Decrypts crypttext with given parameters

Description

string mcrypt_decrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_decrypt() decrypts the data and returns the unencrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data is encrypted. If it's smaller that the required keysize, it is padded with '\0'.

Data is the data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Anterior | Principal | Próxima
mcrypt_create_iv | Acima | mcrypt_ecb


mcrypt_ecb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode

Description

string mcrypt_ecb ( int cipher, string key, string data, int mode)

string mcrypt_ecb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function is deprecated and should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Anterior | Principal | Próxima
mcrypt_decrypt | Acima | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm

Description

string mcrypt_enc_get_algorithms_name ( resource td)

This function returns the name of the algorithm.

Exemplo 1. mcrypt_enc_get_algorithms_name() example

<?php
    $td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";

    $td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Prints:
CAST-256
CAST-256

Anterior | Principal | Próxima
mcrypt_ecb | Acima | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm

Description

int mcrypt_enc_get_block_size ( resource td)

This function returns the block size of the algorithm specified by the encryption descriptor td in bytes.

Anterior | Principal | Próxima
mcrypt_enc_get_algorithms_name | Acima | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm

Description

int mcrypt_enc_get_iv_size ( resource td)

This function returns the size of the iv of the algorithm specified by the encryption descriptor in bytes. If it returns '0' then the IV is ignored in the algorithm. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Anterior | Principal | Próxima
mcrypt_enc_get_block_size | Acima | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_enc_get_key_size ( resource td)

This function returns the maximum supported key size of the algorithm specified by the encryption descriptor td in bytes.

Anterior | Principal | Próxima
mcrypt_enc_get_iv_size | Acima | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_name -- Returns the name of the opened mode

Description

string mcrypt_enc_get_modes_name ( resource td)

This function returns the name of the mode.

Exemplo 1. mcrypt_enc_get_modes_name() example

<?php
    $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_modes_name($td). "\n";

    $td = mcrypt_module_open ('cast-256', '', 'ecb', '');
    echo mcrypt_enc_get_modes_name($td). "\n";
?>

Prints:

CFB
ECB

Anterior | Principal | Próxima
mcrypt_enc_get_key_size | Acima | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_enc_get_supported_key_sizes ( resource td)

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

Exemplo 1. mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

This will print:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}

Anterior | Principal | Próxima
mcrypt_enc_get_modes_name | Acima | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource td)

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb).

Anterior | Principal | Próxima
mcrypt_enc_get_supported_key_sizes | Acima | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm

Description

bool mcrypt_enc_is_block_algorithm ( resource td)

This function returns TRUE if the algorithm is a block algorithm, or FALSE if it is a stream algorithm.

Anterior | Principal | Próxima
mcrypt_enc_is_block_algorithm_mode | Acima | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks

Description

bool mcrypt_enc_is_block_mode ( resource td)

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

Anterior | Principal | Próxima
mcrypt_enc_is_block_algorithm | Acima | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_test -- This function runs a self test on the opened module

Description

bool mcrypt_enc_self_test ( resource td)

This function runs the self test on the algorithm specified by the descriptor td. If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.

Anterior | Principal | Próxima
mcrypt_enc_is_block_mode | Acima | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt -- Encrypts plaintext with given parameters

Description

string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_encrypt() encrypts the data and returns the encrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data will be encrypted. If it's smaller that the required keysize, it is padded with '\0'. It is better not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.

Data is the data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'. The returned crypttext can be larger that the size of the data that is given by data.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Exemplo 1. mcrypt_encrypt() Example

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext) . "\n";
?>

The above example will print out:
42
64

See also mcrypt_module_open() for a more advanced API and an example.

Anterior | Principal | Próxima
mcrypt_enc_self_test | Acima | mcrypt_generic_deinit


mcrypt_generic_deinit

(PHP 4 >= 4.1.1, PHP 5)

mcrypt_generic_deinit -- This function deinitializes an encryption module

Description

bool mcrypt_generic_deinit ( resource td)

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.) Returns FALSE on error, or TRUE on success.

See for an example mcrypt_module_open() and the entry on mcrypt_generic_init().

Anterior | Principal | Próxima
mcrypt_encrypt | Acima | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end -- This function terminates encryption

Description

bool mcrypt_generic_end ( resource td)

Atenção

This function is deprecated, use mcrypt_generic_deinit() instead. It can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.

Anterior | Principal | Próxima
mcrypt_generic_deinit | Acima | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_init -- This function initializes all buffers needed for encryption

Description

int mcrypt_generic_init ( resource td, string key, string iv)

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal. The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

The function returns a negative value on error, -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly.

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

See for an example mcrypt_module_open().

Anterior | Principal | Próxima
mcrypt_generic_end | Acima | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic -- This function encrypts data

Description

string mcrypt_generic ( resource td, string data)

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer then the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim()($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember that varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Anterior | Principal | Próxima
mcrypt_generic_init | Acima | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_block_size -- Get the block size of the specified cipher

Description

int mcrypt_get_block_size ( int cipher)

int mcrypt_get_block_size ( string cipher, string module)

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

Exemplo 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_block_size('tripledes', 'ecb');
?>

Prints:
8

See also: mcrypt_get_key_size(),
mcrypt_enc_get_block_size() and
mcrypt_encrypt().

Anterior | Principal | Próxima
mcrypt_generic | Acima | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_cipher_name -- Get the name of the specified cipher

Description

string mcrypt_get_cipher_name ( int cipher)

string mcrypt_get_cipher_name ( string cipher)

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or FALSE, if the cipher does not exist.

Exemplo 1. mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

The above example will produce:
3DES

Anterior | Principal | Próxima
mcrypt_get_block_size | Acima | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination

Description

int mcrypt_get_iv_size ( string cipher, string mode)

mcrypt_get_iv_size() returns the size of the Initialisation Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

mode is one of the MCRYPT_MODE_modename constants or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Exemplo 1. mcrypt_get_iv_size() example

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

See also
mcrypt_get_block_size(),
mcrypt_enc_get_iv_size() and
mcrypt_create_iv().

Anterior | Principal | Próxima
mcrypt_get_cipher_name | Acima | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_key_size -- Get the key size of the specified cipher

Description

int mcrypt_get_key_size ( int cipher)

int mcrypt_get_key_size ( string cipher, string module)

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x. It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Exemplo 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

Prints:
24

See also: mcrypt_get_block_size(),
mcrypt_end_get_key_size() and
mcrypt_encrypt().

Anterior | Principal | Próxima
mcrypt_get_iv_size | Acima | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithms -- Get an array of all supported ciphers

Description

array mcrypt_list_algorithms ( [string lib_dir])

mcrypt_list_algorithms() is used to get an array of all supported algorithms in the lib_dir parameter.

mcrypt_list_algorithms() takes an optional lib_dir parameter which specifies the directory where all algorithms are located. If not specifies, the value of the mcrypt.algorithms_dir php.ini directive is used.

Exemplo 1. mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

Anterior | Principal | Próxima
mcrypt_get_key_size | Acima | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modes -- Get an array of all supported modes

Description

array mcrypt_list_modes ( [string lib_dir])

mcrypt_list_modes() is used to get an array of all supported modes in the lib_dir.

mcrypt_list_modes() takes as optional parameter a directory which specifies the directory where all modes are located. If not specifies, the value of the mcrypt.modes_dir php.ini directive is used.

Exemplo 1. mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the default mode directory. If it is not set with the ini directive mcrypt.modes_dir, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).

Anterior | Principal | Próxima
mcrypt_list_algorithms | Acima | mcrypt_module_close


mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_close -- Close the mcrypt module

Description

bool mcrypt_module_close ( resource td)

This function closes the specified encryption handle.

See mcrypt_module_open() for an example.

Anterior | Principal | Próxima
mcrypt_list_modes | Acima | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm

Description

int mcrypt_module_get_algo_block_size ( string algorithm [, string lib_dir])

This function returns the block size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Principal | Próxima
mcrypt_module_close | Acima | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_module_get_algo_key_size ( string algorithm [, string lib_dir])

This function returns the maximum supported key size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Principal | Próxima
mcrypt_module_get_algo_block_size | Acima | mcrypt_module_get_supported_key_sizes


mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_module_get_supported_key_sizes ( string algorithm [, string lib_dir])

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm. The optional lib_dir parameter can contain the location where the mode module is on the system.

See also mcrypt_enc_get_supported_key_sizes() which is used on open encryption modules.

Anterior | Principal | Próxima
mcrypt_module_get_algo_key_size | Acima | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_mode -- returns if the specified module is a block algorithm or not

Description

bool mcrypt_module_is_block_algorithm_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Principal | Próxima
mcrypt_module_get_supported_key_sizes | Acima | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm

Description

bool mcrypt_module_is_block_algorithm ( string algorithm [, string lib_dir])

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE is it is a stream algorithm. The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Anterior | Principal | Próxima
mcrypt_module_is_block_algorithm_mode | Acima | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not

Description

bool mcrypt_module_is_block_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Principal | Próxima
mcrypt_module_is_block_algorithm | Acima | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open -- Opens the module of the algorithm and the mode to be used

Description

resource mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory)

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close(). Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string (""), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usually /usr/local/lib/libmcrypt).

Exemplo 1. mcrypt_module_open() examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Exemplo 2. Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length, used MCRYPT_RAND
     * on Windows instead */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Create key */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Show string */
    echo trim($decrypted) . "\n";
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Anterior | Principal | Próxima
mcrypt_module_is_block_mode | Acima | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_test -- This function runs a self test on the specified module

Description

bool mcrypt_module_self_test ( string algorithm [, string lib_dir])

This function runs the self test on the algorithm specified. The optional lib_dir parameter can contain the location of where the algorithm module is on the system.

The function returns TRUE if the self test succeeds, or FALSE when if fails.

Exemplo 1. mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

The above example will output:

bool(true)
bool(false)

Anterior | Principal | Próxima
mcrypt_module_open | Acima | mcrypt_ofb


mcrypt_ofb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_ofb -- Encrypt/decrypt data in OFB mode

Description

string mcrypt_ofb ( int cipher, string key, string data, int mode, string iv)

string mcrypt_ofb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Anterior | Principal | Próxima
mcrypt_module_self_test | Acima | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic -- Decrypt data

Description

string mdecrypt_generic ( resource td, string data)

This function decrypts data. Note that the length of the returned string can in fact be longer then the unencrypted string, due to the padding of the data.

Exemplo 1. mdecrypt_generic() example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The above example shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mcrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Anterior | Principal | Próxima
mcrypt_ofb | Acima | MCVE Payment Functions


MCVE Payment Functions

Manual do PHP
Anterior Próxima

LVI. MCVE Payment Functions

Introdução

These functions interface the MCVE API (libmcve), allowing you to work directly with MCVE from your PHP scripts. MCVE is Main Street Softworks' solution to direct credit card processing for Linux / Unix ( http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE module for PHP, you can process credit cards directly through MCVE via your PHP scripts. The following references will outline the process.

Nota: MCVE is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientele to the MCVE platform.

Nota: Esta extensão não está disponível na plataforma Windows.

Instalação

To enable MCVE Support in PHP, first verify your LibMCVE installation directory. You will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your MCVE installation, PHP will attempt to look in the default LibMCVE Install location (/usr/local). If MCVE is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE installation. Please note that MCVE support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h under the include directory and libmcve.so and/or libmcve.a under the lib directory.

Since MCVE has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE extension in PHP, you may connect to testbox.mcve.com on port 8333 for IP, or port 8444 for SSL using the MCVE PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at http://www.mainstreetsoftworks.com/.

Veja Também

Additional documentation about MCVE's PHP API can be found at http://www.mainstreetsoftworks.com/docs/phpapi.pdf. Main Street's documentation is complete and should be the primary reference for functions.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

MC_TRANTYPE (integer)

MC_USERNAME (integer)

MC_PASSWORD (integer)

MC_ACCOUNT (integer)

MC_TRACKDATA (integer)

MC_EXPDATE (integer)

MC_STREET (integer)

MC_ZIP (integer)

MC_CV (integer)

MC_COMMENTS (integer)

MC_CLERKID (integer)

MC_STATIONID (integer)

MC_APPRCODE (integer)

MC_AMOUNT (integer)

MC_PTRANNUM (integer)

MC_TTID (integer)

MC_USER (integer)

MC_PWD (integer)

MC_ACCT (integer)

MC_BDATE (integer)

MC_EDATE (integer)

MC_BATCH (integer)

MC_FILE (integer)

MC_ADMIN (integer)

MC_AUDITTYPE (integer)

MC_CUSTOM (integer)

MC_EXAMOUNT (integer)

MC_EXCHARGES (integer)

MC_RATE (integer)

MC_RENTERNAME (integer)

MC_RETURNCITY (integer)

MC_RETURNSTATE (integer)

MC_RETURNLOCATION (integer)

MC_PRIORITY (integer)

MC_INQUIRY (integer)

MC_CARDTYPES (integer)

MC_SUB (integer)

MC_MARKER (integer)

MC_DEVICETYPE (integer)

MC_ERRORCODE (integer)

MC_NEWBATCH (integer)

MC_CURR (integer)

MC_DESCMERCH (integer)

MC_DESCLOC (integer)

MC_ORIGTYPE (integer)

MC_PIN (integer)

MC_VOIDORIGTYPE (integer)

MC_TIMESTAMP (integer)

MC_PRIO_HIGH (integer)

MC_PRIO_NORMAL (integer)

MC_PRIO_LOW (integer)

MC_USER_PROC (integer)

MC_USER_USER (integer)

MC_USER_PWD (integer)

MC_USER_INDCODE (integer)

MC_USER_MERCHID (integer)

MC_USER_BANKID (integer)

MC_USER_TERMID (integer)

MC_USER_CLIENTNUM (integer)

MC_USER_STOREID (integer)

MC_USER_AGENTID (integer)

MC_USER_CHAINID (integer)

MC_USER_ZIPCODE (integer)

MC_USER_TIMEZONE (integer)

MC_USER_MERCHCAT (integer)

MC_USER_MERNAME (integer)

MC_USER_MERCHLOC (integer)

MC_USER_STATECODE (integer)

MC_USER_PHONE (integer)

MC_USER_SUB (integer)

MC_USER_CARDTYPES (integer)

MC_USER_MODE (integer)

MC_USER_VNUMBER (integer)

MC_USER_ROUTINGID (integer)

MC_USER_PPROPERTY (integer)

MC_USER_PID (integer)

MC_USER_PIDPWD (integer)

MC_USER_SMID (integer)

MC_USER_SMIDPWD (integer)

MC_USER_USDDIV (integer)

MC_USER_AUDDIV (integer)

MC_USER_DKKDIV (integer)

MC_USER_GBPDIV (integer)

MC_USER_HKDDIV (integer)

MC_USER_JPYDIV (integer)

MC_USER_NZDDIV (integer)

MC_USER_NOKDIV (integer)

MC_USER_SGDDIV (integer)

MC_USER_ZARDIV (integer)

MC_USER_SEKDIV (integer)

MC_USER_CHFDIV (integer)

MC_USER_CADDIV (integer)

MC_USER_DIVNUM (integer)

MC_CARD_VISA (integer)

MC_CARD_MC (integer)

MC_CARD_AMEX (integer)

MC_CARD_DISC (integer)

MC_CARD_JCB (integer)

MC_CARD_CB (integer)

MC_CARD_DC (integer)

MC_CARD_GIFT (integer)

MC_CARD_OTHER (integer)

MC_CARD_ALL (integer)

MC_MODE_AUTH (integer)

MC_MODE_SETTLE (integer)

MC_MODE_BOTH (integer)

MC_MODE_ALL (integer)

MC_EXCHARGES_REST (integer)

MC_EXCHARGES_GIFT (integer)

MC_EXCHARGES_MINI (integer)

MC_EXCHARGES_TELE (integer)

MC_EXCHARGES_OTHER (integer)

MC_EXCHARGES_LAUND (integer)

MC_EXCHARGES_NONE (integer)

MC_EXCHARGES_GAS (integer)

MC_EXCHARGES_MILE (integer)

MC_EXCHARGES_LATE (integer)

MC_EXCHARGES_1WAY (integer)

MC_EXCHARGES_VIOL (integer)

MC_TRAN_SALE (integer)

MC_TRAN_REDEMPTION (integer)

MC_TRAN_PREAUTH (integer)

MC_TRAN_VOID (integer)

MC_TRAN_PREAUTHCOMPLETE (integer)

MC_TRAN_FORCE (integer)

MC_TRAN_OVERRIDE (integer)

MC_TRAN_RETURN (integer)

MC_TRAN_RELOAD (integer)

MC_TRAN_CREDIT (integer)

MC_TRAN_SETTLE (integer)

MC_TRAN_INCREMENTAL (integer)

MC_TRAN_REVERSAL (integer)

MC_TRAN_ACTIVATE (integer)

MC_TRAN_BALANCEINQ (integer)

MC_TRAN_CASHOUT (integer)

MC_TRAN_TOREVERSAL (integer)

MC_TRAN_SETTLERFR (integer)

MC_TRAN_ISSUE (integer)

MC_TRAN_TIP (integer)

MC_TRAN_MERCHRETURN (integer)

MC_TRAN_IVRREQ (integer)

MC_TRAN_IVRRESP (integer)

MC_TRAN_ADMIN (integer)

MC_TRAN_PING (integer)

MC_TRAN_CHKPWD (integer)

MC_TRAN_CHNGPWD (integer)

MC_TRAN_LISTSTATS (integer)

MC_TRAN_LISTUSERS (integer)

MC_TRAN_GETUSERINFO (integer)

MC_TRAN_ADDUSER (integer)

MC_TRAN_EDITUSER (integer)

MC_TRAN_DELUSER (integer)

MC_TRAN_ENABLEUSER (integer)

MC_TRAN_DISABLEUSER (integer)

MC_TRAN_IMPORT (integer)

MC_TRAN_EXPORT (integer)

MC_TRAN_ERRORLOG (integer)

MC_TRAN_CLEARERRORLOG (integer)

MC_TRAN_GETSUBACCTS (integer)

MC_ADMIN_GUT (integer)

MC_ADMIN_GL (integer)

MC_ADMIN_GFT (integer)

MC_ADMIN_BT (integer)

MC_ADMIN_UB (integer)

MC_ADMIN_QC (integer)

MC_ADMIN_RS (integer)

MC_ADMIN_CTH (integer)

MC_ADMIN_CFH (integer)

MC_ADMIN_FORCESETTLE (integer)

MC_ADMIN_SETBATCHNUM (integer)

MC_ADMIN_RENUMBERBATCH (integer)

MC_ADMIN_FIELDEDIT (integer)

MC_ADMIN_CLOSEBATCH (integer)

MCVE_UNUSED (integer)

MCVE_NEW (integer)

MCVE_PENDING (integer)

MCVE_DONE (integer)

MCVE_GOOD (integer)

MCVE_BAD (integer)

MCVE_STREET (integer)

MCVE_ZIP (integer)

MCVE_UNKNOWN (integer)

MCVE_ERROR (integer)

MCVE_FAIL (integer)

MCVE_SUCCESS (integer)

MCVE_AUTH (integer)

MCVE_DENY (integer)

MCVE_CALL (integer)

MCVE_DUPL (integer)

MCVE_PKUP (integer)

MCVE_RETRY (integer)

MCVE_SETUP (integer)

MCVE_TIMEOUT (integer)

MCVE_SALE (integer)

MCVE_PREAUTH (integer)

MCVE_FORCE (integer)

MCVE_OVERRIDE (integer)

MCVE_RETURN (integer)

MCVE_SETTLE (integer)

MCVE_PROC (integer)

MCVE_USER (integer)

MCVE_PWD (integer)

MCVE_INDCODE (integer)

MCVE_MERCHID (integer)

MCVE_BANKID (integer)

MCVE_TERMID (integer)

MCVE_CLIENTNUM (integer)

MCVE_STOREID (integer)

MCVE_AGENTID (integer)

MCVE_CHAINID (integer)

MCVE_ZIPCODE (integer)

MCVE_TIMEZONE (integer)

MCVE_MERCHCAT (integer)

MCVE_MERNAME (integer)

MCVE_MERCHLOC (integer)

MCVE_STATECODE (integer)

MCVE_SERVICEPHONE (integer)

Índice
mcve_adduser -- Add an MCVE user using usersetup structure
mcve_adduserarg -- Add a value to user configuration structure
mcve_bt -- Get unsettled batch totals
mcve_checkstatus -- Check to see if a transaction has completed
mcve_chkpwd -- Verify Password
mcve_chngpwd -- Change the system administrator's password
mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers
mcve_connect -- Establish the connection to MCVE
mcve_connectionerror -- Get a textual representation of why a connection failed
mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure
mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure
mcve_deleteusersetup -- Deallocate data associated with usersetup structure
mcve_deluser -- Delete an MCVE user account
mcve_destroyconn -- Destroy the connection and MCVE_CONN structure
mcve_destroyengine -- Free memory associated with IP/SSL connectivity
mcve_disableuser -- Disable an active MCVE user account
mcve_edituser -- Edit MCVE user using usersetup structure
mcve_enableuser -- Enable an inactive MCVE user account
mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)
mcve_getcell -- Get a specific cell from a comma delimited response by column name
mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number
mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE
mcve_getheader -- Get the name of the column in a comma-delimited response
mcve_getuserarg -- Grab a value from usersetup structure
mcve_getuserparam -- Get a user response parameter
mcve_gft -- Audit MCVE for Failed transactions
mcve_gl -- Audit MCVE for settled transactions
mcve_gut -- Audit MCVE for Unsettled Transactions
mcve_initconn -- Create and initialize an MCVE_CONN structure
mcve_initengine -- Ready the client for IP/SSL Communication
mcve_initusersetup -- Initialize structure to store user data
mcve_iscommadelimited -- Checks to see if response is comma delimited
mcve_liststats -- List statistics for all users on MCVE system
mcve_listusers -- List all users on MCVE system
mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE
mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking
mcve_numcolumns -- Number of columns returned in a comma delimited response
mcve_numrows -- Number of rows returned in a comma delimited response
mcve_override -- Send an OVERRIDE to MCVE
mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work
mcve_ping -- Send a ping request to MCVE
mcve_preauth -- Send a PREAUTHORIZATION to MCVE
mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement
mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue
mcve_responseparam -- Get a custom response parameter
mcve_return -- Issue a RETURN or CREDIT to MCVE
mcve_returncode -- Grab the exact return code from the transaction
mcve_returnstatus -- Check to see if the transaction was successful
mcve_sale -- Send a SALE to MCVE
mcve_setblocking -- Set blocking/non-blocking mode for connection
mcve_setdropfile -- Set the connection method to Drop-File
mcve_setip -- Set the connection method to IP
mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification
mcve_setssl -- Set the connection method to SSL
mcve_settimeout -- Set maximum transaction time (per trans)
mcve_settle -- Issue a settlement command to do a batch deposit
mcve_text_avs -- Get a textual representation of the return_avs
mcve_text_code -- Get a textual representation of the return_code
mcve_text_cv -- Get a textual representation of the return_cv
mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)
mcve_transactionavs -- Get the Address Verification return status
mcve_transactionbatch -- Get the batch number associated with the transaction
mcve_transactioncv -- Get the CVC2/CVV2/CID return status
mcve_transactionid -- Get the unique system id for the transaction
mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction
mcve_transactionssent -- Check to see if outgoing buffer is clear
mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution
mcve_transinqueue -- Number of transactions in client-queue
mcve_transnew -- Start a new transaction
mcve_transparam -- Add a parameter to a transaction
mcve_transsend -- Finalize and send the transaction
mcve_ub -- Get a list of all Unsettled batches
mcve_uwait -- Wait x microsecs
mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection
mcve_verifysslcert -- Set whether or not to verify the server ssl certificate
mcve_void -- VOID a transaction in the settlement queue

Anterior | Principal | Próxima
mdecrypt_generic | Acima | mcve_adduser


mcve_adduser

(PHP 4 >= 4.2.0, PHP 5)

mcve_adduser -- Add an MCVE user using usersetup structure

Description

int mcve_adduser ( resource conn, string admin_password, int usersetup)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
MCVE Payment Functions | Acima | mcve_adduserarg


mcve_adduserarg

(PHP 4 >= 4.2.0, PHP 5)

mcve_adduserarg -- Add a value to user configuration structure

Description

int mcve_adduserarg ( resource usersetup, int argtype, string argval)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_adduser | Acima | mcve_bt


mcve_bt

(PHP 4 >= 4.2.0, PHP 5)

mcve_bt -- Get unsettled batch totals

Description

int mcve_bt ( resource conn, string username, string password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_adduserarg | Acima | mcve_checkstatus


mcve_checkstatus

(PHP 4 >= 4.2.0, PHP 5)

mcve_checkstatus -- Check to see if a transaction has completed

Description

int mcve_checkstatus ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_bt | Acima | mcve_chkpwd


mcve_chkpwd

(PHP 4 >= 4.2.0, PHP 5)

mcve_chkpwd -- Verify Password

Description

int mcve_chkpwd ( resource conn, string username, string password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_checkstatus | Acima | mcve_chngpwd


mcve_chngpwd

(PHP 4 >= 4.2.0, PHP 5)

mcve_chngpwd -- Change the system administrator's password

Description

int mcve_chngpwd ( resource conn, string admin_password, string new_password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_chkpwd | Acima | mcve_completeauthorizations


mcve_completeauthorizations

(PHP 4 >= 4.2.0, PHP 5)

mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers

Description

int mcve_completeauthorizations ( resource conn, int &array)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_chngpwd | Acima | mcve_connect


mcve_connect

(PHP 4 >= 4.2.0, PHP 5)

mcve_connect -- Establish the connection to MCVE

Description

int mcve_connect ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_completeauthorizations | Acima | mcve_connectionerror


mcve_connectionerror

(PHP 4 >= 4.3.0, PHP 5)

mcve_connectionerror -- Get a textual representation of why a connection failed

Description

string mcve_connectionerror ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_connect | Acima | mcve_deleteresponse


mcve_deleteresponse

(PHP 4 >= 4.2.0, PHP 5)

mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deleteresponse ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_connectionerror | Acima | mcve_deletetrans


mcve_deletetrans

(PHP 4 >= 4.3.0, PHP 5)

mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deletetrans ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_deleteresponse | Acima | mcve_deleteusersetup


mcve_deleteusersetup

(PHP 4 >= 4.2.0, PHP 5)

mcve_deleteusersetup -- Deallocate data associated with usersetup structure

Description

void mcve_deleteusersetup ( resource usersetup)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_deletetrans | Acima | mcve_deluser


mcve_deluser

(PHP 4 >= 4.2.0, PHP 5)

mcve_deluser -- Delete an MCVE user account

Description

int mcve_deluser ( resource conn, string admin_password, string username)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_deleteusersetup | Acima | mcve_destroyconn


mcve_destroyconn

(PHP 4 >= 4.2.0, PHP 5)

mcve_destroyconn -- Destroy the connection and MCVE_CONN structure

Description

void mcve_destroyconn ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_deluser | Acima | mcve_destroyengine


mcve_destroyengine

(PHP 4 >= 4.2.0, PHP 5)

mcve_destroyengine -- Free memory associated with IP/SSL connectivity

Description

void mcve_destroyengine ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_destroyconn | Acima | mcve_disableuser


mcve_disableuser

(PHP 4 >= 4.2.0, PHP 5)

mcve_disableuser -- Disable an active MCVE user account

Description

int mcve_disableuser ( resource conn, string admin_password, string username)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_destroyengine | Acima | mcve_edituser


mcve_edituser

(PHP 4 >= 4.2.0, PHP 5)

mcve_edituser -- Edit MCVE user using usersetup structure

Description

int mcve_edituser ( resource conn, string admin_password, int usersetup)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_disableuser | Acima | mcve_enableuser


mcve_enableuser

(PHP 4 >= 4.2.0, PHP 5)

mcve_enableuser -- Enable an inactive MCVE user account

Description

int mcve_enableuser ( resource conn, string admin_password, string username)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_edituser | Acima | mcve_force


mcve_force

(PHP 4 >= 4.2.0, PHP 5)

mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)

Description

int mcve_force ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string authcode, string comments, string clerkid, string stationid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_enableuser | Acima | mcve_getcell


mcve_getcell

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcell -- Get a specific cell from a comma delimited response by column name

Description

string mcve_getcell ( resource conn, int identifier, string column, int row)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_force | Acima | mcve_getcellbynum


mcve_getcellbynum

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number

Description

string mcve_getcellbynum ( resource conn, int identifier, int column, int row)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_getcell | Acima | mcve_getcommadelimited


mcve_getcommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE

Description

string mcve_getcommadelimited ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_getcellbynum | Acima | mcve_getheader


mcve_getheader

(PHP 4 >= 4.2.0, PHP 5)

mcve_getheader -- Get the name of the column in a comma-delimited response

Description

string mcve_getheader ( resource conn, int identifier, int column_num)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_getcommadelimited | Acima | mcve_getuserarg


mcve_getuserarg

(PHP 4 >= 4.2.0, PHP 5)

mcve_getuserarg -- Grab a value from usersetup structure

Description

string mcve_getuserarg ( resource usersetup, int argtype)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_getheader | Acima | mcve_getuserparam


mcve_getuserparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_getuserparam -- Get a user response parameter

Description

string mcve_getuserparam ( resource conn, long identifier, int key)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_getuserarg | Acima | mcve_gft


mcve_gft

(PHP 4 >= 4.2.0, PHP 5)

mcve_gft -- Audit MCVE for Failed transactions

Description

int mcve_gft ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_getuserparam | Acima | mcve_gl


mcve_gl

(PHP 4 >= 4.2.0, PHP 5)

mcve_gl -- Audit MCVE for settled transactions

Description

int mcve_gl ( int conn, string username, string password, int type, string account, string batch, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_gft | Acima | mcve_gut


mcve_gut

(PHP 4 >= 4.2.0, PHP 5)

mcve_gut -- Audit MCVE for Unsettled Transactions

Description

int mcve_gut ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_gl | Acima | mcve_initconn


mcve_initconn

(PHP 4 >= 4.2.0, PHP 5)

mcve_initconn -- Create and initialize an MCVE_CONN structure

Description

resource mcve_initconn ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_gut | Acima | mcve_initengine


mcve_initengine

(PHP 4 >= 4.2.0, PHP 5)

mcve_initengine -- Ready the client for IP/SSL Communication

Description

int mcve_initengine ( string location)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_initconn | Acima | mcve_initusersetup


mcve_initusersetup

(PHP 4 >= 4.2.0, PHP 5)

mcve_initusersetup -- Initialize structure to store user data

Description

resource mcve_initusersetup ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_initengine | Acima | mcve_iscommadelimited


mcve_iscommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_iscommadelimited -- Checks to see if response is comma delimited

Description

int mcve_iscommadelimited ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_initusersetup | Acima | mcve_liststats


mcve_liststats

(PHP 4 >= 4.2.0, PHP 5)

mcve_liststats -- List statistics for all users on MCVE system

Description

int mcve_liststats ( resource conn, string admin_password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_iscommadelimited | Acima | mcve_listusers


mcve_listusers

(PHP 4 >= 4.2.0, PHP 5)

mcve_listusers -- List all users on MCVE system

Description

int mcve_listusers ( resource conn, string admin_password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_liststats | Acima | mcve_maxconntimeout


mcve_maxconntimeout

(PHP 4 >= 4.3.0, PHP 5)

mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE

Description

bool mcve_maxconntimeout ( resource conn, int secs)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_listusers | Acima | mcve_monitor


mcve_monitor

(PHP 4 >= 4.2.0, PHP 5)

mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking

Description

int mcve_monitor ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_maxconntimeout | Acima | mcve_numcolumns


mcve_numcolumns

(PHP 4 >= 4.2.0, PHP 5)

mcve_numcolumns -- Number of columns returned in a comma delimited response

Description

int mcve_numcolumns ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_monitor | Acima | mcve_numrows


mcve_numrows

(PHP 4 >= 4.2.0, PHP 5)

mcve_numrows -- Number of rows returned in a comma delimited response

Description

int mcve_numrows ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_numcolumns | Acima | mcve_override


mcve_override

(PHP 4 >= 4.2.0, PHP 5)

mcve_override -- Send an OVERRIDE to MCVE

Description

int mcve_override ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_numrows | Acima | mcve_parsecommadelimited


mcve_parsecommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work

Description

int mcve_parsecommadelimited ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_override | Acima | mcve_ping


mcve_ping

(PHP 4 >= 4.3.0, PHP 5)

mcve_ping -- Send a ping request to MCVE

Description

int mcve_ping ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_parsecommadelimited | Acima | mcve_preauth


mcve_preauth

(PHP 4 >= 4.2.0, PHP 5)

mcve_preauth -- Send a PREAUTHORIZATION to MCVE

Description

int mcve_preauth ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_ping | Acima | mcve_preauthcompletion


mcve_preauthcompletion

(PHP 4 >= 4.2.0, PHP 5)

mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement

Description

int mcve_preauthcompletion ( resource conn, string username, string password, float finalamount, int sid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_preauth | Acima | mcve_qc


mcve_qc

(PHP 4 >= 4.2.0, PHP 5)

mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue

Description

int mcve_qc ( resource conn, string username, string password, string clerkid, string stationid, string comments, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_preauthcompletion | Acima | mcve_responseparam


mcve_responseparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_responseparam -- Get a custom response parameter

Description

string mcve_responseparam ( resource conn, long identifier, string key)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_qc | Acima | mcve_return


mcve_return

(PHP 4 >= 4.2.0, PHP 5)

mcve_return -- Issue a RETURN or CREDIT to MCVE

Description

int mcve_return ( int conn, string username, string password, string trackdata, string account, string expdate, float amount, string comments, string clerkid, string stationid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_responseparam | Acima | mcve_returncode


mcve_returncode

(PHP 4 >= 4.2.0, PHP 5)

mcve_returncode -- Grab the exact return code from the transaction

Description

int mcve_returncode ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_return | Acima | mcve_returnstatus


mcve_returnstatus

(PHP 4 >= 4.2.0, PHP 5)

mcve_returnstatus -- Check to see if the transaction was successful

Description

int mcve_returnstatus ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_returncode | Acima | mcve_sale


mcve_sale

(PHP 4 >= 4.2.0, PHP 5)

mcve_sale -- Send a SALE to MCVE

Description

int mcve_sale ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_returnstatus | Acima | mcve_setblocking


mcve_setblocking

(PHP 4 >= 4.3.0, PHP 5)

mcve_setblocking -- Set blocking/non-blocking mode for connection

Description

int mcve_setblocking ( resource conn, int tf)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_sale | Acima | mcve_setdropfile


mcve_setdropfile

(PHP 4 >= 4.2.0, PHP 5)

mcve_setdropfile -- Set the connection method to Drop-File

Description

int mcve_setdropfile ( resource conn, string directory)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_setblocking | Acima | mcve_setip


mcve_setip

(PHP 4 >= 4.2.0, PHP 5)

mcve_setip -- Set the connection method to IP

Description

int mcve_setip ( resource conn, string host, int port)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_setdropfile | Acima | mcve_setssl_files


mcve_setssl_files

(PHP 4 >= 4.3.3, PHP 5)

mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification

Description

int mcve_setssl_files ( string sslkeyfile, string sslcertfile)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_setip | Acima | mcve_setssl


mcve_setssl

(PHP 4 >= 4.2.0, PHP 5)

mcve_setssl -- Set the connection method to SSL

Description

int mcve_setssl ( resource conn, string host, int port)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_setssl_files | Acima | mcve_settimeout


mcve_settimeout

(PHP 4 >= 4.2.0, PHP 5)

mcve_settimeout -- Set maximum transaction time (per trans)

Description

int mcve_settimeout ( resource conn, int seconds)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_setssl | Acima | mcve_settle


mcve_settle

(PHP 4 >= 4.2.0, PHP 5)

mcve_settle -- Issue a settlement command to do a batch deposit

Description

int mcve_settle ( resource conn, string username, string password, string batch)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_settimeout | Acima | mcve_text_avs


mcve_text_avs

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_avs -- Get a textual representation of the return_avs

Description

string mcve_text_avs ( string code)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_settle | Acima | mcve_text_code


mcve_text_code

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_code -- Get a textual representation of the return_code

Description

string mcve_text_code ( string code)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_text_avs | Acima | mcve_text_cv


mcve_text_cv

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_cv -- Get a textual representation of the return_cv

Description

string mcve_text_cv ( int code)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_text_code | Acima | mcve_transactionauth


mcve_transactionauth

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)

Description

string mcve_transactionauth ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_text_cv | Acima | mcve_transactionavs


mcve_transactionavs

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionavs -- Get the Address Verification return status

Description

int mcve_transactionavs ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactionauth | Acima | mcve_transactionbatch


mcve_transactionbatch

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionbatch -- Get the batch number associated with the transaction

Description

int mcve_transactionbatch ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactionavs | Acima | mcve_transactioncv


mcve_transactioncv

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactioncv -- Get the CVC2/CVV2/CID return status

Description

int mcve_transactioncv ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactionbatch | Acima | mcve_transactionid


mcve_transactionid

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionid -- Get the unique system id for the transaction

Description

int mcve_transactionid ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactioncv | Acima | mcve_transactionitem


mcve_transactionitem

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction

Description

int mcve_transactionitem ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactionid | Acima | mcve_transactionssent


mcve_transactionssent

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionssent -- Check to see if outgoing buffer is clear

Description

int mcve_transactionssent ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactionitem | Acima | mcve_transactiontext


mcve_transactiontext

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution

Description

string mcve_transactiontext ( resource conn, int identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactionssent | Acima | mcve_transinqueue


mcve_transinqueue

(PHP 4 >= 4.2.0, PHP 5)

mcve_transinqueue -- Number of transactions in client-queue

Description

int mcve_transinqueue ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transactiontext | Acima | mcve_transnew


mcve_transnew

(PHP 4 >= 4.3.0, PHP 5)

mcve_transnew -- Start a new transaction

Description

int mcve_transnew ( resource conn)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transinqueue | Acima | mcve_transparam


mcve_transparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_transparam -- Add a parameter to a transaction

Description

int mcve_transparam ( resource conn, long identifier, int key)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transnew | Acima | mcve_transsend


mcve_transsend

(PHP 4 >= 4.3.0, PHP 5)

mcve_transsend -- Finalize and send the transaction

Description

int mcve_transsend ( resource conn, long identifier)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transparam | Acima | mcve_ub


mcve_ub

(PHP 4 >= 4.2.0, PHP 5)

mcve_ub -- Get a list of all Unsettled batches

Description

int mcve_ub ( resource conn, string username, string password)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_transsend | Acima | mcve_uwait


mcve_uwait

(PHP 4 >= 4.3.0, PHP 5)

mcve_uwait -- Wait x microsecs

Description

int mcve_uwait ( long microsecs)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_ub | Acima | mcve_verifyconnection


mcve_verifyconnection

(PHP 4 >= 4.3.0, PHP 5)

mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection

Description

bool mcve_verifyconnection ( resource conn, int tf)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_uwait | Acima | mcve_verifysslcert


mcve_verifysslcert

(PHP 4 >= 4.3.0, PHP 5)

mcve_verifysslcert -- Set whether or not to verify the server ssl certificate

Description

bool mcve_verifysslcert ( resource conn, int tf)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_verifyconnection | Acima | mcve_void


mcve_void

(PHP 4 >= 4.2.0, PHP 5)

mcve_void -- VOID a transaction in the settlement queue

Description

int mcve_void ( resource conn, string username, string password, int sid, int ptrannum)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mcve_verifysslcert | Acima | Mhash - Funções de hash


Mhash - Funções de hash

Manual do PHP
Anterior Próxima

LVII. Mhash - Funções de hash

Introdução

Essas funções são planejadas para trabalhar com mhash. Com o Mhash você pode criar checksums, digests de mensagens, códigos de autenticação de mensagens e mais.

Esta é uma interface para a biblioteca mhash. O mhash suporta uma grande variedade de algoritmos de hash como MD5, SHA1, GOST e muitos outros. Para uma lista completa das hashs suportadas, verifique a documentação do mhash. A regra geral é: você pode acessar o algoritmo de hash a partir do PHP com MHASH_NOMEdoHASH, Por exemplo, para acessar o algoritmo TIGER, você utiliza a constante MHASH_TIGER.

Requisitos

Para usá-las, faça o download da distribuição do mhash em http://mhash.sourceforge.net/ e siga as instruções de instalação inclusas.

Instalação

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash install directory.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Aqui está a lista de hashes que são atualmente suportadas por mhash. Se uma hash não está listada aqui, mas é listada pelo mhash como suportada, você pode assumir seguramente que esta documentação está desatualizada.

  • MHASH_MD5

  • MHASH_SHA1

  • MHASH_HAVAL256

  • MHASH_HAVAL192

  • MHASH_HAVAL160

  • MHASH_HAVAL128

  • MHASH_RIPEMD160

  • MHASH_GOST

  • MHASH_TIGER

  • MHASH_CRC32

  • MHASH_CRC32B

Exemplos

Exemplo 1. Calcular o MD5 digest e hmac e imprimir como hex

<?php
$input = "what do ya want for nothing?";
$hash = mhash (MHASH_MD5, $input);
print "A hash é ".bin2hex ($hash)."<br />\n";
$hash = mhash (MHASH_MD5, $input, "Jefe");
print "A hmac é ".bin2hex ($hash)."<br />\n";
?>

Este código irá produzir:
A hash é d03cb659cbf9192dcd066272249f8412
A hmac é 750c783e6ab0b503eaa86e310a5db738

Índice
mhash_count -- Ler o mais alto hash id disponível
mhash_get_block_size -- Ler o tamanho do bloco da hash específicada
mhash_get_hash_name -- Ler o nome da hash especificada
mhash_keygen_s2k -- Gerar uma chave
mhash -- Computar a hash

Anterior | Principal | Próxima
mcve_void | Acima | mhash_count


mhash_count

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_count -- Ler o mais alto hash id disponível

Descrição

int mhash_count ( void )

mhash_count() retorna a mais alta hash id disponível. As hashes são numeradas de 0 até esta hash id.

Exemplo 1. Listando todas as hashes

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf ("O tamanho do bloco de %s é %d\n",
        mhash_get_hash_name ($i),
        mhash_get_block_size ($i));
}
?>

Anterior | Principal | Próxima
Mhash - Funções de hash | Acima | mhash_get_block_size


mhash_get_block_size

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_get_block_size -- Ler o tamanho do bloco da hash específicada

Descrição

int mhash_get_block_size ( int hash)

mhash_get_block_size() é usada para obter o tamanho de um blobo da hash específicada.

mhash_get_block_size() recebe um argumento, a hash e retorna o tamanho em bytes ou FALSE, se o parametro hash não existe.

Anterior | Principal | Próxima
mhash_count | Acima | mhash_get_hash_name


mhash_get_hash_name

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_get_hash_name -- Ler o nome da hash especificada

Descrição

string mhash_get_hash_name ( int hash)

mhash_get_hash_name() é usada para obter o nome da hash especificada.

mhash_get_hash_name() recebe a id da hash como um argumento e retorna o nome da hash ou FALSE, se a hash não existe.

Exemplo 1. Exemplo do mhash_get_hash_name()

<?php
$hash = MHASH_MD5;

print mhash_get_hash_name ($hash);
?>

O exemplo acima irá imprimir:
MD5

Anterior | Principal | Próxima
mhash_get_block_size | Acima | mhash_keygen_s2k


mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k -- Gerar uma chave

Descrição

string mhash_keygen_s2k ( int hash, string password, string salt, int bytes)

mhash_keygen_s2k() gera um chave que tem bytes de comprimento, apartir de uma senha (password) do usuário. Este é o algoritmo Salted S2K como especificado no documento OpenPGP (RFC 2440). Este algoritmo usará o algoritmo hash para criar a chave. O salt deve ser diferente e aleatório o suficiente para que cada chave que você gere seja diferente. Este salt tem que ser sabido quando você checar as suas chaves (keys), logo é uma boa ideia que a chave siga o salt. O salt tem o comprimento fixo de 8 bytes e será completado com zeros se voce fornecer menos bytes. Tenha em mente que as senhas fornecidas pelos usuários não são boas para serem usadas como chaves em algoritmos criptográficos, pois usuários normalmente escolhem chaves que eles podem escrever no teclado. Estas senhas usam somente 6 a 7 bits por caracter (ou menos). É altamente recomendado usar algum tipo de transformação (como esta função) na chave dada pelo usuário.

Anterior | Principal | Próxima
mhash_get_hash_name | Acima | mhash


mhash

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash -- Computar a hash

Descrição

string mhash ( int hash, string data, string [ key ])

mhash() applica a função hash especificada por hash para o parametro data e retorna a hash resultante (também chamada de digest). Se a key for especificada a função irá retornar o HMAC resultante. HMAC é o hashing com chave (keyed) para autenticações de mensagens, ou simplesmente um digest de mensagens que depende na chave (key) específicada. Nem todos os algorítmos suportados em mhash podem ser usados em modo HMAC. Em caso de erro retorna FALSE.

Anterior | Principal | Próxima
mhash_keygen_s2k | Acima | Funções Mimetype


Funções Mimetype

Manual do PHP
Anterior Próxima

LVIII. Funções Mimetype

Introdução

As funções deste módulo tentam achar o tipo de arquivo e codificação do arquivo olhando de modo seguro na sequência de magic com posição especificada dentro do arquivo. Enquanto isso não é interessante fazer uso disto.

Essa extensão é derivada do Apache mod_mime_magic, que por si mesmo é baseado no comando file mantido por Ian F. Darwin. Veja o código fonte para maiores informações e informações sobre copyright.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Você deve compilar seu PHP com o configure --with-mime-magic para ter suporte às funções mime-type. A extensão necessita de uma cópia simplificada do arquivo magic que é distribuído com o Apache httpd.

Nota: A opção de configuração foi alterada de --enable-mime-magic para --with-mime-magic desde o PHP 4.3.2

Nota: Essa extensão não é capaz de manusear completamente o arquivo magic que geralmente vem com distribuições Linux e serão supostamente usadas com recentes versões do comando file.

Nota para usuários Win32: Para usar este módulo em um ambiente Windows, você deve setar o path para o arquivo magic.mime no seu php.ini.

Exemplo 1. Setando o path para magic.mime

mime_magic.magicfile ="$PHP_INSTALL_DIR\magic.mime"
Lembre-se de substituir o $PHP_INSTALL_DIR para o seu path atual do PHP no exemplo acima. e.g. c:\php

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do Mimetype

Name | Default | Changeable
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
Para maiores detalhes e definições veja as constantes PHP_INI_* ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
mime_content_type -- Detecta o tipo MIME de um arquivo

Anterior | Principal | Próxima
mhash | Acima | mime_content_type


mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_type -- Detecta o tipo MIME de um arquivo

Descrição

string mime_content_type ( string filename)

Retorna o tipo MIME de um arquivo como determinado usando a informação de do arquivo magic.mime. Os tipos MIME retornados são no formato como, text/plain ou application/octet-stream.

Anterior | Principal | Próxima
Funções Mimetype | Acima | Microsoft SQL Server


Microsoft SQL Server

Manual do PHP
Anterior Próxima

LIX. Microsoft SQL Server

Introdução

Estas funções permitem a você acessar um banco de dados do MS SQL Server.

Requisitos

Requerimentos para as plataformas Win32.

A extensão requer que as ferramentas de cliente do MS SQL sejam instaladas no sistema onde o PHP esta instalado. As ferramentas de cliene podem ser instaladas apartir do CD do MS SQL Server ou copiando ntwdblib.dll de \winnt\system32 da máquina do servidor \winnt\system32 na máquina do PHP. Copiar ntwdblib.dll irá somente prover acesso. Configuração do cliente irá requerer a instalação de todas as ferramentas.

Requerimentos para as plataformas Unix/Linux.

Para usar a extensão MSSQL no Unix/Linux, você primeiramente precisa compilar e instalar a biblioteca FreeTDS. Código fonte e instruções de instalação estão disponíveis na página de FreeTDS: http://www.freetds.org/

Nota: No Windows, é usado a DBLIB da Microsoft. Funções que retornam um nome de coluna estão baseadas na função dbcolname() na DBLIB. DBLIB foi desenvolvida para o SQL Server 6.x aonde o limite do identificador é 30. Por esta razão, o limite de tamanho da coluna é 30 caracteres. Nas plataformas onde o FreeTDS é usado(Linux), isto não é um problema.

Instalação

A extensão MSSQL é ativada se adicionando extension=php_mssql.dll no php.ini.

Para que estas funções funcionem, você tem que compilar o PHP com --with-mssql[=DIR], aonde DIR é o diretório de instalação do FreeTDS. E FreeTDS deve ser compilado usando --enable-msdblib.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do MS SQL Server

Nome | Padrão | Modificável
mssql.allow_persistent | "1" | PHP_INI_SYSTEM
mssql.max_persistent | "-1" | PHP_INI_SYSTEM
mssql.max_links | "-1" | PHP_INI_SYSTEM
mssql.min_error_severity | "10" | PHP_INI_ALL
mssql.min_message_severity | "10" | PHP_INI_ALL
mssql.compatability_mode | "0" | PHP_INI_ALL
mssql.connect_timeout | "5" | PHP_INI_ALL
mssql.timeout | "60" | PHP_INI_ALL
mssql.textsize | "-1" | PHP_INI_ALL
mssql.textlimit | "-1" | PHP_INI_ALL
mssql.batchsize | "0" | PHP_INI_ALL
mssql.datetimeconvert | "1" | PHP_INI_ALL
mssql.secure_connection | "0" | PHP_INI_SYSTEM
mssql.max_procs | "25" | PHP_INI_ALL
Para maiores detalhes e definição das constantes PHP_INI_* veja ini_set().

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

MSSQL_ASSOC (integer)

MSSQL_NUM (integer)

MSSQL_BOTH (integer)

SQLTEXT (integer)

SQLVARCHAR (integer)

SQLCHAR (integer)

SQLINT1 (integer)

SQLINT2 (integer)

SQLINT4 (integer)

SQLBIT (integer)

SQLFLT8 (integer)

Índice
mssql_bind -- Adiciona um parâmetro a um stored procedure ou a um remote stored procedure
mssql_close -- Fecha a conexão com o servidor MS SQL
mssql_connect -- Abre uma conexão com o servidor MS SQL
mssql_data_seek -- Move o ponteiro interno da linha
mssql_execute -- Executa uma stored procedure num banco de dados de um servidor MS SQL
mssql_fetch_array -- Retorna uma linha como uma matriz associativa, matriz numérica ou ambas
mssql_fetch_assoc -- Retorna uma matriz associativa da linha atual do conjunto de resultados especificado por result_id
mssql_fetch_batch -- Retorna o próximo lote de registros
mssql_fetch_field -- Retorna informação sobre o campo
mssql_fetch_object -- Devolve a linha como um objeto
mssql_fetch_row -- Retorna uma matriz enumerada
mssql_field_length -- Retorna o tamanho de um campo
mssql_field_name -- Retorna o nome de um campo
mssql_field_seek -- Estabelece o índice do campo
mssql_field_type -- Retorna o tipo de um campo
mssql_free_result -- Limpa o resultado da memória
mssql_free_statement -- Free statement memory
mssql_get_last_message -- Retorna a ultima mensagem do servidor
mssql_guid_string -- Converte um 16 byte binary GUID para uma string
mssql_init -- Inicializa um stored procedure ou um remote stored procedure
mssql_min_error_severity -- Estabelece a menor severidade a erros
mssql_min_message_severity -- Estabelece a menor severidade a mensagens
mssql_next_result -- Move o ponteiro interno do resultado para o próximo resultado
mssql_num_fields -- Retorna o número de campos em um resultado
mssql_num_rows -- Retorna o número de linhas em um resultado
mssql_pconnect -- Abre uma conexão persistente com MS SQL
mssql_query -- Envia uma query ao MS SQL
mssql_result -- Retorna dados do resultado
mssql_rows_affected -- Retorna o número de registros afetados pela query
mssql_select_db -- Seleciona um banco de dados do MS SQL

Anterior | Principal | Próxima
mime_content_type | Acima | mssql_bind


mssql_bind

(PHP 4 >= 4.1.0, PHP 5)

mssql_bind -- Adiciona um parâmetro a um stored procedure ou a um remote stored procedure

Descrição

bool mssql_bind ( resource stmt, string param_name, mixed var, int type [, int is_output [, int is_null [, int maxlen]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Veja também mssql_execute(),
         mssql_free_statement() e
         mssql_init().

Anterior | Principal | Próxima
Microsoft SQL Server | Acima | mssql_close


mssql_close

(PHP 3, PHP 4 , PHP 5)

mssql_close -- Fecha a conexão com o servidor MS SQL

Descrição

bool mssql_close ( [resource link_identifier])

mssql_close() fecha a conexão com o MS SQL Server que esta associado ao identificador de conexão(link_identifier) indicado. Se o identificador de conexão não é especificado, a ultima conexão aberta é usada.

Note que isto não é usualmente necessário, já que conexões não persistentes são automaticamente fechadas ao final da execução do script.

mssql_close() não irá fechar conexões persistentes geradas por mssql_pconnect().

Veja também: mssql_connect() e mssql_pconnect().

Anterior | Principal | Próxima
mssql_bind | Acima | mssql_connect


mssql_connect

(PHP 3, PHP 4 , PHP 5)

mssql_connect -- Abre uma conexão com o servidor MS SQL

Descrição

int mssql_connect ( [string nomedoservidor [, string username [, string password]]])

Retorna: um identificador de link positivo com o servidor MS SQL se funcionar, ou FALSE se houver erro.

mssql_connect() estabelece uma conexão com um servidor MS SQL . O argumento nomedoservidor tem que ser um nome de servidor que esteja definido no arquivo 'interfaces'.

No caso de uma segunda chamada for feita para mssql_connect() com os mesmos argumentos, não será criada uma nova conexão, mas ao invés, o identificador de conexão da conexão que já esta aberta será retornado.

A conexão com o servidor será fechada assim que a execução do script terminar, a menos que seja fechada antes explicitamente por mssql_close().

Veja também mssql_pconnect(), mssql_close().

Anterior | Principal | Próxima
mssql_close | Acima | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4 , PHP 5)

mssql_data_seek -- Move o ponteiro interno da linha

Descrição

bool mssql_data_seek ( resource result_identifier, int row_number)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

mssql_data_seek() move o ponteiro interno da linha do resultado indicado por result_identifier para o numero da linha especificado, sendo a primeira linha de número 0. A próxima chamada a mssql_fetch_row() irá retornar esta linha.

Veja também mssql_data_seek().

Anterior | Principal | Próxima
mssql_connect | Acima | mssql_execute


mssql_execute

(PHP 4 >= 4.1.0, PHP 5)

mssql_execute -- Executa uma stored procedure num banco de dados de um servidor MS SQL

Descrição

mixed mssql_execute ( resource stmt [, bool skip_results])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Se o stored procedure retorna parâmetros ou retorna um valor, estes estarão disponiveis após a chamada a mssql_execute() a menos que o stored procedure retorne mais do que um conjunto de resultados. Neste caso use mssql_next_result() para mudar entre os resulatdo. Quando o ultimo resultado tiver sido processado os parâmetors de saída e os valores de retorno estarão disponivéis.

Veja também mssql_bind(),
 mssql_free_statement(), e
  mssql_init().

Anterior | Principal | Próxima
mssql_data_seek | Acima | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_array -- Retorna uma linha como uma matriz associativa, matriz numérica ou ambas

Descrição

array mssql_fetch_array ( resource result [, int result_type])

Retorna: uma array que corresponde a linha, ou FALSE se não houver mais linhas.

mssql_fetch_array() é uma versão estendida de mssql_fetch_row(). Alem de guardar os dados em uma matriz com índices numéricos, também guarda os dados em uma matriz associativa, usando os nomes dos campos como chave.

Uma coisa importante para notar é que usar mssql_fetch_array() NÃO é significativamente mais lento do que usar mssql_fetch_row(), enquanto que é mais fácil de usar.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Para maiores detalhes veja também mssql_fetch_row().

Anterior | Principal | Próxima
mssql_execute | Acima | mssql_fetch_assoc


mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5)

mssql_fetch_assoc -- Retorna uma matriz associativa da linha atual do conjunto de resultados especificado por result_id

Descrição

array mssql_fetch_assoc ( resource result_id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_fetch_array | Acima | mssql_fetch_batch


mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5)

mssql_fetch_batch -- Retorna o próximo lote de registros

Descrição

int mssql_fetch_batch ( resource result_index)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_fetch_assoc | Acima | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_field -- Retorna informação sobre o campo

Descrição

object mssql_fetch_field ( resource result [, int field_offset])

Retorna um objeto contendo informação do campo.

mssql_fetch_field() pode ser usada para obter informações sobre os campos do resultado de uma query. Se o índice do campo não for especificado, o próximo campo que ainda não foi recuperado por mssql_fetch_field() é retornado.

As propriedades do objeto são:

  • name - nome da coluna. Se a coluna é resultado de alguma função, esta propriedade é estabelecida como computed#N, aonde #N é um número de série.

  • column_source - a tabela de origem da coluna.

  • max_length - o limite de tamanho da coluna.

  • numeric - 1 se a coluna é numérica.

  • type - O tipo da coluna.

Veja também mssql_field_seek().

Anterior | Principal | Próxima
mssql_fetch_batch | Acima | mssql_fetch_object


mssql_fetch_object

(PHP 3, PHP 5)

mssql_fetch_object -- Devolve a linha como um objeto

Descrição

object mssql_fetch_object ( resource result)

Retorna: Um objeto com propriedades que correspondem a linha, ou FALSE se não houver mais linhas.

mssql_fetch_object() é similar a mssql_fetch_array(), com uma diferença - um objeto é retornado, ao invés de uma matriz. Indiretamente, isto indica que você só pode acessar os dados pelo nome dos campos, e não por seus índices (números são nomes de propriedades ilegais).

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Em velocidade, esta função é idêntica a mssql_fetch_array(), e quase tão rápida quanto mssql_fetch_row() (a diferença é insignificante).

Veja também: mssql_fetch-array() e mssql_fetch-row().

Anterior | Principal | Próxima
mssql_fetch_field | Acima | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_row -- Retorna uma matriz enumerada

Descrição

array mssql_fetch_row ( resource result)

Retorna: uma matriz que corresponde a linha, ou FALSE se não houver mais linhas.

mssql_fetch_row() retorna uma linha do resultado identificado por result. A linha é retornada como uma matriz. Cada coluna do resultado é guardada com um índice numérico, começando no 0.

A próxima chamada para mssql_fetch_row() deve retornar a próxima linha do conjunto de resultados, ou FALSE se não houver mais linhas.

Veja também: mssql_fetch_array(),
mssql_fetch_object(),
mssql_data_seek(),
mssql_fetch_lengths() e
mssql_result().

Anterior | Principal | Próxima
mssql_fetch_object | Acima | mssql_field_length


mssql_field_length

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_length -- Retorna o tamanho de um campo

Descrição

int mssql_field_length ( resource result [, int offset])

Esta função irá retornar o tamanho do campo número offset no conjunto de resultados result. Se offset for omitido, o campo atual é usado.

Nota para os usuários de Win32: Devido a uma limitação da API usada pelo PHP (MS DbLib C API), o tamanho de campos VARCHAR é limitado em 255. Se você precisar guardar mais dados, use um campo TEXT.

Anterior | Principal | Próxima
mssql_fetch_row | Acima | mssql_field_name


mssql_field_name

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_name -- Retorna o nome de um campo

Descrição

string mssql_field_name ( resource result [, int offset])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_field_length | Acima | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4 , PHP 5)

mssql_field_seek -- Estabelece o índice do campo

Descrição

bool mssql_field_seek ( resource result, int field_offset)

Move o ponteiro para o índice do campo especificado. Se a próxima chamada a mssql_fetch_field() não incluir um índice do campo, este campo será retornado.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também mssql_fetch_field().

Anterior | Principal | Próxima
mssql_field_name | Acima | mssql_field_type


mssql_field_type

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_type -- Retorna o tipo de um campo

Descrição

string mssql_field_type ( resource result [, int offset])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_field_seek | Acima | mssql_free_result


mssql_free_result

(PHP 3, PHP 4 , PHP 5)

mssql_free_result -- Limpa o resultado da memória

Descrição

bool mssql_free_result ( resource result)

mssql_free_result() somente precisa ser chamado se você esta preocupado com a quantidade de memória usada enquanto o seu script esta sendo executado. Toda a memória do resultado é liberada automaticamente quando o script acaba. Você deve chamar mssql_free_result() com o identificador do resultado que você quer liberar da memória.

Anterior | Principal | Próxima
mssql_field_type | Acima | mssql_free_statement


mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5)

mssql_free_statement -- Free statement memory

Description

bool mssql_free_statement ( resource statement)

mssql_free_statement() only needs to be called if you are worried about using too much memory while your script is running. All statement memory will automatically be freed when the script ends. You may call mssql_free_statement() with the statement identifier as an argument and the associated statement memory will be freed.

See also mssql_bind(),
mssql_execute(), and
mssql_init()

Anterior | Principal | Próxima
mssql_free_result | Acima | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4 , PHP 5)

mssql_get_last_message -- Retorna a ultima mensagem do servidor

Descrição

string mssql_get_last_message ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_free_statement | Acima | mssql_guid_string


mssql_guid_string

(PHP 4 >= 4.1.0, PHP 5)

mssql_guid_string -- Converte um 16 byte binary GUID para uma string

Descrição

string mssql_guid_string ( string binary [, int short_format])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_get_last_message | Acima | mssql_init


mssql_init

(PHP 4 >= 4.1.0, PHP 5)

mssql_init -- Inicializa um stored procedure ou um remote stored procedure

Descrição

int mssql_init ( string sp_name [, resource conn_id])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Veja também mssql_bind(),
mssql_execute() e
mssql_free_statement()

Anterior | Principal | Próxima
mssql_guid_string | Acima | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4 , PHP 5)

mssql_min_error_severity -- Estabelece a menor severidade a erros

Descrição

void mssql_min_error_severity ( int severity)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_init | Acima | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4 , PHP 5)

mssql_min_message_severity -- Estabelece a menor severidade a mensagens

Descrição

void mssql_min_message_severity ( int severity)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_min_error_severity | Acima | mssql_next_result


mssql_next_result

(PHP 4 >= 4.0.5, PHP 5)

mssql_next_result -- Move o ponteiro interno do resultado para o próximo resultado

Descrição

bool mssql_next_result ( resource result_id)

Quando se envia mais de uma sql para o servidor ou executando uma stored procedure com múltiplos resultados, irá causar que o servidor retorne múltiplos conjuntos de resultados. Esta função irá testar se há resultados adicionais do servidor. Se existir um conjunto adicional de resultados, irá liberar o conjunto atual de resultados e preparar para usar o novo conjunto de resultados. A função irá retornar TRUE se um conjunto adicional de resultados estiver disponível ou FALSE em outro caso.

Exemplo 1. Exemplo mssql_next_result()

<?php
    $link = mssql_connect ("localhost", "userid", "secret");
    mssql_select_db("MyDB", $link);
    $SQL = "Select * from table1 select * from table2";
    $rs = mssql_query($SQL, $link);
    do {
        while ($row = mssql_fetch_row($rs)) {
        }
    } while (mssql_next_result($rs));
    mssql_free_result($rs);
    mssql_close ($link);
?>

Anterior | Principal | Próxima
mssql_min_message_severity | Acima | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4 , PHP 5)

mssql_num_fields -- Retorna o número de campos em um resultado

Descrição

int mssql_num_fields ( resource result)

mssql_num_fields() retorna o número de campos em um conjunto de resultados.

Veja também
mssql_query(),
mssql_fetch_field() e
mssql_num_rows().

Anterior | Principal | Próxima
mssql_next_result | Acima | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4 , PHP 5)

mssql_num_rows -- Retorna o número de linhas em um resultado

Descrição

int mssql_num_rows ( resource result)

mssql_num_rows() retorna o número de linhas em um conjunto de resultados.

Veja também mssql_query() e mssql_fetch_row().

Anterior | Principal | Próxima
mssql_num_fields | Acima | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4 , PHP 5)

mssql_pconnect -- Abre uma conexão persistente com MS SQL

Descrição

int mssql_pconnect ( [string servername [, string username [, string password]]])

Retorna: um identificador de link persistente com MS SQL se funcionar, ou FALSE se houver erro.

mssql_pconnect() funciona muito parecido com mssql_connect() com duas diferenças maiores.

Primeiro, ao conectar, a função irá primeiro tentar achar uma conexão (persistente) que já esteja aberta com o mesmo host, username e password. Se uma é encontrada, um identificador para ela será retornada ao invés de abrir uma nova conexão.

Segundo, a conexão ao servidor SQL não será fechada quando a execução do script terminar. Ao invés, a conexão permanecerá aberta para uso futuro (mssql_close() não irá fechar conexões criadas com mssql_pconnect()).

Este tipo de conexão é chamado 'Persistente'.

Anterior | Principal | Próxima
mssql_num_rows | Acima | mssql_query


mssql_query

(PHP 3, PHP 4 , PHP 5)

mssql_query -- Envia uma query ao MS SQL

Descrição

resource mssql_query ( string query [, resource link_identifier])

Retorna: um identificador de resultado do MS SQL se funcionar, ou FALSE se houver um erro.

mssql_query() envia uma query para o banco de dados atual no servidor que esta associado a conexão especificada em link_identifier. Se link_identifier não for especificado, a ultima conexão aberta é usada. Se nenhuma conexão estiver aberta, a função tenta criar um como se mssql_connect() fosse chamada, e irá usa-la.

Veja também mssql_select_db() e mssql_connect().

Anterior | Principal | Próxima
mssql_pconnect | Acima | mssql_result


mssql_result

(PHP 3, PHP 4 , PHP 5)

mssql_result -- Retorna dados do resultado

Descrição

string mssql_result ( resource result, int i, mixed field)

mssql_result() retorna o conteúdo de uma célula de um conjunto de resultados do MS SQL. O argumento field pode ser o índice do campo, o nome do campo ou a tabela do campo ponto o nome do campo (tabela.campo). Se um nome da coluna tem apelido ('select foo as bar from...'), use o apelido ao invés do nome da coluna.

Quando estiver trabalhando com grandes conjuntos de resultados, você deve considerar o uso de funções que retornam toda a linha (especificadas abaixo). Como estas funções retornam múltiplas células em uma chamada de função, elas são MUITO mais rápidas do que mssql_result(). Também note que especificar um índice numérico para o argumento field é muito mais rápido do que especificar um nome de campo ou tabela.campo.

Alternativas mais rápidas recomendadas:
mssql_fetch_row(),
mssql_fetch_array(), e
mssql_fetch_object().

Anterior | Principal | Próxima
mssql_query | Acima | mssql_rows_affected


mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5)

mssql_rows_affected -- Retorna o número de registros afetados pela query

Descrição

int mssql_rows_affected ( resource conn_id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
mssql_result | Acima | mssql_select_db


mssql_select_db

(PHP 3, PHP 4 , PHP 5)

mssql_select_db -- Seleciona um banco de dados do MS SQL

Descrição

bool mssql_select_db ( string database_name [, resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

mssql_select_db() estabelece o banco de dados ativo para a conexão especificada por link_identifier. Se nenhum identificador de conexão for especificado, a ultima conexão aberta é usada. Se nenhuma conexão estiver aberta a função tentará estabelecer uma como se mssql_connect() fosse chamada, e irá usa-la.

Todas as próximas chamadas a mssql_query() serão feitas no banco de dados ativo.

Para poder selecionar um banco de dados contendo um espaço ou hifen ("-") você precisa colocar o nome do banco de dados entre colchetes("[]"), como mostrado no exemplo abaixo:

Exemplo 1. Exemplo mssql_select_db()

<?php
$conn = mssql_connect('MYSQLSERVER', 'sa', 'password');
mssql_select_db('[my data-base]', $conn);
?>

Veja também:
    mssql_connect(),
    mssql_pconnect(), e
    mssql_query()

Anterior | Principal | Próxima
mssql_rows_affected | Acima | Ming functions for Flash


Ming functions for Flash

Manual do PHP
Anterior Próxima

LX. Ming functions for Flash

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Introdução

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know ming@opaque.net.

Ming was added in PHP 4.0.5.

Requisitos

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: http://ming.sourceforge.net/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.

Instalação

Exemplo 1. built into PHP (Unix)

mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>

Build and install PHP as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl('php_ming.so'); at the head of all of your Ming scripts.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

SWFBUTTON_HIT (integer)

SWFBUTTON_DOWN (integer)

SWFBUTTON_OVER (integer)

SWFBUTTON_UP (integer)

SWFBUTTON_MOUSEUPOUTSIDE (integer)

SWFBUTTON_DRAGOVER (integer)

SWFBUTTON_DRAGOUT (integer)

SWFBUTTON_MOUSEUP (integer)

SWFBUTTON_MOUSEDOWN (integer)

SWFBUTTON_MOUSEOUT (integer)

SWFBUTTON_MOUSEOVER (integer)

SWFFILL_RADIAL_GRADIENT (integer)

SWFFILL_LINEAR_GRADIENT (integer)

SWFFILL_TILED_BITMAP (integer)

SWFFILL_CLIPPED_BITMAP (integer)

SWFTEXTFIELD_HASLENGTH (integer)

SWFTEXTFIELD_NOEDIT (integer)

SWFTEXTFIELD_PASSWORD (integer)

SWFTEXTFIELD_MULTILINE (integer)

SWFTEXTFIELD_WORDWRAP (integer)

SWFTEXTFIELD_DRAWBOX (integer)

SWFTEXTFIELD_NOSELECT (integer)

SWFTEXTFIELD_HTML (integer)

SWFTEXTFIELD_ALIGN_LEFT (integer)

SWFTEXTFIELD_ALIGN_RIGHT (integer)

SWFTEXTFIELD_ALIGN_CENTER (integer)

SWFTEXTFIELD_ALIGN_JUSTIFY (integer)

SWFACTION_ONLOAD (integer)

SWFACTION_ENTERFRAME (integer)

SWFACTION_UNLOAD (integer)

SWFACTION_MOUSEMOVE (integer)

SWFACTION_MOUSEDOWN (integer)

SWFACTION_MOUSEUP (integer)

SWFACTION_KEYDOWN (integer)

SWFACTION_KEYUP (integer)

SWFACTION_DATA (integer)

Classes Predefinidas

As classes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão for compilada junto com o PHP, ou carregada dinamicamente na execução.

Ming introduces 13 new objects in PHP, all with matching methods and attributes. To use them, you need to know about objects.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Índice
ming_setcubicthreshold -- Set cubic threshold (?)
ming_setscale -- Set scale (?)
ming_useswfversion -- Use SWF version (?)
SWFAction -- Creates a new Action.
SWFBitmap->getHeight -- Returns the bitmap's height.
SWFBitmap->getWidth -- Returns the bitmap's width.
SWFBitmap -- Loads Bitmap object
swfbutton_keypress -- Returns the action flag for keyPress(char)
SWFbutton->addAction -- Adds an action
SWFbutton->addShape -- Adds a shape to a button
SWFbutton->setAction -- Sets the action
SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)
SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)
SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)
SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)
SWFbutton -- Creates a new Button.
SWFDisplayItem->addColor -- Adds the given color to this item's color transform.
SWFDisplayItem->move -- Moves object in relative coordinates.
SWFDisplayItem->moveTo -- Moves object in global coordinates.
SWFDisplayItem->multColor -- Multiplies the item's color transform.
SWFDisplayItem->remove -- Removes the object from the movie
SWFDisplayItem->Rotate -- Rotates in relative coordinates.
SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.
SWFDisplayItem->scale -- Scales the object in relative coordinates.
SWFDisplayItem->scaleTo -- Scales the object in global coordinates.
SWFDisplayItem->setDepth -- Sets z-order
SWFDisplayItem->setName -- Sets the object's name
SWFDisplayItem->setRatio -- Sets the object's ratio.
SWFDisplayItem->skewX -- Sets the X-skew.
SWFDisplayItem->skewXTo -- Sets the X-skew.
SWFDisplayItem->skewY -- Sets the Y-skew.
SWFDisplayItem->skewYTo -- Sets the Y-skew.
SWFDisplayItem -- Creates a new displayitem object.
SWFFill->moveTo -- Moves fill origin
SWFFill->rotateTo -- Sets fill's rotation
SWFFill->scaleTo -- Sets fill's scale
SWFFill->skewXTo -- Sets fill x-skew
SWFFill->skewYTo -- Sets fill y-skew
SWFFill -- Loads SWFFill object
swffont->getwidth -- Returns the string's width
SWFFont -- Loads a font definition
SWFGradient->addEntry -- Adds an entry to the gradient list.
SWFGradient -- Creates a gradient object
SWFMorph->getshape1 -- Gets a handle to the starting shape
SWFMorph->getshape2 -- Gets a handle to the ending shape
SWFMorph -- Creates a new SWFMorph object.
SWFMovie->add -- Adds any type of data to a movie.
SWFMovie->nextframe -- Moves to the next frame of the animation.
SWFMovie->output -- Dumps your lovingly prepared movie out.
swfmovie->remove -- Removes the object instance from the display list.
SWFMovie->save -- Saves your movie in a file.
SWFMovie->setbackground -- Sets the background color.
SWFMovie->setdimension -- Sets the movie's width and height.
SWFMovie->setframes -- Sets the total number of frames in the animation.
SWFMovie->setrate -- Sets the animation's frame rate.
SWFMovie->streammp3 -- Streams a MP3 file.
SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.
SWFShape->addFill -- Adds a solid fill to the shape.
SWFShape->drawCurve -- Draws a curve (relative).
SWFShape->drawCurveTo -- Draws a curve.
SWFShape->drawLine -- Draws a line (relative).
SWFShape->drawLineTo -- Draws a line.
SWFShape->movePen -- Moves the shape's pen (relative).
SWFShape->movePenTo -- Moves the shape's pen.
SWFShape->setLeftFill -- Sets left rasterizing color.
SWFShape->setLine -- Sets the shape's line style.
SWFShape->setRightFill -- Sets right rasterizing color.
SWFShape -- Creates a new shape object.
swfsprite->add -- Adds an object to a sprite
SWFSprite->nextframe -- Moves to the next frame of the animation.
SWFSprite->remove -- Removes an object to a sprite
SWFSprite->setframes -- Sets the total number of frames in the animation.
SWFSprite -- Creates a movie clip (a sprite)
SWFText->addString -- Draws a string
SWFText->getWidth -- Computes string's width
SWFText->moveTo -- Moves the pen
SWFText->setColor -- Sets the current font color
SWFText->setFont -- Sets the current font
SWFText->setHeight -- Sets the current font height
SWFText->setSpacing -- Sets the current font spacing
SWFText -- Creates a new SWFText object.
SWFTextField->addstring -- Concatenates the given string to the text field
SWFTextField->align -- Sets the text field alignment
SWFTextField->setbounds -- Sets the text field width and height
SWFTextField->setcolor -- Sets the color of the text field.
SWFTextField->setFont -- Sets the text field font
SWFTextField->setHeight -- Sets the font height of this text field font.
SWFTextField->setindentation -- Sets the indentation of the first line.
SWFTextField->setLeftMargin -- Sets the left margin width of the text field.
SWFTextField->setLineSpacing -- Sets the line spacing of the text field.
SWFTextField->setMargins -- Sets the margins width of the text field.
SWFTextField->setname -- Sets the variable name
SWFTextField->setrightMargin -- Sets the right margin width of the text field.
SWFTextField -- Creates a text field object

Anterior | Principal | Próxima
mssql_select_db | Acima | ming_setcubicthreshold


ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5)

ming_setcubicthreshold -- Set cubic threshold (?)

Description

void ming_setcubicthreshold ( int threshold)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Ming functions for Flash | Acima | ming_setscale


ming_setscale

(PHP 4 >= 4.0.5, PHP 5)

ming_setscale -- Set scale (?)

Description

void ming_setscale ( int scale)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ming_setcubicthreshold | Acima | ming_useswfversion


ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5)

ming_useswfversion -- Use SWF version (?)

Description

void ming_useswfversion ( int version)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ming_setscale | Acima | SWFAction


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- Creates a new Action.

Description

new swfaction ( string script)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfaction() creates a new Action, and compiles the given script into an SWFAction object.

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()

Returns the number of milliseconds (?) elapsed since the movie started.

random(seed)

Returns a pseudo-random number in the range 0-seed.

length(expr)

Returns the length of the given expression.

int(number)

Returns the given number rounded down to the nearest integer.

concat(expr, expr)

Returns the concatenation of the given expressions.

ord(expr)

Returns the ASCII code for the given character

chr(num)

Returns the character for the given ASCII code

substr(string, location, length)

Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)

Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.

removeClip(expr)

Removes the named movie clip.

trace(expr)

Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.

startDrag(target, lock, [left, top, right, bottom])

Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.

stopDrag()

Stop dragging my heart around. And this movie clip, too.

callFrame(expr)

Call the named frame as a function.

getURL(url, target, [method])

Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.

loadMovie(url, target)

Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).

nextFrame()

Go to the next frame.

prevFrame()

Go to the last (or, rather, previous) frame.

play()

Start playing the movie.

stop()

Stop playing the movie.

toggleQuality()

Toggle between high and low quality.

stopSounds()

Stop playing all sounds.

gotoFrame(num)

Go to frame number num. Frame numbers start at 0.

gotoFrame(name)

Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.

setTarget(expr)

Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (read-only)

  • totalFrames - (read-only)

  • alpha - transparency level

  • visible - 1=on, 0=off (?)

  • width - (read-only)

  • height - (read-only)

  • rotation

  • target - (read-only) (???)

  • framesLoaded - (read-only)

  • name

  • dropTarget - (read-only) (???)

  • url - (read-only) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

This simple example will move the red square across the window.

Exemplo 1. swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Exemplo 2. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Exemplo 3. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
ming_useswfversion | Acima | SWFBitmap->getHeight


SWFBitmap->getHeight

(no version information, might be only in CVS)

SWFBitmap->getHeight -- Returns the bitmap's height.

Description

int swfbitmap->getheight ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbitmap->getheight() returns the bitmap's height in pixels.

See also swfbitmap->getwidth().

Anterior | Principal | Próxima
SWFAction | Acima | SWFBitmap->getWidth


SWFBitmap->getWidth

(no version information, might be only in CVS)

SWFBitmap->getWidth -- Returns the bitmap's width.

Description

int swfbitmap->getwidth ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbitmap->getwidth() returns the bitmap's width in pixels.

See also swfbitmap->getheight().

Anterior | Principal | Próxima
SWFBitmap->getHeight | Acima | SWFBitmap


SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Loads Bitmap object

Description

new swfbitmap ( string filename [, int alphafilename])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbitmap() creates a new SWFBitmap object from the Jpeg or DBL file named filename. alphafilename indicates a MSK file to be used as an alpha mask for a Jpeg image.

Nota: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

SWFBitmap has the following methods : swfbitmap->getwidth() and swfbitmap->getheight().

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

Exemplo 1. Import PNG files

<?php
  $s = new SWFShape();
  $f = $s->addFill(new SWFBitmap("png.dbl"));
  $s->setRightFill($f);

  $s->drawLine(32, 0);
  $s->drawLine(0, 32);
  $s->drawLine(-32, 0);
  $s->drawLine(0, -32);

  $m = new SWFMovie();
  $m->setDimension(32, 32);
  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

And you can put an alpha mask on a jpeg fill.

Exemplo 2. swfbitmap() example

<?php

  $s = new SWFShape();

  // .msk file generated with "gif2mask" utility
  $f = $s->addFill(new SWFBitmap("alphafill.jpg", "alphafill.msk"));
  $s->setRightFill($f);

  $s->drawLine(640, 0);
  $s->drawLine(0, 480);
  $s->drawLine(-640, 0);
  $s->drawLine(0, -480);

  $c = new SWFShape();
  $c->setRightFill($c->addFill(0x99, 0x99, 0x99));
  $c->drawLine(40, 0);
  $c->drawLine(0, 40);
  $c->drawLine(-40, 0);
  $c->drawLine(0, -40);

  $m = new SWFMovie();
  $m->setDimension(640, 480);
  $m->setBackground(0xcc, 0xcc, 0xcc);

  // draw checkerboard background
  for ($y=0; $y<480; $y+=40) {
    for ($x=0; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }

    $y+=40;

    for ($x=40; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }
  }

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFBitmap->getWidth | Acima | swfbutton_keypress


swfbutton_keypress

(PHP 4 >= 4.0.5)

swfbutton_keypress -- Returns the action flag for keyPress(char)

Description

int swfbutton_keypress ( string str)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SWFBitmap | Acima | SWFbutton->addAction


SWFbutton->addAction

(no version information, might be only in CVS)

SWFbutton->addAction -- Adds an action

Description

void swfbutton->addaction ( resource action, int flags)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->addaction() adds the action action to this button for the given conditions. The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

See also swfbutton->addshape() and swfaction().

Anterior | Principal | Próxima
swfbutton_keypress | Acima | SWFbutton->addShape


SWFbutton->addShape

(no version information, might be only in CVS)

SWFbutton->addShape -- Adds a shape to a button

Description

void swfbutton->addshape ( resource shape, int flags)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->addshape() adds the shape shape to this button. The following flags' values are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN or SWFBUTTON_HIT. SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Anterior | Principal | Próxima
SWFbutton->addAction | Acima | SWFbutton->setAction


SWFbutton->setAction

(no version information, might be only in CVS)

SWFbutton->setAction -- Sets the action

Description

void swfbutton->setaction ( resource action)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->setaction() sets the action to be performed when the button is clicked. Alias for addAction(shape, SWFBUTTON_MOUSEUP). action is a swfaction().

See also swfbutton->addshape() and swfaction().

Anterior | Principal | Próxima
SWFbutton->addShape | Acima | SWFbutton->setdown


SWFbutton->setdown

(no version information, might be only in CVS)

SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)

Description

void swfbutton->setdown ( resource shape)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

See also swfbutton->addshape() and swfaction().

Anterior | Principal | Próxima
SWFbutton->setAction | Acima | SWFbutton->setHit


SWFbutton->setHit

(no version information, might be only in CVS)

SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

void swfbutton->sethit ( resource shape)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

See also swfbutton->addshape() and swfaction().

Anterior | Principal | Próxima
SWFbutton->setdown | Acima | SWFbutton->setOver


SWFbutton->setOver

(no version information, might be only in CVS)

SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

void swfbutton->setover ( resource shape)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

See also swfbutton->addshape() and swfaction().

Anterior | Principal | Próxima
SWFbutton->setHit | Acima | SWFbutton->setUp


SWFbutton->setUp

(no version information, might be only in CVS)

SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)

Description

void swfbutton->setup ( resource shape)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

See also swfbutton->addshape() and swfaction().

Anterior | Principal | Próxima
SWFbutton->setOver | Acima | SWFbutton


SWFbutton

(PHP 4 >= 4.0.5)

SWFbutton -- Creates a new Button.

Description

new swfbutton ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfbutton() creates a new Button. Roll over it, click it, see it call action code. Swank.

SWFButton has the following methods : swfbutton->addshape(),
swfbutton->setup(), swfbutton->setover()
swfbutton->setdown(), swfbutton->sethit()
swfbutton->setaction() and
swfbutton->addaction().

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Exemplo 1. swfbutton() example

<?php

  $f = new SWFFont("_serif");

  $p = new SWFSprite();

  function label($string)
  {
    global $f;

    $t = new SWFTextField();
    $t->setFont($f);
    $t->addString($string);
    $t->setHeight(200);
    $t->setBounds(3200, 200);
    return $t;
  }

  function addLabel($string)
  {
    global $p;

    $i = $p->add(label($string));
    $p->nextFrame();
    $p->remove($i);
  }

  $p->add(new SWFAction("stop();"));
  addLabel("NO ACTION");
  addLabel("SWFBUTTON_MOUSEUP");
  addLabel("SWFBUTTON_MOUSEDOWN");
  addLabel("SWFBUTTON_MOUSEOVER");
  addLabel("SWFBUTTON_MOUSEOUT");
  addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
  addLabel("SWFBUTTON_DRAGOVER");
  addLabel("SWFBUTTON_DRAGOUT");

  function rect($r, $g, $b)
  {
    $s = new SWFShape();
    $s->setRightFill($s->addFill($r, $g, $b));
    $s->drawLine(600, 0);
    $s->drawLine(0, 600);
    $s->drawLine(-600, 0);
    $s->drawLine(0, -600);

    return $s;
  }

  $b = new SWFButton();
  $b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
  $b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
  $b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
            SWFBUTTON_MOUSEUP);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
        SWFBUTTON_MOUSEOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
        SWFBUTTON_MOUSEOUT);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
        SWFBUTTON_MOUSEUPOUTSIDE);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
        SWFBUTTON_DRAGOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
        SWFBUTTON_DRAGOUT);

  $m = new SWFMovie();
  $m->setDimension(4000, 3000);

  $i = $m->add($p);
  $i->setName("label");
  $i->moveTo(400, 1900);

  $i = $m->add($b);
  $i->moveTo(400, 900);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Exemplo 2. swfbutton->addaction() example

<?php

  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->drawLine(1000,0);
  $s->drawLine(0,1000);
  $s->drawLine(-1000,0);
  $s->drawLine(0,-1000);

  $b = new SWFButton();
  $b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

  $b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("stopDrag();"),
        SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

  $p = new SWFSprite();
  $p->add($b);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->setName('test');
  $i->moveTo(1000,1000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFbutton->setUp | Acima | SWFDisplayItem->addColor


SWFDisplayItem->addColor

(no version information, might be only in CVS)

SWFDisplayItem->addColor -- Adds the given color to this item's color transform.

Description

void swfdisplayitem->addcolor ( [int red [, int green [, int blue [, int a]]]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Anterior | Principal | Próxima
SWFbutton | Acima | SWFDisplayItem->move


SWFDisplayItem->move

(no version information, might be only in CVS)

SWFDisplayItem->move -- Moves object in relative coordinates.

Description

void swfdisplayitem->move ( int dx, int dy)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->moveto().

Anterior | Principal | Próxima
SWFDisplayItem->addColor | Acima | SWFDisplayItem->moveTo


SWFDisplayItem->moveTo

(no version information, might be only in CVS)

SWFDisplayItem->moveTo -- Moves object in global coordinates.

Description

void swfdisplayitem->moveto ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->move().

Anterior | Principal | Próxima
SWFDisplayItem->move | Acima | SWFDisplayItem->multColor


SWFDisplayItem->multColor

(no version information, might be only in CVS)

SWFDisplayItem->multColor -- Multiplies the item's color transform.

Description

void swfdisplayitem->multcolor ( [int red [, int green [, int blue [, int a]]]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will modify your picture's atmospher to Halloween (use a landscape or bright picture).

Exemplo 1. swfdisplayitem->multcolor() example

<?php

  $b = new SWFBitmap("backyard.jpg");
  // note use your own picture :-)
  $s = new SWFShape();
  $s->setRightFill($s->addFill($b));
  $s->drawLine($b->getWidth(), 0);
  $s->drawLine(0, $b->getHeight());
  $s->drawLine(-$b->getWidth(), 0);
  $s->drawLine(0, -$b->getHeight());

  $m = new SWFMovie();
  $m->setDimension($b->getWidth(), $b->getHeight());

  $i = $m->add($s);

  for ($n=0; $n<=20; ++$n) {
    $i->multColor(1.0-$n/10, 1.0, 1.0);
    $i->addColor(0xff*$n/20, 0, 0);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFDisplayItem->moveTo | Acima | SWFDisplayItem->remove


SWFDisplayItem->remove

(no version information, might be only in CVS)

SWFDisplayItem->remove -- Removes the object from the movie

Description

void swfdisplayitem->remove ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfmovie->add().

Anterior | Principal | Próxima
SWFDisplayItem->multColor | Acima | SWFDisplayItem->Rotate


SWFDisplayItem->Rotate

(no version information, might be only in CVS)

SWFDisplayItem->Rotate -- Rotates in relative coordinates.

Description

void swfdisplayitem->rotate ( float ddegrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->rotate() rotates the current object by ddegrees degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->rotateto().

Anterior | Principal | Próxima
SWFDisplayItem->remove | Acima | SWFDisplayItem->rotateTo


SWFDisplayItem->rotateTo

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.

Description

void swfdisplayitem->rotateto ( float degrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->rotateto() set the current object rotation to degrees degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This example bring three rotating string from the background to the foreground. Pretty nice.

Exemplo 1. swfdisplayitem->rotateto() example

<?php
  $thetext =  "ming!";

  $f = new SWFFont("Bauhaus 93.fdb");

  $m = new SWFMovie();
  $m->setRate(24.0);
  $m->setDimension(2400, 1600);
  $m->setBackground(0xff, 0xff, 0xff);

  // functions with huge numbers of arbitrary
  // arguments are always a good idea!  Really!

  function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
  {
    global $f, $m;

    $t = new SWFText();
    $t->setFont($f);
    $t->setColor($r, $g, $b, $a);
    $t->setHeight(960);
    $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
    $t->addString($string);

    // we can add properties just like a normal PHP var,
    // as long as the names aren't already used.
    // e.g., we can't set $i->scale, because that's a function

    $i = $m->add($t);
    $i->x = $x;
    $i->y = $y;
    $i->rot = $rot;
    $i->s = $scale;
    $i->rotateTo($rot);
    $i->scale($scale, $scale);

    // but the changes are local to the function, so we have to
    // return the changed object.  kinda weird..

    return $i;
 }

  function step($i)
  {
    $oldrot = $i->rot;
    $i->rot = 19*$i->rot/20;
    $i->x = (19*$i->x + 1200)/20;
    $i->y = (19*$i->y + 800)/20;
    $i->s = (19*$i->s + 1.0)/20;

    $i->rotateTo($i->rot);
    $i->scaleTo($i->s, $i->s);
    $i->moveTo($i->x, $i->y);

    return $i;
  }

  // see?  it sure paid off in legibility:

  $i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
  $i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
  $i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

  for ($i=1; $i<=100; ++$i) {
    $i1 = step($i1);
    $i2 = step($i2);
    $i3 = step($i3);

    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also swfdisplayitem->rotate().

Anterior | Principal | Próxima
SWFDisplayItem->Rotate | Acima | SWFDisplayItem->scale


SWFDisplayItem->scale

(no version information, might be only in CVS)

SWFDisplayItem->scale -- Scales the object in relative coordinates.

Description

void swfdisplayitem->scale ( int dx, int dy)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scaleto().

Anterior | Principal | Próxima
SWFDisplayItem->rotateTo | Acima | SWFDisplayItem->scaleTo


SWFDisplayItem->scaleTo

(no version information, might be only in CVS)

SWFDisplayItem->scaleTo -- Scales the object in global coordinates.

Description

void swfdisplayitem->scaleto ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scale().

Anterior | Principal | Próxima
SWFDisplayItem->scale | Acima | SWFDisplayItem->setDepth


SWFDisplayItem->setDepth

(no version information, might be only in CVS)

SWFDisplayItem->setDepth -- Sets z-order

Description

void swfdisplayitem->setdepth ( float depth)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->rotate() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Anterior | Principal | Próxima
SWFDisplayItem->scaleTo | Acima | SWFDisplayItem->setName


SWFDisplayItem->setName

(no version information, might be only in CVS)

SWFDisplayItem->setName -- Sets the object's name

Description

void swfdisplayitem->setname ( string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Anterior | Principal | Próxima
SWFDisplayItem->setDepth | Acima | SWFDisplayItem->setRatio


SWFDisplayItem->setRatio

(no version information, might be only in CVS)

SWFDisplayItem->setRatio -- Sets the object's ratio.

Description

void swfdisplayitem->setratio ( float ratio)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will morph nicely three concentric circles.

Exemplo 1. swfdisplayitem->setname() example

<?php

  $p = new SWFMorph();

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0xff, 0xff);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0xff, 0xff, 0xff);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0xff, 0xff, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape1();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0, 0);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0, 0xff, 0);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0, 0, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape2();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $f->skewXTo(1.0);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m = new SWFMovie();
  $m->setDimension(320, 240);
  $i = $m->add($p);
  $i->moveTo(160, 120);

  for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFDisplayItem->setName | Acima | SWFDisplayItem->skewX


SWFDisplayItem->skewX

(no version information, might be only in CVS)

SWFDisplayItem->skewX -- Sets the X-skew.

Description

void swfdisplayitem->skewx ( float ddegrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Anterior | Principal | Próxima
SWFDisplayItem->setRatio | Acima | SWFDisplayItem->skewXTo


SWFDisplayItem->skewXTo

(no version information, might be only in CVS)

SWFDisplayItem->skewXTo -- Sets the X-skew.

Description

void swfdisplayitem->skewxto ( float degrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Anterior | Principal | Próxima
SWFDisplayItem->skewX | Acima | SWFDisplayItem->skewY


SWFDisplayItem->skewY

(no version information, might be only in CVS)

SWFDisplayItem->skewY -- Sets the Y-skew.

Description

void swfdisplayitem->skewy ( float ddegrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewyto(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Anterior | Principal | Próxima
SWFDisplayItem->skewXTo | Acima | SWFDisplayItem->skewYTo


SWFDisplayItem->skewYTo

(no version information, might be only in CVS)

SWFDisplayItem->skewYTo -- Sets the Y-skew.

Description

void swfdisplayitem->skewyto ( float degrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem->skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewy(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Anterior | Principal | Próxima
SWFDisplayItem->skewY | Acima | SWFDisplayItem


SWFDisplayItem

(no version information, might be only in CVS)

SWFDisplayItem -- Creates a new displayitem object.

Description

new swfdisplayitem ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfdisplayitem() creates a new swfdisplayitem object.

Here's where all the animation takes place. After you define a shape, a text object, a sprite, or a button, you add it to the movie, then use the returned handle to move, rotate, scale, or skew the thing.

SWFDisplayItem has the following methods : swfdisplayitem->move(),
swfdisplayitem->moveto(), swfdisplayitem->scaleto(),
swfdisplayitem->scale(), swfdisplayitem->rotate(),
swfdisplayitem->rotateto(), swfdisplayitem->skewxto(),
swfdisplayitem->skewx(), swfdisplayitem->skewyto()
swfdisplayitem->skewyto(), swfdisplayitem->setdepth()
swfdisplayitem->remove(), swfdisplayitem->setname()
swfdisplayitem->setratio(), swfdisplayitem->addcolor()
and swfdisplayitem->multcolor().

Anterior | Principal | Próxima
SWFDisplayItem->skewYTo | Acima | SWFFill->moveTo


SWFFill->moveTo

(no version information, might be only in CVS)

SWFFill->moveTo -- Moves fill origin

Description

void swffill->moveto ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swffill->moveto() moves fill's origin to (x,y) in global coordinates.

Anterior | Principal | Próxima
SWFDisplayItem | Acima | SWFFill->rotateTo


SWFFill->rotateTo

(no version information, might be only in CVS)

SWFFill->rotateTo -- Sets fill's rotation

Description

void swffill->rotateto ( float degrees)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swffill->rotateto() sets fill's rotation to degrees degrees.

Anterior | Principal | Próxima
SWFFill->moveTo | Acima | SWFFill->scaleTo


SWFFill->scaleTo

(no version information, might be only in CVS)

SWFFill->scaleTo -- Sets fill's scale

Description

void swffill->scaleto ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swffill->scaleto() sets fill's scale to x in the x-direction, y in the y-direction.

Anterior | Principal | Próxima
SWFFill->rotateTo | Acima | SWFFill->skewXTo


SWFFill->skewXTo

(no version information, might be only in CVS)

SWFFill->skewXTo -- Sets fill x-skew

Description

void swffill->skewxto ( float x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swffill->skewxto() sets fill x-skew to x. For x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Anterior | Principal | Próxima
SWFFill->scaleTo | Acima | SWFFill->skewYTo


SWFFill->skewYTo

(no version information, might be only in CVS)

SWFFill->skewYTo -- Sets fill y-skew

Description

void swffill->skewyto ( float y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swffill->skewyto() sets fill y-skew to y. For y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Anterior | Principal | Próxima
SWFFill->skewXTo | Acima | SWFFill


SWFFill

(PHP 4 >= 4.0.5)

SWFFill -- Loads SWFFill object

Description

new SWFFill ( void )

The swffill() object allows you to transform (scale, skew, rotate) bitmap and gradient fills. swffill() objects are created by the swfshape->addfill() methods.

SWFFill has the following methods : swffill->moveto() and swffill->scaleto(), swffill->rotateto(), swffill->skewxto() and swffill->skewyto().

Anterior | Principal | Próxima
SWFFill->skewYTo | Acima | swffont->getwidth


swffont->getwidth

(no version information, might be only in CVS)

swffont->getwidth -- Returns the string's width

Description

int swffont->getwidth ( string string)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swffont->getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Anterior | Principal | Próxima
SWFFill | Acima | SWFFont


SWFFont

(PHP 4 >= 4.0.5)

SWFFont -- Loads a font definition

Description

new swffont ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:
<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

swffont() returns a reference to the font definition, for use in the swftext->setfont() and the swftextfield->setfont() methods.

SWFFont has the following methods : swffont->getwidth().

Anterior | Principal | Próxima
swffont->getwidth | Acima | SWFGradient->addEntry


SWFGradient->addEntry

(no version information, might be only in CVS)

SWFGradient->addEntry -- Adds an entry to the gradient list.

Description

void swfgradient->addentry ( float ratio, int red, int green, int blue [, int a])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode). Last parameter a is optional.

Anterior | Principal | Próxima
SWFFont | Acima | SWFGradient


SWFGradient

(PHP 4 >= 4.0.5)

SWFGradient -- Creates a gradient object

Description

new swfgradient ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Exemplo 1. swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFGradient->addEntry | Acima | SWFMorph->getshape1


SWFMorph->getshape1

(no version information, might be only in CVS)

SWFMorph->getshape1 -- Gets a handle to the starting shape

Description

mixed swfmorph->getshape1 ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmorph->getshape1() gets a handle to the morph's starting shape. swfmorph->getshape1() returns an swfshape() object.

Anterior | Principal | Próxima
SWFGradient | Acima | SWFMorph->getshape2


SWFMorph->getshape2

(no version information, might be only in CVS)

SWFMorph->getshape2 -- Gets a handle to the ending shape

Description

mixed swfmorph->getshape2 ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmorph->getshape2() gets a handle to the morph's ending shape. swfmorph->getshape2() returns an swfshape() object.

Anterior | Principal | Próxima
SWFMorph->getshape1 | Acima | SWFMorph


SWFMorph

(PHP 4 >= 4.0.5)

SWFMorph -- Creates a new SWFMorph object.

Description

new swfmorph ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmorph() creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

SWFMorph has the following methods : swfmorph->getshape1() and swfmorph->getshape1().

This simple example will morph a big red square into a smaller blue black-bordered square.

Exemplo 1. swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFMorph->getshape2 | Acima | SWFMovie->add


SWFMovie->add

(no version information, might be only in CVS)

SWFMovie->add -- Adds any type of data to a movie.

Description

void swfmovie->add ( resource instance)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->add() adds instance to the current movie. instance is any type of data : Shapes, text, fonts, etc. must all be added to the movie to make this work.

For displayable types (shape, text, button, sprite), this returns an swfdisplayitem(), a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

See also all other objects (adding this later), and swfmovie->remove()

See examples in : swfdisplayitem->rotateto() and swfshape->addfill().

Anterior | Principal | Próxima
SWFMorph | Acima | SWFMovie->nextframe


SWFMovie->nextframe

(no version information, might be only in CVS)

SWFMovie->nextframe -- Moves to the next frame of the animation.

Description

void swfmovie->nextframe ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->nextframe() moves to the next frame of the animation.

Anterior | Principal | Próxima
SWFMovie->add | Acima | SWFMovie->output


SWFMovie->output

(no version information, might be only in CVS)

SWFMovie->output -- Dumps your lovingly prepared movie out.

Description

void swfmovie->output ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->output() dumps your lovingly prepared movie out. In PHP, preceding this with the command
<?php
header('Content-type: application/x-shockwave-flash');
?>
convinces the browser to display this as a flash movie.

See also swfmovie->save().

See examples in :
swfmovie->streammp3(),
swfdisplayitem->rotateto(),
swfaction()...
Any example will use this method.

Anterior | Principal | Próxima
SWFMovie->nextframe | Acima | swfmovie->remove


swfmovie->remove

(no version information, might be only in CVS)

swfmovie->remove -- Removes the object instance from the display list.

Description

void swfmovie->remove ( resource instance)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->remove() removes the object instance instance from the display list.

See also swfmovie->add().

Anterior | Principal | Próxima
SWFMovie->output | Acima | SWFMovie->save


SWFMovie->save

(no version information, might be only in CVS)

SWFMovie->save -- Saves your movie in a file.

Description

void swfmovie->save ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->save() saves your movie to the file named filename.

See also output().

Anterior | Principal | Próxima
swfmovie->remove | Acima | SWFMovie->setbackground


SWFMovie->setbackground

(no version information, might be only in CVS)

SWFMovie->setbackground -- Sets the background color.

Description

void swfmovie->setbackground ( int red, int green, int blue)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->setbackground() sets the background color. Why is there no rgba version? Think about it. (Actually, that's not such a dumb question after all- you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the http://www.macromedia.com/ site for details.)

Anterior | Principal | Próxima
SWFMovie->save | Acima | SWFMovie->setdimension


SWFMovie->setdimension

(no version information, might be only in CVS)

SWFMovie->setdimension -- Sets the movie's width and height.

Description

void swfmovie->setdimension ( int width, int height)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->setdimension() sets the movie's width to width and height to height.

Anterior | Principal | Próxima
SWFMovie->setbackground | Acima | SWFMovie->setframes


SWFMovie->setframes

(no version information, might be only in CVS)

SWFMovie->setframes -- Sets the total number of frames in the animation.

Description

void swfmovie->setframes ( string numberofframes)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->setframes() sets the total number of frames in the animation to numberofframes.

Anterior | Principal | Próxima
SWFMovie->setdimension | Acima | SWFMovie->setrate


SWFMovie->setrate

(no version information, might be only in CVS)

SWFMovie->setrate -- Sets the animation's frame rate.

Description

void swfmovie->setrate ( int rate)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->setrate() sets the frame rate to rate, in frame per seconds. Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Anterior | Principal | Próxima
SWFMovie->setframes | Acima | SWFMovie->streammp3


SWFMovie->streammp3

(no version information, might be only in CVS)

SWFMovie->streammp3 -- Streams a MP3 file.

Description

void swfmovie->streammp3 ( string mp3FileName)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie->streammp3() streams the mp3 file mp3FileName. Not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it). Like swfshape->addjpegfill(), this isn't a stable function- we'll probably need to make a separate SWFSound object to contain sound types.

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Yes, now you can use ming to put that rock and roll devil worship music into your SWF files. Just don't tell the RIAA.

Exemplo 1. swfmovie->streammp3() example

<?php
  $m = new SWFMovie();
  $m->setRate(12.0);
  $m->streamMp3("distortobass.mp3");
  // use your own MP3

  // 11.85 seconds at 12.0 fps = 142 frames
  $m->setFrames(142);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFMovie->setrate | Acima | SWFMovie


SWFMovie

(PHP 4 >= 4.0.5)

SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.

Description

new swfmovie ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfmovie() creates a new movie object, representing an SWF version 4 movie.

SWFMovie has the following methods :
swfmovie->output(),swfmovie->save(),
swfmovie->add(), swfmovie->remove(),
swfmovie->nextframe(), swfmovie->setbackground(),
swfmovie->setrate(), swfmovie->setdimension(),
swfmovie->setframes() and swfmovie->streammp3().

See examples in : swfdisplayitem->rotateto(), swfshape->setline(), swfshape->addfill()... Any example will use this object.

Anterior | Principal | Próxima
SWFMovie->streammp3 | Acima | SWFShape->addFill


SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Adds a solid fill to the shape.

Description

void swfshape->addfill ( int red, int green, int blue [, int a])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

void swfshape->addfill ( SWFbitmap bitmap [, int flags])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

void swfshape->addfill ( SWFGradient gradient [, int flags])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->addfill() adds a solid fill to the shape's list of fill styles. swfshape->addfill() accepts three different types of arguments.

red, green, blue is a color (RGB mode). Last parameter a is optional.

The bitmap argument is an swfbitmap() object. The flags argument can be one of the following values : SWFFILL_CLIPPED_BITMAP or SWFFILL_TILED_BITMAP. Default is SWFFILL_TILED_BITMAP. I think.

The gradient argument is an swfgradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

swfshape->addfill() returns an swffill()
object for use with the swfshape->setleftfill()
and swfshape->setrightfill() functions
described below.

See also swfshape->setleftfill() and swfshape->setrightfill().

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Exemplo 1. swfshape->addfill() example

<?php

  $p = new SWFMorph();

  $b = new SWFBitmap("alphafill.jpg");
  // use your own bitmap
  $width = $b->getWidth();
  $height = $b->getHeight();

  $s = $p->getShape1();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);
  $f->moveTo(-$width/2, -$height/4);
  $f->scaleTo(1.0, 0.5);
  $s->setLeftFill($f);
  $s->movePenTo(-$width/2, -$height/4);
  $s->drawLine($width, 0);
  $s->drawLine(0, $height/2);
  $s->drawLine(-$width, 0);
  $s->drawLine(0, -$height/2);

  $s = $p->getShape2();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);

  // these two have no effect!
  $f->moveTo(-$width/4, -$height/2);
  $f->scaleTo(0.5, 1.0);

  $s->setLeftFill($f);
  $s->movePenTo(-$width/4, -$height/2);
  $s->drawLine($width/2, 0);
  $s->drawLine(0, $height);
  $s->drawLine(-$width/2, 0);
  $s->drawLine(0, -$height);

  $m = new SWFMovie();
  $m->setDimension($width, $height);
  $i = $m->add($p);
  $i->moveTo($width/2, $height/2);

  for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFMovie | Acima | SWFShape->drawCurve


SWFShape->drawCurve

(no version information, might be only in CVS)

SWFShape->drawCurve -- Draws a curve (relative).

Description

void swfshape->drawcurve ( int controldx, int controldy, int anchordx, int anchordy)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Anterior | Principal | Próxima
SWFShape->addFill | Acima | SWFShape->drawCurveTo


SWFShape->drawCurveTo

(no version information, might be only in CVS)

SWFShape->drawCurveTo -- Draws a curve.

Description

void swfshape->drawcurveto ( int controlx, int controly, int anchorx, int anchory)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Anterior | Principal | Próxima
SWFShape->drawCurve | Acima | SWFShape->drawLine


SWFShape->drawLine

(no version information, might be only in CVS)

SWFShape->drawLine -- Draws a line (relative).

Description

void swfshape->drawline ( int dx, int dy)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx,dy).

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawlineto().

Anterior | Principal | Próxima
SWFShape->drawCurveTo | Acima | SWFShape->drawLineTo


SWFShape->drawLineTo

(no version information, might be only in CVS)

SWFShape->drawLineTo -- Draws a line.

Description

void swfshape->drawlineto ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x,y) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawline().

Anterior | Principal | Próxima
SWFShape->drawLine | Acima | SWFShape->movePen


SWFShape->movePen

(no version information, might be only in CVS)

SWFShape->movePen -- Moves the shape's pen (relative).

Description

void swfshape->movepen ( int dx, int dy)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Anterior | Principal | Próxima
SWFShape->drawLineTo | Acima | SWFShape->movePenTo


SWFShape->movePenTo

(no version information, might be only in CVS)

SWFShape->movePenTo -- Moves the shape's pen.

Description

void swfshape->movepento ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

See also
swfshape->movepen(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Anterior | Principal | Próxima
SWFShape->movePen | Acima | SWFShape->setLeftFill


SWFShape->setLeftFill

(no version information, might be only in CVS)

SWFShape->setLeftFill -- Sets left rasterizing color.

Description

void swfshape->setleftfill ( swfgradient fill)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

void swfshape->setleftfill ( int red, int green, int blue [, int a])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

See also swfshape->setrightfill().

Anterior | Principal | Próxima
SWFShape->movePenTo | Acima | SWFShape->setLine


SWFShape->setLine

(no version information, might be only in CVS)

SWFShape->setLine -- Sets the shape's line style.

Description

void swfshape->setline ( int width [, int red [, int green [, int blue [, int a]]]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

swfshape->setline() accepts 1, 4 or 5 arguments (not 3 or 2).

You must declare all line styles before you use them (see example).

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Exemplo 1. swfshape->setline() example

<?php
  $s = new SWFShape();
  $f1 = $s->addFill(0xff, 0, 0);
  $f2 = $s->addFill(0xff, 0x7f, 0);
  $f3 = $s->addFill(0xff, 0xff, 0);
  $f4 = $s->addFill(0, 0xff, 0);
  $f5 = $s->addFill(0, 0, 0xff);

  // bug: have to declare all line styles before you use them
  $s->setLine(40, 0x7f, 0, 0);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->setLine(40, 0, 0x7f, 0);
  $s->setLine(40, 0, 0, 0x7f);

  $f = new SWFFont('Techno.fdb');

  $s->setRightFill($f1);
  $s->setLine(40, 0x7f, 0, 0);
  $s->drawGlyph($f, '!');
  $s->movePen($f->getWidth('!'), 0);

  $s->setRightFill($f2);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->drawGlyph($f, '#');
  $s->movePen($f->getWidth('#'), 0);

  $s->setRightFill($f3);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->drawGlyph($f, '%');
  $s->movePen($f->getWidth('%'), 0);

  $s->setRightFill($f4);
  $s->setLine(40, 0, 0x7f, 0);
  $s->drawGlyph($f, '*');
  $s->movePen($f->getWidth('*'), 0);

  $s->setRightFill($f5);
  $s->setLine(40, 0, 0, 0x7f);
  $s->drawGlyph($f, '@');

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setRate(12.0);
  $i = $m->add($s);
  $i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFShape->setLeftFill | Acima | SWFShape->setRightFill


SWFShape->setRightFill

(no version information, might be only in CVS)

SWFShape->setRightFill -- Sets right rasterizing color.

Description

void swfshape->setrightfill ( swfgradient fill)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

void swfshape->setrightfill ( int red, int green, int blue [, int a])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

See also swfshape->setleftfill().

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Anterior | Principal | Próxima
SWFShape->setLine | Acima | SWFShape


SWFShape

(PHP 4 >= 4.0.5)

SWFShape -- Creates a new shape object.

Description

new swfshape ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfshape() creates a new shape object.

SWFShape has the following methods : swfshape->setline(),
swfshape->addfill(), swfshape->setleftfill(),
swfshape->setrightfill(), swfshape->movepento(),
swfshape->movepen(), swfshape->drawlineto(),
swfshape->drawline(), swfshape->drawcurveto()
and swfshape->drawcurve().

This simple example will draw a big red elliptic quadrant.

Exemplo 1. swfshape() example

<?php
  $s = new SWFShape();
  $s->setLine(40, 0x7f, 0, 0);
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(200, 200);
  $s->drawLineTo(6200, 200);
  $s->drawLineTo(6200, 4600);
  $s->drawCurveTo(200, 4600, 200, 200);

  $m = new SWFMovie();
  $m->setDimension(6400, 4800);
  $m->setRate(12.0);
  $m->add($s);
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFShape->setRightFill | Acima | swfsprite->add


swfsprite->add

(no version information, might be only in CVS)

swfsprite->add -- Adds an object to a sprite

Description

void swfsprite->add ( resource object)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Anterior | Principal | Próxima
SWFShape | Acima | SWFSprite->nextframe


SWFSprite->nextframe

(no version information, might be only in CVS)

SWFSprite->nextframe -- Moves to the next frame of the animation.

Description

void swfsprite->nextframe ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfsprite->setframes() moves to the next frame of the animation.

Anterior | Principal | Próxima
swfsprite->add | Acima | SWFSprite->remove


SWFSprite->remove

(no version information, might be only in CVS)

SWFSprite->remove -- Removes an object to a sprite

Description

void swfsprite->remove ( resource object)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Anterior | Principal | Próxima
SWFSprite->nextframe | Acima | SWFSprite->setframes


SWFSprite->setframes

(no version information, might be only in CVS)

SWFSprite->setframes -- Sets the total number of frames in the animation.

Description

void swfsprite->setframes ( int numberofframes)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Anterior | Principal | Próxima
SWFSprite->remove | Acima | SWFSprite


SWFSprite

(PHP 4 >= 4.0.5)

SWFSprite -- Creates a movie clip (a sprite)

Description

new swfsprite ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swfsprite() are also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

swfsprite() has the following methods :
swfsprite->add(),
swfsprite->remove(), swfsprite->nextframe()
and swfsprite->setframes().

This simple example will spin gracefully a big red square.

Exemplo 1. swfsprite() example

<?php
  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->moveTo(1500, 1000);
  $i->setName("blah");

  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(3000, 2000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFSprite->setframes | Acima | SWFText->addString


SWFText->addString

(no version information, might be only in CVS)

SWFText->addString -- Draws a string

Description

void swftext->addstring ( string string)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Anterior | Principal | Próxima
SWFSprite | Acima | SWFText->getWidth


SWFText->getWidth

(no version information, might be only in CVS)

SWFText->getWidth -- Computes string's width

Description

void swftext->getwidth ( string string)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->addstring() returns the rendered width of the string string at the text object's current font, scale, and spacing settings.

Anterior | Principal | Próxima
SWFText->addString | Acima | SWFText->moveTo


SWFText->moveTo

(no version information, might be only in CVS)

SWFText->moveTo -- Moves the pen

Description

void swftext->moveto ( int x, int y)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Anterior | Principal | Próxima
SWFText->getWidth | Acima | SWFText->setColor


SWFText->setColor

(no version information, might be only in CVS)

SWFText->setColor -- Sets the current font color

Description

void swftext->setcolor ( int red, int green, int blue [, int a])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->setspacing() changes the current text color. Default is black. I think. Color is represented using the RGB system.

Anterior | Principal | Próxima
SWFText->moveTo | Acima | SWFText->setFont


SWFText->setFont

(no version information, might be only in CVS)

SWFText->setFont -- Sets the current font

Description

void swftext->setfont ( string font)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->setfont() sets the current font to font.

Anterior | Principal | Próxima
SWFText->setColor | Acima | SWFText->setHeight


SWFText->setHeight

(no version information, might be only in CVS)

SWFText->setHeight -- Sets the current font height

Description

void swftext->setheight ( int height)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->setheight() sets the current font height to height. Default is 240.

Anterior | Principal | Próxima
SWFText->setFont | Acima | SWFText->setSpacing


SWFText->setSpacing

(no version information, might be only in CVS)

SWFText->setSpacing -- Sets the current font spacing

Description

void swftext->setspacing ( float spacing)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext->setspacing() sets the current font spacing to spacingspacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Anterior | Principal | Próxima
SWFText->setHeight | Acima | SWFText


SWFText

(PHP 4 >= 4.0.5)

SWFText -- Creates a new SWFText object.

Description

new swftext ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftext() creates a new SWFText object, fresh for manipulating.

SWFText has the following methods : swftext->setfont(),
swftext->setheight(), swftext->setspacing(),
swftext->setcolor(), swftext->moveto(),
swftext->addstring() and swftext->getwidth().

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Exemplo 1. swftext() example

<?php
  $f = new SWFFont("Techno.fdb");
  $t = new SWFText();
  $t->setFont($f);
  $t->moveTo(200, 2400);
  $t->setColor(0xff, 0xff, 0);
  $t->setHeight(1200);
  $t->addString("PHP generates Flash with Ming!!");

  $m = new SWFMovie();
  $m->setDimension(5400, 3600);

  $m->add($t);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Principal | Próxima
SWFText->setSpacing | Acima | SWFTextField->addstring


SWFTextField->addstring

(no version information, might be only in CVS)

SWFTextField->addstring -- Concatenates the given string to the text field

Description

void swftextfield->addstring ( string string)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setname() concatenates the string string to the text field.

Anterior | Principal | Próxima
SWFText | Acima | SWFTextField->align


SWFTextField->align

(no version information, might be only in CVS)

SWFTextField->align -- Sets the text field alignment

Description

void swftextfield->align ( int alignement)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Anterior | Principal | Próxima
SWFTextField->addstring | Acima | SWFTextField->setbounds


SWFTextField->setbounds

(no version information, might be only in CVS)

SWFTextField->setbounds -- Sets the text field width and height

Description

void swftextfield->setbounds ( int width, int height)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Anterior | Principal | Próxima
SWFTextField->align | Acima | SWFTextField->setcolor


SWFTextField->setcolor

(no version information, might be only in CVS)

SWFTextField->setcolor -- Sets the color of the text field.

Description

void swftextfield->setcolor ( int red, int green, int blue [, int a])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Anterior | Principal | Próxima
SWFTextField->setbounds | Acima | SWFTextField->setFont


SWFTextField->setFont

(no version information, might be only in CVS)

SWFTextField->setFont -- Sets the text field font

Description

void swftextfield->setfont ( string font)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Anterior | Principal | Próxima
SWFTextField->setcolor | Acima | SWFTextField->setHeight


SWFTextField->setHeight

(no version information, might be only in CVS)

SWFTextField->setHeight -- Sets the font height of this text field font.

Description

void swftextfield->setheight ( int height)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Anterior | Principal | Próxima
SWFTextField->setFont | Acima | SWFTextField->setindentation


SWFTextField->setindentation

(no version information, might be only in CVS)

SWFTextField->setindentation -- Sets the indentation of the first line.

Description

void swftextfield->setindentation ( int width)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Anterior | Principal | Próxima
SWFTextField->setHeight | Acima | SWFTextField->setLeftMargin


SWFTextField->setLeftMargin

(no version information, might be only in CVS)

SWFTextField->setLeftMargin -- Sets the left margin width of the text field.

Description

void swftextfield->setleftmargin ( int width)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Anterior | Principal | Próxima
SWFTextField->setindentation | Acima | SWFTextField->setLineSpacing


SWFTextField->setLineSpacing

(no version information, might be only in CVS)

SWFTextField->setLineSpacing -- Sets the line spacing of the text field.

Description

void swftextfield->setlinespacing ( int height)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Anterior | Principal | Próxima
SWFTextField->setLeftMargin | Acima | SWFTextField->setMargins


SWFTextField->setMargins

(no version information, might be only in CVS)

SWFTextField->setMargins -- Sets the margins width of the text field.

Description

void swftextfield->setmargins ( int left, int right)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setmargins() set both margins at once, for the man on the go.

Anterior | Principal | Próxima
SWFTextField->setLineSpacing | Acima | SWFTextField->setname


SWFTextField->setname

(no version information, might be only in CVS)

SWFTextField->setname -- Sets the variable name

Description

void swftextfield->setname ( string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Anterior | Principal | Próxima
SWFTextField->setMargins | Acima | SWFTextField->setrightMargin


SWFTextField->setrightMargin

(no version information, might be only in CVS)

SWFTextField->setrightMargin -- Sets the right margin width of the text field.

Description

void swftextfield->setrightmargin ( int width)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Anterior | Principal | Próxima
SWFTextField->setname | Acima | SWFTextField


SWFTextField

(PHP 4 >= 4.0.5)

SWFTextField -- Creates a text field object

Description

new swftextfield ( [int flags])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_HASLENGTH

  • SWFTEXTFIELD_HTML allows text markup using HTML-tags

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

Anterior | Principal | Próxima
SWFTextField->setrightMargin | Acima | Miscelânea


Miscelânea

Manual do PHP
Anterior Próxima

LXI. Miscelânea

Introdução

Estas funções foram colocadas aqui porque pareciam não caber em nenhuma outra categoria.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de Configuração

Nome | Padrão | Modificável
ignore_user_abort | "0" | PHP_INI_ALL
highlight.string | #CC0000 | PHP_INI_ALL
highlight.comment | #FF9900 | PHP_INI_ALL
highlight.keyword | #006600 | PHP_INI_ALL
highlight.bg | #FFFFFF | PHP_INI_ALL
highlight.default | #0000CC | PHP_INI_ALL
highlight.html | #000000 | PHP_INI_ALL
browscap | NULL | PHP_INI_SYSTEM
Para maiores detalhes e definição das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

ignore_user_abort boolean

TRUE por padrão. Se modificado para FALSE os scripts terminaram assim que o cliente tentar enviar algo após o cliente ter abortado sua conexão.

Veja também ignore_user_abort().

highlight.comment string, highlight.default string, highlight.html string, highlight.keyword string, highlight.string string

Cores para o modo de destaque da sintaxe. Qualquer coisa aceitável em <font color="??????"> deve funcionar.

browscap string

Nome (ex: browscap.ini) e localização do arquivo com as capacidades do browser. Veja também get_browser().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

Índice
connection_aborted -- Retorna TRUE se o cliente desconectou
connection_status -- Retorna o status da conexão
connection_timeout -- Retorna TRUE se o script ultrapassou o limite de tempo
constant -- Retorna o valor de uma constante
define -- Define uma constante.
defined -- Confere se uma constante existe
die -- Apelido para exit()
eval -- Executa uma string como código PHP
exit -- Mostra uma mensagem e termina o script atual
get_browser -- Diz o que o browser do usuário pode fazer
highlight_file -- Destaca a sintaxe de um arquivo
highlight_string -- Destaque da sintaxe de uma string
ignore_user_abort -- Estabelece se acontecerá o enceramento do script quando o usuário abortar a conexão
pack -- Pack data into binary string.
show_source -- Apelido para highlight_file()
sleep -- Atrasa a execução do script
uniqid -- Gera um ID unico
unpack -- Unpack data from binary string
usleep -- Atrasa a execução em milionésimos de segundo

Anterior | Principal | Próxima
SWFTextField | Acima | connection_aborted


connection_aborted

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

connection_aborted -- Retorna TRUE se o cliente desconectou

Descrição

int connection_aborted ( void )

Retorna TRUE se o cliente desconectou. Veja a descrição de Connection Handling no capitulo Features para uma explicação completa.

Veja também connection_status() e ignore_user_abort()..

Anterior | Principal | Próxima
Miscelânea | Acima | connection_status


connection_status

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

connection_status -- Retorna o status da conexão

Descrição

int connection_status ( void )

Retorna o estado da conexão. Veja a descrição de Connection Handling no capitulo Features para uma explicação completa.

Veja também connection_aborted() e ignore_user_abort().

Anterior | Principal | Próxima
connection_aborted | Acima | connection_timeout


connection_timeout

(PHP 3>= 3.0.7, PHP 4 <= 4.0.4)

connection_timeout -- Retorna TRUE se o script ultrapassou o limite de tempo

Descrição

bool connection_timeout ( void )

Retorna TRUE se o script ultrapassou o limite de tempo.

Obsoleta

Esta função é obsoleta, e não existe mais desde o PHP 4.0.5.

Veja a descrição de Connection Handling no capitulo Features para uma explicação completa.

Anterior | Principal | Próxima
connection_status | Acima | constant


constant

(PHP 4 >= 4.0.4, PHP 5)

constant -- Retorna o valor de uma constante

Descrição

mixed constant ( string name)

A função constant() irá retornar o valor de uma constante indicada pelo parâmetro name.

A função constant() é útil se você precisa pegar o valor de uma constante, mas não sabe o seu nome. Ex: esta guardada em uma variável ou é retornada por uma função.

Exemplo 1. Exemplo constant()

<?php

define ("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // mesma coisa que a linha anterior

?>

Veja também define(), defined() e a seção sobre Constantes.

Anterior | Principal | Próxima
connection_timeout | Acima | define


define

(PHP 3, PHP 4 , PHP 5)

define -- Define uma constante.

Descrição

bool define ( string name, mixed value [, bool case_insensitive])

Define uma constante. Veja a seção sobre constantes para maiores detalhes.

O nome da constante é dado pelo parâmetro name; o valor é dado por value.

O terceiro parâmetro, que é opcional, case_insensitive também esta disponível. Se é dado o valor TRUE, então a constante será definida como case-insensitive. O padrão é case-sensitive; ex. CONSTANTE e Constante representam valores diferentes.

Exemplo 1. Definindo Constantes

<?php
define ("CONSTANTE", "Alô Mundo.");
echo CONSTANTE; // mostra "Alô Mundo."
echo Constante; // mostra "Constante" e dá um aviso.

define ("GREETING", "Alô Você.",TRUE);
echo GREETING; // mostra "Alô você."
echo Greeting; // mostra "Alô você."

?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Vejá também defined(), constant()e a seção sobre Constantes.

Anterior | Principal | Próxima
constant | Acima | defined


defined

(PHP 3, PHP 4 , PHP 5)

defined -- Confere se uma constante existe

Descrição

bool defined ( string name)

Retorna TRUE se a constante dada pelo parâmetro name já foi definida, em outro caso FALSE.

Exemplo 1. Conferindo Constantes

<?php
// Note que deve estar entre apostrofros, este
// exemplo esta conferindo se existe uma constante com o nome de CONSTANT
if (defined('CONSTANT')){
    echo CONSTANT;
    }
?>

Nota: Se você este querendo ver se um variável existe use isset() porque a função defined() aplica-se somente a constantes. Se você quiser saber se uma função existe use function_exists().

Veja também define(),
constant(),
get_defined_constants(),
function_exists(), e a seção sobre
Constantes.

Anterior | Principal | Próxima
define | Acima | die


die

die -- Apelido para exit()

Descrição

Esta função é um apelido para exit().

Anterior | Principal | Próxima
defined | Acima | eval


eval

(PHP 3, PHP 4, PHP 5 )

eval -- Executa uma string como código PHP

Descrição

mixed eval ( string code_str)

A função eval() executa a string dada no parâmetro code_str como código PHP. Entre outras coisas, isto pode ser útil para guardar código em um campo de texto de um banco de dados para execução posterior.

Há alguns fatores para lembrar quando usar eval(). Lembre-se que a string passada deve ser código PHP valido, incluindo coisas como terminar os comandos com ponto-e-vírgula assim o compilador não morre uma linha após eval(), escapar as coisas propriamente em code_str.

Também se lembre que as variáveis que tenham seus valores em eval() irão reter estes valores para o resto do script.

Um comando return irá terminar a execução do script imediatamente No PHP 4, eval() retorna NULL a menos que return() seja chamado no código executado, caso no qual o valor passado para return() é retornado. No PHP 3, eval() não retorna um valor.

Exemplo 1. Exemplo eval()

<?php
$string = 'taça';
$name = 'café';
$str = 'Esta é uma $string com o meu $name nela.';
echo $str. "\n";
eval ("\$str = \"$str\";");
echo $str . "\n";
?>

O exemplo acima irá mostrar

Esta é uma $string com o meu $name nela.
Esta é uma taça com o meu café nela.

Dica: Como toda saída é normalmente enviada direto para o browser, você pode usar as Funções de Controle de Output para capturar o resultado e guardá-lo em uma string (por exemplo).

Anterior | Principal | Próxima
die | Acima | exit


exit

(PHP 3, PHP 4, PHP 5 )

exit -- Mostra uma mensagem e termina o script atual

Descrição

void exit ( [string status])

void exit ( int status)

Nota: Esta não é uma função real, mas uma construção da linguagem.

A função exit() termina a execução do script. Ela mostra o parâmetro status justamente antes de sair.

Se status é um integer, este valor será usado como estado se saída. Estados de saída deve, estar no intervalo de 1 a 254, o estado de saída 255 é reservado pelo php e não deve ser usado.

Exemplo 1. Exemplo exit()

<?php

$filename = '/caminho/para/arquivo';
$file = fopen ($filename, 'r')
    or exit("Não pude abrir o arquivo ($filename)");

?>

Nota: A função die() é um apelido para a função exit().

Veja também: register_shutdown_function().

Anterior | Principal | Próxima
eval | Acima | get_browser


get_browser

(PHP 3, PHP 4 , PHP 5)

get_browser -- Diz o que o browser do usuário pode fazer

Descrição

object get_browser ( [string user_agent])

get_browser() tenta determinar as capacidades do browser do usuário. Isto é feito procurando a informação do browser no arquivo browscap.ini. Por padrão, o valor de $HTTP_USER_AGENT é usado; em qualquer caso você pode alterar isto (ex., procurar informação de outro browser) passando o parâmetro opcional user_agent para a função get_browser().

A informação é retornada como um objeto, que contém vários elementos com dados representando, por exemplo, os números de versão maior e menor, a string de ID, valores TRUE/FALSE para coisas como frames, JavaScript, e cookies; e assim em diante.

Enquanto browscap.ini contém informações sobre vários browser, ele precisa de atualizações para manter o banco de dados atual. O formato do arquivo é auto-explicatório.

O exemplo a seguir irá mostrar uma possível lista de toda a informação disponível sobre o browser do usuário.

Exemplo 1. Exemplo get_browser()

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "<hr />\n";
$browser = get_browser();
foreach ($browser as $name => $value) {
    print "<b>$name</b> $value <br />\n";
}
?>

A saída do script acima deve ser algo como isto:

Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr />
<b>browser_name_pattern:</b> Mozilla/4\.5.*<br />
<b>parent:</b> Netscape 4.0<br />
<b>platform:</b> Linux<br />
<b>majorver:</b> 4<br />
<b>minorver:</b> 5<br />
<b>browser:</b> Netscape<br />
<b>version:</b> 4<br />
<b>frames:</b> 1<br />
<b>tables:</b> 1<br />
<b>cookies:</b> 1<br />
<b>backgroundsounds:</b> <br />
<b>vbscript:</b> <br />
<b>javascript:</b> 1<br />
<b>javaapplets:</b> 1<br />
<b>activexcontrols:</b> <br />
<b>beta:</b> <br />
<b>crawler:</b> <br />
<b>authenticodeupdate:</b> <br />
<b>msn:</b> <br />

Para que isto funcione, sua configuração do browscap no php.ini deve apontar para o local correto do arquivo browscap.ini no seu sistema. browscap.ini não vem com o PHP mas você deve encontrar uma versão atualizada do arquivo browscap.ini. Por padrão,a diretiva browscap esta comentada.

Os valores de cookies simplesmente indicam que que o browser é capaz de receber cookies e não indica que o usuário permite ao browser receber ou não cookies. O unico meio de testar se os cookies são aceitos é criar um com setcookie(), recarregar, e conferir o valor.

Nota: Em versões anteriores ao PHP 4.0.6, você tem que passar o user agent via o parâmetro opcional user_agent se a diretiva do PHP register_globals esta em off. Neste caso, você irá passar $HTTP_SERVER_VARS['HTTP_USER_AGENT'].

Anterior | Principal | Próxima
exit | Acima | highlight_file


highlight_file

(PHP 4 , PHP 5)

highlight_file -- Destaca a sintaxe de um arquivo

Descrição

mixed highlight_file ( string filename [, bool return])

A função highlight_file() mostra uma versão do código contido em filename com a sintaxe destacada usando as cores definidas pelo destacador de sintaxe do PHP.

Se o segundo parâmetro return for TRUE então highlight_file() irá retornar o código como uma string ao invés de mostrá-lo. Se o segundo parâmetro não for TRUE então highlight_file() irá retornar TRUE se funcionar, FALSE em caso de falha.

Nota: O parâmetro return tornou-se disponível no PHP 4.2.0. Antes disso é usado como o padrão, que é FALSE.

Cuidado

Deve se tomar cuidado quando usar as funções show_source() e highlight_file() para ter certeza que você não irá inadvertidamente revelar informações sensíveis como senhas ou outros tipos de informação que possam criar um risco de segurança em potencial.

Nota: Desde o PHP 4.2.1 esta função também é afetada por safe_mode e open_basedir.

Para configurar uma url que possa fazer o destaque da sintaxe de qualquer script que você passar para ela, nós iremos fazer uso da diretiva "ForceType" no Apache para gerar um bom modelo de URL, e usar a função highlight_file() para mostrar o código com uma boa aparência.

Exemplo 1. Criando uma URL para destaque da sintaxe

No seu httpd.conf você pode adicionar o seguinte:

<Location /source>
    ForceType application/x-httpd-php
</Location>

E então faça um arquivo chamado "source" e coloque-o no seu diretório raiz do servidor web.

<html>
<head>
<title>Mostrar Fonte</title>
</head>
<body bgcolor="white">
<?php
    $script = getenv ("PATH_TRANSLATED");
    if(!$script) {
       echo "<br><b>ERRO: Necessário o nome do script</b><br>";
    } else {
      if (ereg("(\.php|\.inc)$",$script)) {
      echo "<h1>Source of: $PATH_INFO</h1>\n<hr>\n";
      highlight_file($script);
      } else {
        echo "<h1>ERRO: Somente PHP ou script de inclusão(.inc) são permitidos</h1>";
      }
    }
    echo "<hr>Processado: ".date("Y/M/d H:i:s",time());
?>
</body>
</html>

Então você pode usar uma URL como a abaixo para mostrar uma versão colorida do script localizado em "/caminho/para/script.php" no seu site web.

http://www.example.com/source/caminho/para/script.php

Veja também highlight_string().

Anterior | Principal | Próxima
get_browser | Acima | highlight_string


highlight_string

(PHP 4 , PHP 5)

highlight_string -- Destaque da sintaxe de uma string

Descrição

mixed highlight_string ( string str [, bool return])

A função highlight_string() mostra o destaque da sintaxe para o parâmetro str usando as cores definidas para o destacador de sintaxe do PHP.

Se o segundo parâmetro return for TRUE então a função highlight_string() irá retornar o código com a sintaxe destacada ao invés de mostrá-lo. Se o segundo parâmetro não for TRUE então highlight_string() irá retornar TRUE se funcionar, FALSE se ocorrer falha.

Nota: O parâmetro return tornou-se disponível no PHP 4.2.0. Antes disso é usado como o padrão, que é FALSE

Veja também highlight_file().

Anterior | Principal | Próxima
highlight_file | Acima | ignore_user_abort


ignore_user_abort

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ignore_user_abort -- Estabelece se acontecerá o enceramento do script quando o usuário abortar a conexão

Descrição

int ignore_user_abort ( [bool setting])

Esta função estabelece se quando o usuário desconectar deve acontecer o fim do script. Irá retornar o que foi estabelecido anteriormente e pode ser chamado sem argumentos para retornar o que esta estabelecido e não muda-lo. Veja a seção Connection Handling no capitulo Features para uma completa descrição do manuseio de conexões no PHP.

Veja também connection_aborted() e connection_status().

Anterior | Principal | Próxima
highlight_string | Acima | pack


pack

(PHP 3, PHP 4 , PHP 5)

pack -- Pack data into binary string.

Description

string pack ( string format [, mixed args])

Pack given arguments into binary string according to format. Returns binary string containing data.

The idea to this function was taken from Perl and all formatting codes work the same as there, however, there are some formatting codes that are missing such as Perl's "u" format code. The format string consists of format codes followed by an optional repeater argument. The repeater argument can be either an integer value or * for repeating to the end of the input data. For a, A, h, H the repeat count specifies how many characters of one data argument are taken, for @ it is the absolute position where to put the next data, for everything else the repeat count specifies how many data arguments are consumed and packed into the resulting binary string. Currently implemented are

Tabela 1. pack() format characters

Code | Description
a | NUL-padded string
A | SPACE-padded string
h | Hex string, low nibble first
H | Hex string, high nibble first
c | signed char
C | unsigned char
s | signed short (always 16 bit, machine byte order)
S | unsigned short (always 16 bit, machine byte order)
n | unsigned short (always 16 bit, big endian byte order)
v | unsigned short (always 16 bit, little endian byte order)
i | signed integer (machine dependent size and byte order)
I | unsigned integer (machine dependent size and byte order)
l | signed long (always 32 bit, machine byte order)
L | unsigned long (always 32 bit, machine byte order)
N | unsigned long (always 32 bit, big endian byte order)
V | unsigned long (always 32 bit, little endian byte order)
f | float (machine dependent size and representation)
d | double (machine dependent size and representation)
x | NUL byte
X | Back up one byte
@ | NUL-fill to absolute position

Exemplo 1. pack() example

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

The resulting binary string will be 6 bytes long and contain the byte sequence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Note that the distinction between signed and unsigned values only affects the function unpack(), where as function pack() gives the same result for signed and unsigned format codes.

Also note that PHP internally stores integer values as signed values of a machine dependent size. If you give it an unsigned integer value too large to be stored that way it is converted to a float which often yields an undesired result.

Anterior | Principal | Próxima
ignore_user_abort | Acima | show_source


show_source

show_source -- Apelido para highlight_file()

Descrição

Esta função é um apelido para highlight_file()

Anterior | Principal | Próxima
pack | Acima | sleep


sleep

(PHP 3, PHP 4 , PHP 5)

sleep -- Atrasa a execução do script

Descrição

void sleep ( int seconds)

A função sleep() atrasa a execução do programa de acordo com a quantidade de segundos dados no parâmetro seconds.

Exemplo 1. Exemplo sleep()

<?php
// Hora atual
echo date('h:i:s') . "\n";

// Dorme por 10 segundos
sleep(10);

// Acorde!
echo date('h:i:s') . "\n";
?>

Este exemplo irá mostrar(depois de 10 segundos)

05:31:23
05:31:33

Veja também usleep() e set_time_limit()

Anterior | Principal | Próxima
show_source | Acima | uniqid


uniqid

(PHP 3, PHP 4 , PHP 5)

uniqid -- Gera um ID unico

Descrição

string uniqid ( string prefix [, bool lcg])

uniqid() retorna um identificador unico prefixado baseado no tempo atual em milionésimos de segundo. O Prefixo pode ser usado se você gera identificadores em vários servidores simultaneamente pode acontecer de gerar o identificador no mesmo milionésimo de segundo. Prefix pode ter até 114 caracteres.

Se o parâmetro lcg, que é opcional, for TRUE, uniqid() irá adicionar a entropia "LCG combinada" ao final do valor retornado, o que deve fazer o resultado mais unico.

Com o parâmetro prefix vazio, a string retornada terá 13 caracteres. Se o parâmetro lcg for TRUE, terá 23 caracteres.

Nota: O parâmetro lcg somente esta disponivel no PHP 4 e PHP 3.0.13 e posterior.

Se você precisa um identificador unico e pretende dar o seu identificador via rede(ex. cookies de seção), é recomendado que você use algo como

<?php
// sem prefixo
$token = md5(uniqid(""));

// melhor, dificil de adivinhar
$better_token = md5(uniqid(rand(), true));
?>

Isto irá criar um identificador de 32 caracteres(a 128 bit hex number) que é extremamente dificil de prever.

Anterior | Principal | Próxima
sleep | Acima | unpack


unpack

(PHP 3, PHP 4 , PHP 5)

unpack -- Unpack data from binary string

Description

array unpack ( string format, string data)

unpack() from binary string into array according to format. Returns array containing unpacked elements of binary string.

unpack() works slightly different from Perl as the unpacked data is stored in an associative array. To accomplish this you have to name the different format codes and separate them by a slash /.

Exemplo 1. unpack() example

<?php
$array = unpack("c2chars/nint", $binarydata);
?>

The resulting array will contain the entries "chars1", "chars2" and "int".

Cuidado

Note that PHP internally stores integral values as signed. If you unpack a large unsigned long and it is of the same size as PHP internally stored values the result will be a negative number even though unsigned unpacking was specified.

See also pack() for an explanation of the format codes.

Anterior | Principal | Próxima
uniqid | Acima | usleep


usleep

(PHP 3, PHP 4 , PHP 5)

usleep -- Atrasa a execução em milionésimos de segundo

Descrição

void usleep ( int micro_seconds)

A função usleep() atrasa a execução do programa para o número dado no parâmetro micro_seconds em milionésimos de segundo.

Nota: Esta função não funciona em sistemas Windows.

Veja também sleep() e set_time_limit().

Anterior | Principal | Próxima
unpack | Acima | mnoGoSearch Functions


mnoGoSearch Functions

Manual do PHP
Anterior Próxima

LXII. mnoGoSearch Functions

Introdução

These functions allow you to access the mnoGoSearch (former UdmSearch) free search engine. mnoGoSearch is a full-featured search engine software for intranet and internet servers, distributed under the GNU license. mnoGoSearch has a number of unique features, which makes it appropriate for a wide range of applications from search within your site to a specialized search system such as cooking recipes or newspaper search, FTP archive search, news articles search, etc. It offers full-text indexing and searching for HTML, PDF, and text documents. mnoGoSearch consists of two parts. The first is an indexing mechanism (indexer). The purpose of the indexer is to walk through HTTP, FTP, NEWS servers or local files, recursively grabbing all the documents and storing meta-data about that documents in a SQL database in a smart and effective manner. After every document is referenced by its corresponding URL, meta-data is collected by the indexer for later use in a search process. The search is performed via Web interface. C, CGI, PHP and Perl search front ends are included.

More information about mnoGoSearch can be found at http://www.mnogosearch.ru/.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Download mnoGosearch from http://www.mnogosearch.ru/ and install it on your system. You need at least version 3.1.10 of mnoGoSearch installed to use these functions.

Instalação

In order to have these functions available, you must compile PHP with mnoGosearch support by using the --with-mnogosearchoption. If you use this option without specifying the path to mnoGosearch, PHP will look for mnoGosearch under /usr/local/mnogosearch path by default. If you installed mnoGosearch at a different location you should specify it: --with-mnogosearch=DIR.

Nota: PHP contains built-in MySQL access library, which can be used to access MySQL. It is known that mnoGoSearch is not compatible with this built-in library and can work only with generic MySQL libraries. Thus, if you use mnoGoSearch with MySQL, during PHP configuration you have to indicate the directory of your MySQL installation, that was used during mnoGoSearch configuration, i.e. for example: --with-mnogosearch --with-mysql=/usr.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

UDM_FIELD_URLID (integer)

UDM_FIELD_URL (integer)

UDM_FIELD_CONTENT (integer)

UDM_FIELD_TITLE (integer)

UDM_FIELD_KEYWORDS (integer)

UDM_FIELD_DESC (integer)

UDM_FIELD_DESCRIPTION (integer)

UDM_FIELD_TEXT (integer)

UDM_FIELD_SIZE (integer)

UDM_FIELD_RATING (integer)

UDM_FIELD_SCORE (integer)

UDM_FIELD_MODIFIED (integer)

UDM_FIELD_ORDER (integer)

UDM_FIELD_CRC (integer)

UDM_FIELD_CATEGORY (integer)

UDM_FIELD_LANG (integer)

UDM_FIELD_CHARSET (integer)

UDM_PARAM_PAGE_SIZE (integer)

UDM_PARAM_PAGE_NUM (integer)

UDM_PARAM_SEARCH_MODE (integer)

UDM_PARAM_CACHE_MODE (integer)

UDM_PARAM_TRACK_MODE (integer)

UDM_PARAM_PHRASE_MODE (integer)

UDM_PARAM_CHARSET (integer)

UDM_PARAM_LOCAL_CHARSET (integer)

UDM_PARAM_BROWSER_CHARSET (integer)

UDM_PARAM_STOPTABLE (integer)

UDM_PARAM_STOP_TABLE (integer)

UDM_PARAM_STOPFILE (integer)

UDM_PARAM_STOP_FILE (integer)

UDM_PARAM_WEIGHT_FACTOR (integer)

UDM_PARAM_WORD_MATCH (integer)

UDM_PARAM_MAX_WORD_LEN (integer)

UDM_PARAM_MAX_WORDLEN (integer)

UDM_PARAM_MIN_WORD_LEN (integer)

UDM_PARAM_MIN_WORDLEN (integer)

UDM_PARAM_ISPELL_PREFIXES (integer)

UDM_PARAM_ISPELL_PREFIX (integer)

UDM_PARAM_PREFIXES (integer)

UDM_PARAM_PREFIX (integer)

UDM_PARAM_CROSS_WORDS (integer)

UDM_PARAM_CROSSWORDS (integer)

UDM_PARAM_VARDIR (integer)

UDM_PARAM_DATADIR (integer)

UDM_PARAM_HLBEG (integer)

UDM_PARAM_HLEND (integer)

UDM_PARAM_SYNONYM (integer)

UDM_PARAM_SEARCHD (integer)

UDM_PARAM_QSTRING (integer)

UDM_PARAM_REMOTE_ADDR (integer)

UDM_LIMIT_CAT (integer)

UDM_LIMIT_URL (integer)

UDM_LIMIT_TAG (integer)

UDM_LIMIT_LANG (integer)

UDM_LIMIT_DATE (integer)

UDM_PARAM_FOUND (integer)

UDM_PARAM_NUM_ROWS (integer)

UDM_PARAM_WORDINFO (integer)

UDM_PARAM_WORD_INFO (integer)

UDM_PARAM_SEARCHTIME (integer)

UDM_PARAM_SEARCH_TIME (integer)

UDM_PARAM_FIRST_DOC (integer)

UDM_PARAM_LAST_DOC (integer)

UDM_MODE_ALL (integer)

UDM_MODE_ANY (integer)

UDM_MODE_BOOL (integer)

UDM_MODE_PHRASE (integer)

UDM_CACHE_ENABLED (integer)

UDM_CACHE_DISABLED (integer)

UDM_TRACK_ENABLED (integer)

UDM_TRACK_DISABLED (integer)

UDM_PHRASE_ENABLED (integer)

UDM_PHRASE_DISABLED (integer)

UDM_CROSS_WORDS_ENABLED (integer)

UDM_CROSSWORDS_ENABLED (integer)

UDM_CROSS_WORDS_DISABLED (integer)

UDM_CROSSWORDS_DISABLED (integer)

UDM_PREFIXES_ENABLED (integer)

UDM_PREFIX_ENABLED (integer)

UDM_ISPELL_PREFIXES_ENABLED (integer)

UDM_ISPELL_PREFIX_ENABLED (integer)

UDM_PREFIXES_DISABLED (integer)

UDM_PREFIX_DISABLED (integer)

UDM_ISPELL_PREFIXES_DISABLED (integer)

UDM_ISPELL_PREFIX_DISABLED (integer)

UDM_ISPELL_TYPE_AFFIX (integer)

UDM_ISPELL_TYPE_SPELL (integer)

UDM_ISPELL_TYPE_DB (integer)

UDM_ISPELL_TYPE_SERVER (integer)

UDM_MATCH_WORD (integer)

UDM_MATCH_BEGIN (integer)

UDM_MATCH_SUBSTR (integer)

UDM_MATCH_END (integer)

Índice
udm_add_search_limit -- Add various search limits
udm_alloc_agent_array -- Allocate mnoGoSearch session
udm_alloc_agent -- Allocate mnoGoSearch session
udm_api_version -- Get mnoGoSearch API version.
udm_cat_list -- Get all the categories on the same level with the current one.
udm_cat_path -- Get the path to the current category.
udm_check_charset -- Check if the given charset is known to mnogosearch
udm_check_stored -- Check connection to stored
udm_clear_search_limits -- Clear all mnoGoSearch search restrictions
udm_close_stored -- Close connection to stored
udm_crc32 -- Return CRC32 checksum of given string
udm_errno -- Get mnoGoSearch error number
udm_error -- Get mnoGoSearch error message
udm_find -- Perform search
udm_free_agent -- Free mnoGoSearch session
udm_free_ispell_data -- Free memory allocated for ispell data
udm_free_res -- Free mnoGoSearch result
udm_get_doc_count -- Get total number of documents in database.
udm_get_res_field -- Fetch mnoGoSearch result field
udm_get_res_param -- Get mnoGoSearch result parameters
udm_hash32 -- Return Hash32 checksum of gived string
udm_load_ispell_data -- Load ispell data
udm_open_stored -- Open connection to stored
udm_set_agent_param -- Set mnoGoSearch agent session parameters

Anterior | Principal | Próxima
usleep | Acima | udm_add_search_limit


udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5)

udm_add_search_limit -- Add various search limits

Description

bool udm_add_search_limit ( resource agent, int var, string val)

udm_add_search_limit() adds search restrictions. Retorna TRUE em caso de sucesso ou FALSE em falhas.

agent - a link to Agent, received after call to udm_alloc_agent().

var - defines parameter, indicating limit.

val - defines the value of the current parameter.

Possible var values:

  • UDM_LIMIT_URL - defines document URL limitations to limit the search through subsection of the database. It supports SQL % and _ LIKE wildcards, where % matches any number of characters, even zero characters, and _ matches exactly one character. E.g. http://www.example.___/catalog may stand for http://www.example.com/catalog and http://www.example.net/catalog.

  • UDM_LIMIT_TAG - defines site TAG limitations. In indexer-conf you can assign specific TAGs to various sites and parts of a site. Tags in mnoGoSearch 3.1.x are lines, that may contain metasymbols % and _. Metasymbols allow searching among groups of tags. E.g. there are links with tags ABCD and ABCE, and search restriction is by ABC_ - the search will be made among both of the tags.

  • UDM_LIMIT_LANG - defines document language limitations.

  • UDM_LIMIT_CAT - defines document category limitations. Categories are similar to tag feature, but nested. So you can have one category inside another and so on. You have to use two characters for each level. Use a hex number going from 0-F or a 36 base number going from 0-Z. Therefore a top-level category like 'Auto' would be 01. If it has a subcategory like 'Ford', then it would be 01 (the parent category) and then 'Ford' which we will give 01. Put those together and you get 0101. If 'Auto' had another subcategory named 'VW', then it's id would be 01 because it belongs to the 'Ford' category and then 02 because it's the next category. So it's id would be 0102. If VW had a sub category called 'Engine' then it's id would start at 01 again and it would get the 'VW' id 02 and 'Auto' id of 01, making it 010201. If you want to search for sites under that category then you pass it cat=010201 in the URL.

  • UDM_LIMIT_DATE - defines limitation by date the document was modified.

    Format of parameter value: a string with first character < or >, then with no space - date in unixtime format, for example:

    Exemplo 1.

    <?php
      Udm_Add_Search_Limit($udm, UDM_LIMIT_DATE, "&lt;908012006");
?>

    If > character is used, then the search will be restricted to those documents having a modification date greater than entered, if <, then smaller.

Anterior | Principal | Próxima
mnoGoSearch Functions | Acima | udm_alloc_agent_array


udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5)

udm_alloc_agent_array -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent_array ( array databases)

udm_alloc_agent_array() will create an agent with multiple database connections. The array databases must contain one database URL per element, analog to the first parameter of udm_alloc_agent().

See also: udm_alloc_agent().

Anterior | Principal | Próxima
udm_add_search_limit | Acima | udm_alloc_agent


udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5)

udm_alloc_agent -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent ( string dbaddr [, string dbmode])

Returns a mnogosearch agent identifier on success, FALSE on failure. This function creates a session with database parameters.

dbaddr - URL-style database description, with options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format for dbaddr: DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, and ibase. Actually, it does not matter for native libraries support, but ODBC users should specify one of the supported values. If your database type is not supported, you may use unknown instead.

dbmode - You may select the SQL database mode of words storage. Possible values of dbmode are: single, multi, crc, or crc-multi. When single is specified, all words are stored in the same table. If multi is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster, but requires more tables in the database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorithm instead of words. This mode requires less disk space and it is faster comparing with "single" and "multi" modes. crc-multi uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like in "multi" mode.

Nota: dbaddr and dbmode must match those used during indexing.

Nota: In fact this function does not open a connection to the database and thus does not check the entered login and password. Establishing a connection to the database and login/password verification is done by udm_find().

Anterior | Principal | Próxima
udm_alloc_agent_array | Acima | udm_api_version


udm_api_version

(PHP 4 >= 4.0.5, PHP 5)

udm_api_version -- Get mnoGoSearch API version.

Description

int udm_api_version ( void )

udm_api_version() returns the mnoGoSearch API version number. E.g. if mnoGoSearch 3.1.10 API is used, this function will return 30110.

This function allows the user to identify which API functions are available, e.g. udm_get_doc_count() function is only available in mnoGoSearch 3.1.11 or later.

Exemplo 1. udm_api_version() example

<?php
if (udm_api_version() >= 30111) {
    echo  "Total number of URLs in database: " . udm_get_doc_count($udm) . "<br />\n";
}
?>

Anterior | Principal | Próxima
udm_alloc_agent | Acima | udm_cat_list


udm_cat_list

(PHP 4 >= 4.0.6, PHP 5)

udm_cat_list -- Get all the categories on the same level with the current one.

Description

array udm_cat_list ( resource agent, string category)

Returns an array listing all categories of the same level as the current category in the categories tree. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The function can be useful for developing categories tree browser.

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

$array[0] will contain '020300'
  $array[1] will contain 'Audi'
  $array[2] will contain '020301'
  $array[3] will contain 'BMW'
  $array[4] will contain '020302'
  $array[5] will contain 'Opel'
  ...
 etc.

Following is an example of displaying links of the current level in format:
Audi
  BMW
  Opel
  ...

Exemplo 1. udm_cat_list()example

<?php
 $cat_list_arr = udm_cat_list($udm_agent, $cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

See also udm_cat_path().

Anterior | Principal | Próxima
udm_api_version | Acima | udm_cat_path


udm_cat_path

(PHP 4 >= 4.0.6, PHP 5)

udm_cat_path -- Get the path to the current category.

Description

array udm_cat_path ( resource agent, string category)

Returns an array describing the path in the categories tree from the tree root to the current one, specified by category. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

For example, the call $array=udm_cat_path($agent, '02031D'); may return the following array:
$array[0] will contain ''
 $array[1] will contain 'Root'
 $array[2] will contain '02'
 $array[3] will contain 'Sport'
 $array[4] will contain '0203'
 $array[5] will contain 'Auto'
 $array[4] will contain '02031D'
 $array[5] will contain 'Ferrari'

Exemplo 1. Specifying path to the current category in the following format: '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

See also udm_cat_list().

Anterior | Principal | Próxima
udm_cat_list | Acima | udm_check_charset


udm_check_charset

(PHP 4 >= 4.2.0, PHP 5)

udm_check_charset -- Check if the given charset is known to mnogosearch

Description

bool udm_check_charset ( resource agent, string charset)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
udm_cat_path | Acima | udm_check_stored


udm_check_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_check_stored -- Check connection to stored

Description

int udm_check_stored ( resource agent, int link, string doc_id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
udm_check_charset | Acima | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5)

udm_clear_search_limits -- Clear all mnoGoSearch search restrictions

Description

bool udm_clear_search_limits ( resource agent)

udm_clear_search_limits() resets defined search limitations and returns TRUE.

See also udm_add_search_limit().

Anterior | Principal | Próxima
udm_check_stored | Acima | udm_close_stored


udm_close_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_close_stored -- Close connection to stored

Description

int udm_close_stored ( resource agent, int link)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
udm_clear_search_limits | Acima | udm_crc32


udm_crc32

(PHP 4 >= 4.2.0, PHP 5)

udm_crc32 -- Return CRC32 checksum of given string

Description

int udm_crc32 ( resource agent, string str)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
udm_close_stored | Acima | udm_errno


udm_errno

(PHP 4 >= 4.0.5, PHP 5)

udm_errno -- Get mnoGoSearch error number

Description

int udm_errno ( resource agent)

udm_errno() returns mnoGoSearch error number, zero if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving numeric agent error code.

Anterior | Principal | Próxima
udm_crc32 | Acima | udm_error


udm_error

(PHP 4 >= 4.0.5, PHP 5)

udm_error -- Get mnoGoSearch error message

Description

string udm_error ( resource agent)

udm_error() returns mnoGoSearch error message, empty string if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving agent error message.

Anterior | Principal | Próxima
udm_errno | Acima | udm_find


udm_find

(PHP 4 >= 4.0.5, PHP 5)

udm_find -- Perform search

Description

resource udm_find ( resource agent, string query)

Returns a result link identifier on success, or FALSE on failure.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

Anterior | Principal | Próxima
udm_error | Acima | udm_free_agent


udm_free_agent

(PHP 4 >= 4.0.5, PHP 5)

udm_free_agent -- Free mnoGoSearch session

Description

int udm_free_agent ( resource agent)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

agent - link to agent identifier, received ` after call to udm_alloc_agent().

Freeing up memory allocated for agent session.

Anterior | Principal | Próxima
udm_find | Acima | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5)

udm_free_ispell_data -- Free memory allocated for ispell data

Description

bool udm_free_ispell_data ( int agent)

udm_free_ispell_data() always returns TRUE.

agent - agent link identifier, received after call to udm_alloc_agent().

Nota: This function is supported beginning from version 3.1.12 of mnoGoSearch and it does not do anything in previous versions.

Anterior | Principal | Próxima
udm_free_agent | Acima | udm_free_res


udm_free_res

(PHP 4 >= 4.0.5, PHP 5)

udm_free_res -- Free mnoGoSearch result

Description

bool udm_free_res ( resource res)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

res - a link to result identifier, received after call to udm_find().

Freeing up memory allocated for results.

Anterior | Principal | Próxima
udm_free_ispell_data | Acima | udm_get_doc_count


udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5)

udm_get_doc_count -- Get total number of documents in database.

Description

int udm_get_doc_count ( resource agent)

udm_get_doc_count() returns the number of documents in the database.

agent - link to agent identifier, received after call to udm_alloc_agent().

Nota: This function is supported only in mnoGoSearch 3.1.11 or later.

Anterior | Principal | Próxima
udm_free_res | Acima | udm_get_res_field


udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5)

udm_get_res_field -- Fetch mnoGoSearch result field

Description

string udm_get_res_field ( resource res, int row, int field)

udm_get_res_field() returns result field value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS-1.

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field

  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).

  • UDM_FIELD_CATEGORY - document category field. Use udm_cat_path() to get full path to current category from the categories tree root. (This parameter is available only in PHP 4.0.6 or later).

  • UDM_FIELD_TITLE - document title field.

  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).

  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).

  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).

  • UDM_FIELD_SIZE - document size.

  • UDM_FIELD_URLID - unique URL ID of the link.

  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).

  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.

  • UDM_FIELD_ORDER - the number of the current document in set of found documents.

  • UDM_FIELD_CRC - document CRC.

Anterior | Principal | Próxima
udm_get_doc_count | Acima | udm_get_res_param


udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5)

udm_get_res_param -- Get mnoGoSearch result parameters

Description

string udm_get_res_param ( resource res, int param)

udm_get_res_param() returns result parameter value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.

  • UDM_PARAM_FOUND - total number of results matching the query.

  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"

  • UDM_PARAM_SEARCHTIME - search time in seconds.

  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.

  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

Anterior | Principal | Próxima
udm_get_res_field | Acima | udm_hash32


udm_hash32

(PHP 4 >= 4.3.3, PHP 5)

udm_hash32 -- Return Hash32 checksum of gived string

Description

int udm_hash32 ( resource agent, string str)

udm_hash32() will take a string str and return a quite unique 32-bit hash number from it. Requires an allocated agent.

See also: udm_alloc_agent().

Anterior | Principal | Próxima
udm_get_res_param | Acima | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5)

udm_load_ispell_data -- Load ispell data

Description

bool udm_load_ispell_data ( resource agent, int var, string val1, string val2, int flag)

udm_load_ispell_data() loads ispell data. Retorna TRUE em caso de sucesso ou FALSE em falhas.

agent - agent link identifier, received after call to udm_alloc_agent().

var - parameter, indicating the source for ispell data. May have the following values:

After using this function to free memory allocated for ispell data, please use udm_free_ispell_data(), even if you use UDM_ISPELL_TYPE_SERVER mode.

The fastest mode is UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT is slower and UDM_ISPELL_TYPE_DB is the slowest. The above pattern is TRUE for mnoGoSearch 3.1.10 - 3.1.11. It is planned to speed up DB mode in future versions and it is going to be faster than TEXT mode.

  • UDM_ISPELL_TYPE_DB - indicates that ispell data should be loaded from SQL. In this case, parameters val1 and val2 are ignored and should be left blank. flag should be equal to 1.

    Nota: flag indicates that after loading ispell data from defined source it should be sorted (it is necessary for correct functioning of ispell). In case of loading ispell data from files there may be several calls to udm_load_ispell_data(), and there is no sense to sort data after every call, but only after the last one. Since in db mode all the data is loaded by one call, this parameter should have the value 1. In this mode in case of error, e.g. if ispell tables are absent, the function will return FALSE and code and error message will be accessible through udm_error() and udm_errno().

    Exemplo 1. udm_load_ispell_data()example

    <?php
if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
  printf("Error #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>

  • UDM_ISPELL_TYPE_AFFIX - indicates that ispell data should be loaded from file and initiates loading affixes file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Exemplo 2. udm_load_ispell_data() example

    <?php
if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
    (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
    (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
    (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
    exit;
}
?>

    Nota: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SPELL - indicates that ispell data should be loaded from file and initiates loading of ispell dictionary file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    <?php
     if ((! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
        (! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
        (! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
        (! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
      exit;
      }
?>

    Nota: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SERVER - enables spell server support. val1 parameter indicates address of the host running spell server. val2 ` is not used yet, but in future releases it is going to indicate number of port used by spell server. flag parameter in this case is not needed since ispell data is stored on spellserver already sorted.

    Spelld server reads spell-data from a separate configuration file (/usr/local/mnogosearch/etc/spelld.conf by default), sorts it and stores in memory. With clients server communicates in two ways: to indexer all the data is transferred (so that indexer starts faster), from search.cgi server receives word to normalize and then passes over to client (search.cgi) list of normalized word forms. This allows fastest, compared to db and text modes processing of search queries (by omitting loading and sorting all the spell data).

    udm_load_ispell_data() function in UDM_ISPELL_TYPE_SERVER mode does not actually load ispell data, but only defines server address. In fact, server is automatically used by udm_find() function when performing search. In case of errors, e.g. if spellserver is not running or invalid host indicated, there are no messages returned and ispell conversion does not work.

    Nota: This function is available in mnoGoSearch 3.1.12 or later.

    Example:

    <?php
if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
    echo "Error loading ispell data from server<br />\n";
    exit;
}
?>

Anterior | Principal | Próxima
udm_hash32 | Acima | udm_open_stored


udm_open_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_open_stored -- Open connection to stored

Description

int udm_open_stored ( resource agent, string storedaddr)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
udm_load_ispell_data | Acima | udm_set_agent_param


udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5)

udm_set_agent_param -- Set mnoGoSearch agent session parameters

Description

bool udm_set_agent_param ( resource agent, int var, string val)

Retorna TRUE em caso de sucesso ou FALSE em falhas. Defines mnoGoSearch session parameters.

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).

  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.

  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.

  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current Unix timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well.

    Examples of phrase search:

    "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase

  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the PHP script is executed.)

  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.

  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:

    URLWeight 1
    BodyWeight 2
    TitleWeight 4
    KeywordWeight 8
    DescWeight 16

    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight.

    This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:

    E is a factor for weight 1 (URL Weight bit)
    D is a factor for weight 2 (BodyWeight bit)
    C is a factor for weight 4 (TitleWeight bit)
    B is a factor for weight 8 (KeywordWeight bit)
    A is a factor for weight 16 (DescWeight bit)

    Examples:

    UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only.

    UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only.

    UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Description but not through URL and Body.

    UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:

    Description with factor 15 (F hex)
    Keywords with factor 9
    Title with factor 4
    Body with factor 2
    URL with factor 1

    If UDM_PARAM_WEIGHT_FACTOR variable is omitted, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.

  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values:

    UDM_MATCH_BEGIN - word beginning match;

    UDM_MATCH_END - word ending match;

    UDM_MATCH_WORD - whole word match;

    UDM_MATCH_SUBSTR - word substring match.

  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.

  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().

  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED.

    The crosswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.

    Nota: Crosswords are supported only in mnoGoSearch 3.1.11 or later.

  • UDM_PARAM_VARDIR - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values. The parameter is available in PHP 4.1.0 or later.

Anterior | Principal | Próxima
udm_open_stored | Acima | mSQL


mSQL

Manual do PHP
Anterior Próxima

LXIII. mSQL

Introdução

Estas funções permitem acessar servidores de banco de dados mSQL. Maiores informações sobre o mSQL podem ser encontradas em http://www.hughes.com.au/.

Requisitos

Instalação

Para ter estas funções disponíveis, você deve compilar o PHP com suporte ao msql usando a opção --with-msql[=DIR]. DIR é o diretório base da instalação do msql, cujo padrão é /usr/local/Hughes.

Nota para os usuários de Note to Win32 Users: Para ativar este módulo no ambiente Windows, você deve copiar msql.dll apartir da pasta DLL do pacote PHP/Win32 para a pasta SYSTEM32 no seu computador com windows. (Ex: C:\WINNT\SYSTEM32 ou C:\WINDOWS\SYSTEM32)

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do mSQL

Nome | Padrão | Modificável
msql.allow_persistent | "On" | PHP_INI_SYSTEM
msql.max_persistent | "-1" | PHP_INI_SYSTEM
msql.max_links | "-1" | PHP_INI_SYSTEM
Para maiores detalhes e definições das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

msql.allow_persistent boolean

Quando permitir conexões persistentes mSQL.

msql.max_persistent integer

O número máximo de conexões persistentes mSQL por processo.

msql.max_links integer

O número máximo de conexões mSQL por processo, incluindo as conexões persistentes.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

MSQL_ASSOC (integer)

MSQL_NUM (integer)

MSQL_BOTH (integer)

Índice
msql_affected_rows -- Retorna o número de registros afetados pela última consulta
msql_close -- Fecha uma conexão mSQL
msql_connect -- Abre uma conexão mSQL
msql_create_db -- Cria um banco de dados mSQL
msql_createdb -- Cria um banco de dados mSQL
msql_data_seek -- Move o ponteiro interno dos registros
msql -- Send mSQL query
msql_dbname -- Retorna o nome do banco de dados mSQL atual
msql_drop_db -- Exclui um banco de dados mSQL
msql_error -- Retorna a mensagem de erro da última chamada a msql
msql_fetch_array -- Obtém um registro como uma matriz
msql_fetch_field -- Retorna informação sobre um campo
msql_fetch_object -- Obtem uma linha como um objeto
msql_fetch_row -- Retorna uma linha como uma matriz numerada
msql_field_flags -- Get field flags
msql_field_len -- Get field length
msql_field_name -- Get field name
msql_field_seek -- Estabelece o índice do campo
msql_field_table -- Get table name for field
msql_field_type -- Get field type
msql_fieldflags -- Retorna informações do campo
msql_fieldlen -- Retorna o tamanho de um campo
msql_fieldname -- Retorna o nome de um campo
msql_fieldtable -- Obtem o nome da tabela de um campo
msql_fieldtype -- Retorna o tipo do campo
msql_free_result -- Libera o resultado de uma consulta da memória
msql_list_dbs -- Lista os banco de dados mSQL no servidor
msql_list_fields -- Lista os campos de uma tabela
msql_list_tables -- Lista as tabelas em um banco de dados mSQL
msql_num_fields -- Retorna o número de campos em um resultado
msql_num_rows -- Retorna o número de registros em um resultado
msql_numfields -- Retorna o número de campos em um resultado
msql_numrows -- Retorna o número de registros em um resultado
msql_pconnect -- Abre uma conexão mSQL persistente
msql_query -- Envia uma consulta
msql_regcase -- Faz uma expressão recular para pesquisa sem diferenciar maiúsculas e minúsculas
msql_result -- Retorna dados do resultado
msql_select_db -- Seleciona um banco de dados mSQL
msql_tablename -- Retorna o nome de uma tabela
msql -- Realiza um consulta no banco de dados mSQL

Anterior | Principal | Próxima
udm_set_agent_param | Acima | msql_affected_rows


msql_affected_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

msql_affected_rows -- Retorna o número de registros afetados pela última consulta

Descrição

int msql_affected_rows ( int query_identifier)

Retorna o número de registros afetados("tocados") por uma consulta especifica (ex. o número de registros retornados por um SELECT, o número de registros modificados por um UPDATE, ou o número de registros excluídos por um DELETE).

Veja também: msql_query().

Anterior | Principal | Próxima
mSQL | Acima | msql_close


msql_close

(PHP 3, PHP 4 , PHP 5)

msql_close -- Fecha uma conexão mSQL

Descrição

int msql_close ( int link_identifier)

Retorna TRUE em caso de sucesso, FALSE em caso de erro.

msql_close() fecha a conexão com o banco de dados mSQL que esta associado a conexão indicada. Se o indentificador de conexão não é especificado, a última conexão aberta é assumida.

Note que isto normalmente não é necesssário, já que conexões não persistentes são fechadas automaticamente ao final do script.

msql_close() não irá fechar conexões persistentes geradas por msql_pconnect().

Veja também: msql_connect() e msql_pconnect().

Anterior | Principal | Próxima
msql_affected_rows | Acima | msql_connect


msql_connect

(PHP 3, PHP 4 , PHP 5)

msql_connect -- Abre uma conexão mSQL

Descrição

int msql_connect ( [string hostname [, string server [, string username [, string password]]]])

msql_connect() estabelece uma conexão com um servidor mSQL. O parâmetro server pode incluir também um número de porta. Ex "hostname:port". O padrão é 'localhost'.

Retorna um identificador de conexão com o mSQL em caso de sucesso, FALSE em caso de erro.

No caso de se fazer uma segunda chamada a msql_connect() com os mesmos argumentos, não é criada uma nova conexão, mas ao invés, a conexão que já esta aberta é retornada.

A conexão com o servidor será fechada tão logo quanto termine a execução do script, a menos que seja fechada antes utilizando msql_close().

Veja também msql_pconnect() e msql_close().

Anterior | Principal | Próxima
msql_close | Acima | msql_create_db


msql_create_db

(PHP 3, PHP 4 , PHP 5)

msql_create_db -- Cria um banco de dados mSQL

Descrição

int msql_create_db ( string database_name [, int link_identifier])

msql_create_db() tenta criar um novo banco de dados no servidor usando a conexão indicada.

Veja também msql_drop_db().

Anterior | Principal | Próxima
msql_connect | Acima | msql_createdb


msql_createdb

(PHP 3, PHP 4 , PHP 5)

msql_createdb -- Cria um banco de dados mSQL

Descrição

int msql_createdb ( string database_name [, int link_identifier])

Esta função é identica a msql_create_db().

Anterior | Principal | Próxima
msql_create_db | Acima | msql_data_seek


msql_data_seek

(PHP 3, PHP 4 , PHP 5)

msql_data_seek -- Move o ponteiro interno dos registros

Descrição

int msql_data_seek ( int query_identifier, int row_number)

msql_data_seek() move o ponteiro interno de registro para o conjunto de resultados identificado por query_identifier para o número do registro indicado. A próxima chamada a msql_fetch_row() irá retornar este registro.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também msql_fetch_row().

Anterior | Principal | Próxima
msql_createdb | Acima | msql


msql

(PHP 3, PHP 4 , PHP 5)

msql -- Send mSQL query

Description

resouce msql_db_query ( string database, string query [, resource link_identifier])

Returns a positive mSQL query identifier to the query result, or FALSE on error.

msql_db_query() selects a database and executes a query on it. If the optional link_identifier is not specified, the function will try to find an open link to the mSQL server; if no such link is found it will try to create one as if msql_connect() was called with no arguments.

See also msql_connect().

Anterior | Principal | Próxima
msql_data_seek | Acima | msql_dbname


msql_dbname

(PHP 3, PHP 4 , PHP 5)

msql_dbname -- Retorna o nome do banco de dados mSQL atual

Descrição

string msql_dbname ( int query_identifier, int i)

msql_dbname() retorna o nome do banco de dados guardado na posição i do conjunto de resultados retornado pela função msql_listdbs(). A função msql_numrows() pode ser usada para determinar quantos nomes de banco de dados estão disponíveis.

Anterior | Principal | Próxima
msql | Acima | msql_drop_db


msql_drop_db

(PHP 3, PHP 4 , PHP 5)

msql_drop_db -- Exclui um banco de dados mSQL

Descrição

int msql_drop_db ( string database_name, int link_identifier)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

msql_drop_db() tenta remover por inteiro um banco de dados do servidor indicado pela conexão especificada.

Veja também: msql_create_db().

Anterior | Principal | Próxima
msql_dbname | Acima | msql_error


msql_error

(PHP 3, PHP 4 , PHP 5)

msql_error -- Retorna a mensagem de erro da última chamada a msql

Descrição

string msql_error ( [int link_identifier])

Erros vindos do banco de dados mSQL não enviam avisos. Ao invés, utilize esta função para obter as mensagens de erro.

Anterior | Principal | Próxima
msql_drop_db | Acima | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4 , PHP 5)

msql_fetch_array -- Obtém um registro como uma matriz

Descrição

int msql_fetch_array ( int query_identifier [, int result_type])

Retorna uma matriz que corresponde ao registro obtido, ou FALSE se não houverem mais registros.

msql_fetch_array() é uma versão extendida de msql_fetch_row(). Além de guardar os dados em índices numéricos na matriz do resultado, também guarda os dados em uma matriz associativa, usando os nomes dos campos como chave.

O segundo argumento, que é opcional, result_type em msql_fetch_array() é uma constante e pode ter os seguintes valores: MSQL_ASSOC, MSQL_NUM, e MSQL_BOTH.

Seja cuidadoso se você esta obtento resultados de uma consulta que possa retornar um registro com apenas um campo que tenha o valor de 0 (ou uma string vazia, ou NULL).

Uma coisa importante para notar é que usar msql_fetch_array() NÃO é significantemente mais lendo do que msql_fetch_row(), enquanto provê um valor melhor de manipular.

Veja também msql_fetch_row().

Anterior | Principal | Próxima
msql_error | Acima | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4 , PHP 5)

msql_fetch_field -- Retorna informação sobre um campo

Descrição

object msql_fetch_field ( int query_identifier, int field_offset)

Retorna um objeto contendo informações do campo

msql_fetch_field() pode ser usado para obter informações sobre os campos no resultado de uma consulta. se o número do campo não for indicado, o próximo campo que não tenha sido obtido por msql_fetch_field() será o campo retornado.

As propriedades do objeto são:

  • name - nome da coluna

  • table - nome da tabela a qual esta coluna pertence

  • not_null - 1 se a coluna não puder ser NULL

  • primary_key - 1 se a coluna é a chave primária

  • unique - 1 se a coluna é chave única

  • type - o tipo da coluna

Veja também msql_field_seek().

Anterior | Principal | Próxima
msql_fetch_array | Acima | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4 , PHP 5)

msql_fetch_object -- Obtem uma linha como um objeto

Descrição

int msql_fetch_object ( int query_identifier [, int result_type])

Retorna um objeto cuja as propriedades correspondem a linha obtida, ou FALSE se não houverem mais linhas.

msql_fetch_object() é similar a msql_fetch_array(), com uma diferença - um objeto é retorado em vez de uma matriz, isto indica que você somente pode acessar os dados pelos nomes dos campos e não por seus índices(números não são nomes de propriedade válidos).

O segundo argumento, que é opcional, result_type na função msql_fetch_array() é uma constant e pode ter os seguintes valores: MSQL_ASSOC, MSQL_NUM, and MSQL_BOTH.

Em termos de velocidade esta função é identica a msql_fetch_array(), e quase tão rapida quanto msql_fetch_row() (a diferença é insignificante).

Veja também msql_fetch_array() e msql_fetch_row().

Anterior | Principal | Próxima
msql_fetch_field | Acima | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4 , PHP 5)

msql_fetch_row -- Retorna uma linha como uma matriz numerada

Descrição

array msql_fetch_row ( int query_identifier)

Retorna uma matriz que corresponde a linha obtida, ou FALSE se não houverem mais linhas.

msql_fetch_row() obtem uma linha de dados apartir do resultado de uma query especificado. A linha é retornada como uma matriz. Cada coluna é um índice da matriz, começando em 0.

A próxima chamada a msql_fetch_row() deve retornar a próxima linha do conjunto de resultados, ou FALSE se não houverem mais linhas.

Veja também msql_fetch_array(),
msql_fetch_object(),
msql_data_seek() e
msql_result().

Anterior | Principal | Próxima
msql_fetch_object | Acima | msql_field_flags


msql_field_flags

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_flags -- Get field flags

Description

string msql_field_flags ( resource query_identifier, int field_offset)

msql_field_flags() returns the field flags of the specified field. Currently this is either, "not NULL", "primary key", a combination of the two or "" (an empty string).

Anterior | Principal | Próxima
msql_fetch_row | Acima | msql_field_len


msql_field_len

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_len -- Get field length

Description

int msql_field_len ( resource query_identifier, int field_offset)

msql_field_len() returns the length of the specified field or FALSE on error.

Anterior | Principal | Próxima
msql_field_flags | Acima | msql_field_name


msql_field_name

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_name -- Get field name

Description

string msql_field_name ( resource query_identifier, int field)

msql_field_name() returns the name of the specified field from the result resource query_identifier. msql_field_name($result, 2); will return the name of the second field in the result set associated with the result identifier.

Anterior | Principal | Próxima
msql_field_len | Acima | msql_field_seek


msql_field_seek

(PHP 3, PHP 4 , PHP 5)

msql_field_seek -- Estabelece o índice do campo

Descrição

int msql_field_seek ( int query_identifier, int field_offset)

Move o índice de campos para o campo especificado. Na próxima chamada a msql_fetch_field() que não inclui um índice de campo, este campo será retornado.

Veja também: msql_fetch_field().

Anterior | Principal | Próxima
msql_field_name | Acima | msql_field_table


msql_field_table

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_table -- Get table name for field

Description

int msql_field_table ( int query_identifier, int field)

Returns the name of the table field was fetched from.

This function returns FALSE on failure.

Anterior | Principal | Próxima
msql_field_seek | Acima | msql_field_type


msql_field_type

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_type -- Get field type

Description

string msql_field_type ( resource query_identifier, int field_offset)

msql_field_type() is similar to the msql_field_name() function. The arguments are identical, but the field type is returned. This will be one of "int", "char" or "real".

This function returns FALSE on failure.

Anterior | Principal | Próxima
msql_field_table | Acima | msql_fieldflags


msql_fieldflags

(PHP 3, PHP 4 , PHP 5)

msql_fieldflags -- Retorna informações do campo

Descrição

string msql_fieldflags ( int query_identifier, int i)

msql_fieldflags() retorna "flags" do campo especificado. Atualmente, pode ser, "not NULL", "primary key", uma combinação das duas ou "" (uma string vazia).

Anterior | Principal | Próxima
msql_field_type | Acima | msql_fieldlen


msql_fieldlen

(PHP 3, PHP 4 , PHP 5)

msql_fieldlen -- Retorna o tamanho de um campo

Descrição

int msql_fieldlen ( int query_identifier, int i)

msql_fieldlen() retorna o tamanho do campo especificado.

Anterior | Principal | Próxima
msql_fieldflags | Acima | msql_fieldname


msql_fieldname

(PHP 3, PHP 4 , PHP 5)

msql_fieldname -- Retorna o nome de um campo

Descrição

string msql_fieldname ( int query_identifier, int field)

msql_fieldname() retorna o nome do campo especificado. query_identifier é o identificador da consulta e field é o índice do campo. msql_fieldname($result, 2); irá retornar o nome do segundo campo do identificador de consulta indicado.

Anterior | Principal | Próxima
msql_fieldlen | Acima | msql_fieldtable


msql_fieldtable

(PHP 3, PHP 4 , PHP 5)

msql_fieldtable -- Obtem o nome da tabela de um campo

Descrição

int msql_fieldtable ( int query_identifier, int campo)

Retorna o nome da tabela apartir da qual o campo foi obtido.

Anterior | Principal | Próxima
msql_fieldname | Acima | msql_fieldtype


msql_fieldtype

(PHP 3, PHP 4 , PHP 5)

msql_fieldtype -- Retorna o tipo do campo

Descrição

string msql_fieldtype ( int query_identifier, int i)

msql_fieldtype() é similar a função msql_fieldname(). Os argumentos são identicos, mas o tipo do campo é retornado. Este será um dos seguintes: "int", "char" or "real".

Anterior | Principal | Próxima
msql_fieldtable | Acima | msql_free_result


msql_free_result

(PHP 3, PHP 4 , PHP 5)

msql_free_result -- Libera o resultado de uma consulta da memória

Descrição

int msql_free_result ( int query_identifier)

msql_free_result() libera a memória usada com query_identifier. Quando o PHP completa uma requisição, a memória é liberada automaticamente, assim você só precisa utilizar esta função quendo você quer ter certeza de que você não utiliza muita memória durante a execução do script.

Anterior | Principal | Próxima
msql_fieldtype | Acima | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4 , PHP 5)

msql_list_dbs -- Lista os banco de dados mSQL no servidor

Descrição

int msql_list_dbs ( void )

msql_list_dbs() irá retornar um ponteiro de resultado contendo os banco de dados disponíveis no servidor atual. Use a função msql_dbname() para obter o nome de cada banco de dados.

Anterior | Principal | Próxima
msql_free_result | Acima | msql_list_fields


msql_list_fields

(PHP 3, PHP 4 , PHP 5)

msql_list_fields -- Lista os campos de uma tabela

Descrição

int msql_list_fields ( string database, string tablename)

msql_list_fields() obtem informações sobre a tabela indicada. Os argumentos são o nome do banco de dados e o nome da tabela. Retorna um ponteiro de resultado que pode ser usado com as funções msql_fieldflags(), msql_fieldlen(), msql_fieldname(), e msql_fieldtype(). Um identificador de consulta é um inteiro positivo. Esta função retorna -1 se aconter um erro. Uma string descrevendo o erro será colocada em $phperrmsg, e a menos que a função seja chamada como @msql_list_fields() então esta string de erro também será mostrada.

Veja também msql_error().

Anterior | Principal | Próxima
msql_list_dbs | Acima | msql_list_tables


msql_list_tables

(PHP 3, PHP 4 , PHP 5)

msql_list_tables -- Lista as tabelas em um banco de dados mSQL

Descrição

int msql_list_tables ( string database)

msql_list_tables() leva como argumento o nome do banco de dados e retorna um ponteiro de resultado parecido com a função msql(). A função msql_tablename() deve ser usada para obter os nomes das tabelas deste ponteiro de resultado.

Anterior | Principal | Próxima
msql_list_fields | Acima | msql_num_fields


msql_num_fields

(PHP 3, PHP 4 , PHP 5)

msql_num_fields -- Retorna o número de campos em um resultado

Descrição

int msql_num_fields ( int query_identifier)

msql_num_fields() retorna o número de campos em um conjunto de resultados.

Veja também msql(),
msql_query(),
msql_fetch_field() e
msql_num_rows().

Anterior | Principal | Próxima
msql_list_tables | Acima | msql_num_rows


msql_num_rows

(PHP 3, PHP 4 , PHP 5)

msql_num_rows -- Retorna o número de registros em um resultado

Descrição

int msql_num_rows ( resource query_identifier)

msql_num_rows() retorna o número de registros em um conjunto de resultados.

Veja também msql(),
msql_query() e
msql_fetch_row().

Anterior | Principal | Próxima
msql_num_fields | Acima | msql_numfields


msql_numfields

(PHP 3, PHP 4 , PHP 5)

msql_numfields -- Retorna o número de campos em um resultado

Descrição

int msql_numfields ( int query_identifier)

Identica a msql_num_fields().

Anterior | Principal | Próxima
msql_num_rows | Acima | msql_numrows


msql_numrows

(PHP 3, PHP 4 , PHP 5)

msql_numrows -- Retorna o número de registros em um resultado

Descrição

int msql_numrows ( void )

Identica a msql_num_rows().

Anterior | Principal | Próxima
msql_numfields | Acima | msql_pconnect


msql_pconnect

(PHP 3, PHP 4 , PHP 5)

msql_pconnect -- Abre uma conexão mSQL persistente

Descrição

int msql_pconnect ( [string server [, string username [, string password]]])

msql_pconnect() funciona muito parecido com msql_connect() com duas diferenças maiores.

Primeiro, ao conectar, a função irá primeiro tentar encontrar uma conexão persistente que já esteja aberta com o mesmo servidor. Se encontrar uma, um identificador para esta conexão será retornado ao invés de criar uma nova conexão.

Segundo, a conexão com o servidor SQL não será fechada ao final da execução do script. Ao invés, a conexão permanecerá aberta para uso futuro (msql_close() não irá fechar conexões persistentes abertas por msql_pconnect()).

Retorna um identificador de conexão mSQL persistente em caso de sucesso, ou FALSE em caso de erro.

Este tipo de conexão é chamada 'persistente'.

Anterior | Principal | Próxima
msql_numrows | Acima | msql_query


msql_query

(PHP 3, PHP 4 , PHP 5)

msql_query -- Envia uma consulta

Descrição

int msql_query ( string query, int link_identifier)

msql_query() envia uma consulta para o banco de dados ativo no servidor indicado na conexão especificada. Se o identificador da conexão não é especificado, a última conexão aberta é utilizada. Se nenhuma conexão estiver aberta, a função tenta estabelecer uma conexão como se msql_connect() fosse chamada, e a usa.

Retorna um identificador de consulta em caso de sucesso, ou FALSE se ouver erro.

Exemplo 1. Exemplo msql_query()

<?php
$link = msql_connect("dbserver")
   or die("Não foi possível conectar ao servidor msql: ".msql_error());
msql_select_db("db", $link)
   or die("Não foi possível selecionar o banco de dados 'db': ".msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("A consulta falhou: ".msql_error());
}

while ($row = msql_fetch_array($result)) {
    echo $row["id"];
}
?>

Veja também
msql(),
msql_select_db() e
msql_connect().

Anterior | Principal | Próxima
msql_pconnect | Acima | msql_regcase


msql_regcase

msql_regcase -- Faz uma expressão recular para pesquisa sem diferenciar maiúsculas e minúsculas

Descrição

Veja sql_regcase().

Anterior | Principal | Próxima
msql_query | Acima | msql_result


msql_result

(PHP 3, PHP 4 , PHP 5)

msql_result -- Retorna dados do resultado

Description

int msql_result ( int query_identifier, int i, mixed field)

Retorna o conteúdo de uma célula na linha e coluna especificadas de um conjunto de resultados.

msql_result() retorna o conteúdo de uma célula de um conjunto de resultados mSQL. O argumento field pode ser o nome do campo, seu índice numerico ou o nome da tabela ponto o nome do campo (tabela.campo). Se o campo tem um apelido ('select foo as bar from ...'), use o apelido ao invés do nome da coluna.

Quando estiver trabalhando com um conjunto de resultados grande, você deve considerar uma das funções que obtem o registro inteiro (especificadas abaixo). Já que estas funções retornam o conteúdo de multiplas células em uma chamada de função, elas são MUITO mais rápidas do que msql_result(). Também, note que especificar o índice numerico do argumento campo e muito mais rápido do que especificar o nome do campo ou tabela.campo.

Alternativas mais rápidas recomendadas:
msql_fetch_row(),
msql_fetch_array() e
msql_fetch_object().

Anterior | Principal | Próxima
msql_regcase | Acima | msql_select_db


msql_select_db

(PHP 3, PHP 4 , PHP 5)

msql_select_db -- Seleciona um banco de dados mSQL

Descrição

int msql_select_db ( string database_name, int link_identifier)

Retorna TRUE em caso de sucesso, FALSE em caso de erro.

msql_select_db() define o banco de dados atual para a conexão com o servidor especificada. Se não for especificado um identificador de conexão, a última conexão aberta é usada. Se não houver conexão aberta, a função tentará criar uma como se a função msql_connect() fosse chamada, e ira usa-la.

Todas as próximas chamadas a msql_query() serão feitas no banco de dados ativo.

Veja também
msql_connect(),
msql_pconnect() e
msql_query().

Anterior | Principal | Próxima
msql_result | Acima | msql_tablename


msql_tablename

(PHP 3, PHP 4 , PHP 5)

msql_tablename -- Retorna o nome de uma tabela

Descrição

string msql_tablename ( int query_identifier, int field)

msql_tablename() usa um ponteiro de resultado retornado por msql_list_tables() e também um inteiro como índice e retorna o nome de uma tabela. A função msql_numrows() deve ser usada para determinar o número de tabelas no ponteiro de resultado.

Exemplo 1. Exemplo msql_tablename()

<?php
msql_connect ("localhost");
$result = msql_list_tables ("wisconsin");
$i = 0;
while ($i < msql_numrows ($result)) {
    $tb_names[$i] = msql_tablename ($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Anterior | Principal | Próxima
msql_select_db | Acima | msql


msql

(PHP 3, PHP 4 , PHP 5)

msql -- Realiza um consulta no banco de dados mSQL

Descrição

int msql ( string database, string query, int link_identifier)

Retorna um identificador do resultado de uma consulta em caso de sucesso, ou FALSE em caso de erro.

msql() seleciona um banco de dados e executa uma consulta nele. Se o indentificador de conexão não é especificado, a função irá tentar encontrar uma conexão aberta para o servidor mSQL e se uma conexão assim não for encontrada, irá tentar criar uma como se msql_connect() fosse chamada sem argumentos (veja msql_connect()).

Anterior | Principal | Próxima
msql_tablename | Acima | MySQL


MySQL

Manual do PHP
Anterior Próxima

LXIV. MySQL

Introdução

Estas funções permitem acessar os servidores de banco de dados do MYSQL. Maiores informações podem ser encontradas em http://www.mysql.com/.

Documentação para MySQL pode ser encontrada em http://dev.mysql.com/doc/.

Requisitos

Para ter estas funções disponiveis, você deve compilar o PHP com suporte a MySQL.

Instalação

Usando a opção de configuração --with-mysql[=DIR] você ativa o PHP para acessar banco de dados MySQL.

No PHP 4, a opção --with-mysql esta ativada por padrão. Para disativar este padrão, você deve usar a opção de configuração --without-mysql. Também no PHP 4, se você ativar o MySQL sem especificar o caminho para o diretório de instalação do MySQL, o PHP irá usar as bibliotecas de cliente que vem com ele. No Windows não existe DLL, ele simplesmente esta dentro do PHP 4. Usuarios que utilizam outras aplicações que usam o MySQL (por exemplo auth-mysql), não devem utiliar a biblioteca que acompanha o PHP, mas especificar o caminho para o diretório de instalação do MySQL, assim evitando qualquer conflito.

No PHP 5, o MySQL não esta mais ativado por padrão, nem há mais a biblioteca que acompanha o PHP. Leia este FAQ para detalhes sobre o motivo.

Esta extenção MySQL não irá funcionar com versões do MySQL posteriores a 4.1.0. Para isso, use MySQLi.

Atenção

Quebras e problemas de inicialização do PHP podem ser encontrados quando carrega-se esta extensão em conjunto com a extensão recode. Veja a extensão recode para maiores informações.

Nota: Se você precisa de conjuntos de caracteres diferentes do latin (padrão), você tem que instalar uma libmysql externa (não a que acompanha o PHP) com suporte ao conjunto de caracteres.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do MySQL

Nome | Padrão | Modificável
mysql.allow_persistent | "On" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.connect_timeout | "0" | PHP_INI_SYSTEM
Para maiores detalhes e deinição de constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

mysql.allow_persistent boolean

Quando permitir conexões persistentes para o MySQL.

mysql.max_persistent integer

O número máximo de conexões persistentes com o MySQL por processo.

mysql.max_links integer

O número maximo de conexões com o MYSQL por processo, incluindo conexões persistentes.

mysql.default_port string

O número padrão da porta TCP a usar quando conectar com o servidor do banco de dados se nenhuma outra porta for especificada. Se nenhum padrão for especificado, aporta será obtida da variavel de ambiente MYSQL_TCP_PORT, da entrada mysql-tcp em /etc/services ou da constante da compilação MYSQL_PORT, nesta ordem. Windows irá usar somente a constante MYSQL_PORT.

mysql.default_socket string

O nome padrão do socket para usar quando conectar com um servidor de banco de dados local se outro nome de socket não for especificado.

mysql.default_host string

O servidor padrão para usar quando conectar com um servidor de banco de dados se outro servidor não for encontrado. Não se aplica em safe mode.

mysql.default_user string

O nome padrão de usuário para conectar ao servidor de banco de dados se outro nome não for especificado. Não se aplica em safe mode.

mysql.default_password string

A senha padrão para usar ao conectar ao servidor de banco de dados se outra senha não for especificada. Não se aplica em safe mode.

mysql.connect_timeout integer

Limite de tempo da conexão em segundos. No Linux este limite é também usado para a espera da primeira resposta do servidor.

Tipos Resource

Há dois tipos de recursos usados no modulo MySql. O primeiro é a identificação do link da conexão com o banco de dados, o segundo é o que guarda o resultado de uma query.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Desde PHP 4.3.0 é possivel especificar opções adicionais para as funções mysql_connect() and mysql_pconnect() As seguintes constantes são definidas:

Tabela 2. Constante do cliente MySQL

constante | descrição
MYSQL_CLIENT_COMPRESS | usa o protocolo de compressão
MYSQL_CLIENT_IGNORE_SPACE | Permite espaço após o nome de função
MYSQL_CLIENT_INTERACTIVE | Permite interactive_timeout segundos (ao inves de wait_timeout) de inatividade antes de fechar a conexão.

A função mysql_fetch_array() usa uma constante para cada diferentes tipos de matrizes de resultado. As seguintes constantes são definidas:

Tabela 3. MySQL fetch constants

constante | descrição
MYSQL_ASSOC | As colunas são retornadas na matriz tendo o nome do campo como índice da matriz.
MYSQL_BOTH | As colunas são retornadas na matriz tendo ambos os indices: um numérico e o um com o nome do campo.
MYSQL_NUM | As colunas são retornadas numa matriz tendo um indice numérico dos campos. Este indice começa com 0, o primeiro campo no resultado.

Exemplos

Este exemplo simples mostra como conectar, executar uma query, mostrar o resultado e desconectar do banco de dados do MySQL.

Exemplo 1. Exemplo da extensão do MySQL

<?php
    /* Conectando, escolhendo o banco de dados */
    $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
        or die("Não pude conectar: " . mysql_error());
    print "Conexão bem sucedida";
    mysql_select_db("my_database") or die("Não pude selecionar o banco de dados");

    /* Fazendo a query SQL*/
    $query = "SELECT * FROM my_table";
    $result = mysql_query($query) or die("A query falhou: " . mysql_error());

    /* Mostrando os resultados em HTML */
    print "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
        print "\t<tr>\n";
        foreach ($line as $col_value) {
            print "\t\t<td>$col_value</td>\n";
        }
        print "\t</tr>\n";
    }
    print "</table>\n";

    /* Liberando o resultado */
    mysql_free_result($result);

    /* Fechando a conexão */
    mysql_close($link);
?>

Índice
mysql_affected_rows -- Devolve o número de linhas afetadas na operação anterior com o MySQL
mysql_change_user -- Muda o usuário logado da conexão ativa
mysql_client_encoding -- Retorna o nome do conjunto de caracteres
mysql_close -- Fecha a conexão com o MySQL
mysql_connect -- Abre uma conexão com o servidor MySQL
mysql_create_db -- Cria um banco de dados do MySQL
mysql_data_seek -- Move o ponteiro interno do resultado
mysql_db_name -- Retorna os nomes dos bancos de dados
mysql_db_query -- Envia uma query ao MySQL
mysql_drop_db -- Apaga um banco de dados do MySQL
mysql_errno -- Retorna o valor numérico da mensagem de erro da operação anterior do MySQL
mysql_error -- Retorna o texto da mensagem de erro da operação anterior do MySQL
mysql_escape_string -- Escapa uma string para uso com o mysql_query.
mysql_fetch_array -- Busca o resultado de uma linha e o coloca como uma matriz associativa, matriz numérica ou ambas.
mysql_fetch_assoc -- Busca o resultado de uma linha e o coloca numa matriz associativa
mysql_fetch_field -- Retorna informação sobre uma coluna de um resultado como um objeto
mysql_fetch_lengths -- Retorna o tamanho de cada campo do resultado
mysql_fetch_object -- Retorna o resultado de uma linha como um objeto
mysql_fetch_row -- Retorna o resultado de uma linha numa matriz numérica
mysql_field_flags -- Pega as flags do campo especificado no resultado
mysql_field_len -- Retorna o tamanho do campo
mysql_field_name -- Retorna o nome do campo especificado no resultado de uma query
mysql_field_seek -- Move o ponteiro do resultado para um campo especificado
mysql_field_table -- Retorna o nome da tabela onde esta o campo especificado
mysql_field_type -- Retorna o tipo do campo especificado em um resultado de query
mysql_free_result -- Libera a memória do resultado de uma query
mysql_get_client_info -- Retorna informação da versão do cliente MySQL
mysql_get_host_info -- Retorna informação sobre o host do MySQL
mysql_get_proto_info -- Retorna informação do protocolo do MySQL
mysql_get_server_info -- Retorna informação do servidor MySQL
mysql_info -- Retorna informação sobre a última query
mysql_insert_id -- Retorna o ID gerado da operação INSERT anterior
mysql_list_dbs -- Lista os bancos de dados disponiveis o servidor do MySQL
mysql_list_fields -- Lista os campos de uma tabela
mysql_list_processes -- Lista os processos MySQL
mysql_list_tables -- Lista as tabelas em um banco de dados MySQL
mysql_num_fields -- Retorna o número de campos no resulatdo
mysql_num_rows -- Retorna o número de linhas em um resultado
mysql_pconnect -- Abre uma conexão persistente com um servidor MySQL
mysql_ping -- Pinga uma conexão ou reconecta se não houver conexão
mysql_query -- Realiza uma query MySQL
mysql_real_escape_string -- Escapa os caracteres especiais numa string para usar em um comando SQL, levando em conta o conjunto atual de caracteres.
mysql_result -- Retorna dados do resultado
mysql_select_db -- Seleciona um banco de dados MySQL
mysql_stat -- Retorna o status atual do sistema
mysql_tablename -- Retorna o nome da tabela do campo
mysql_thread_id -- Returna o ID da thread atual
mysql_unbuffered_query -- Envia uma query para o MySQL, sem retornar e colocar em buffer as linhas do resultado

Anterior | Principal | Próxima
msql | Acima | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4 , PHP 5)

mysql_affected_rows -- Devolve o número de linhas afetadas na operação anterior com o MySQL

Descrição

int mysql_affected_rows ( [resource link_identifier])

mysql_affected_rows() retorna o número de linhas afetadas pela ultima query INSERT, UPDATE ou DELETE associada a link_identifier. Se o identificador de link não é especificado, o ultimo link aberto por mysql_connect() é utilizado.

Nota: Se você esta usando transações, você deve chamar mysql_affected_rows() após sua query INSERT, UPDATE, ou DELETE, não depois de commit.

Se a ultima query foi um DELETE sem a cláusula WHERE, todos os registros foram apagados da tabela, mas esta função retornará zero.

Nota: Quando usando UPDATE, o MySQL não atualizará as colunas onde o novo valor é o mesmo que o valor anterior. Isto cria a possibilidade de que a função mysql_affected_rows() não seja atualmente igual ao número de linhas encontradas, somente o número de linhas que literalmente foram afetadas pela query.

A função mysql_affected_rows() não funciona com os comandos SELECT; somente comandos que modificam os registros. Para pegar o número de linhas retornados por SELECT, use mysql_num_rows().

Se a ultima query falhou, esta função irá retornar -1.

Exemplo 1. Delete-Query

<?php
    /* Conecta com o banco de dados */
    mysql_pconnect("localhost", "mysql_user", "mysql_password") or
        die ("Não pude conectar: " . mysql_error());
    mysql_select_db("mydb");

    /* Este deve retornar o número coreto de registros excluídos */
    mysql_query("DELETE FROM mytable WHERE id < 10");
    printf ("Registros excluídos: %d\n", mysql_affected_rows());

    /* Sem a clausula where no comando delete, deve retornar 0 */
    mysql_query("DELETE FROM mytable");
    printf ("Registros excluídos: %d\n", mysql_affected_rows());
?>

O exemplo acima deve produzir a seguinte saída:

Registros excluídos: 10
Registros excluídos: 0

Exemplo 2. Update-Query

<?php
    /* conecta com o banco de dados */
    mysql_pconnect("localhost", "mysql_user", "mysql_password") or
        die ("Não pude conectar: " . mysql_error());
    mysql_select_db("mydb");
    /* Atualiza os registros */
    mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
    printf ("Registros atualizados: %d\n", mysql_affected_rows());
    mysql_query("COMMIT");
?>

O exemplo acima deve produzir a seguinte saída:

Registros atualizados: 10

Veja também mysql_num_rows() e mysql_info().

Anterior | Principal | Próxima
MySQL | Acima | mysql_change_user


mysql_change_user

(PHP 3>= 3.0.13)

mysql_change_user -- Muda o usuário logado da conexão ativa

Descrição

int mysql_change_user ( string user, string password [, string database [, resource link_identifier]])

A função mysql_change_user() muda o usuário logado da conexão ativa atual, ou da conexão dada pelo parâmetro opcional link_identifier. Se um banco de dados é especificado, este será o banco de dados atual depois que mudar de usuário. Se houver erro na troca de usuário o que esta atualmente conectado permanece como o usuário ativo. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Esta função foi introduzida no PHP 3.0.13 e requer MySQL 3.23.3 ou superior. Ela não esta disponível no PHP 4.

Anterior | Principal | Próxima
mysql_affected_rows | Acima | mysql_client_encoding


mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding -- Retorna o nome do conjunto de caracteres

Descrição

int mysql_client_encoding ( [resource link_identifier])

A função mysql_client_encoding() retorna o conjunto de caracteres padrão para a conexão atual.

Exemplo 1. Exemplo mysql_client_encoding()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);
printf ("Conjunto atual de caracteres é %s\n", $charset);
?>

O exemplo acima deve produzir a seguinte saida:

Conjunto atual de caracteres é latin1

Veja também: mysql_real_escape_string()

Anterior | Principal | Próxima
mysql_change_user | Acima | mysql_close


mysql_close

(PHP 3, PHP 4 , PHP 5)

mysql_close -- Fecha a conexão com o MySQL

Descrição

bool mysql_close ( [resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

A função mysql_close() fecha a conexão com o servidor MySQL que você referir com o link_identifier. Se o parâmetro link_identifier não é especificado a ultima conexão aberta é usada.

Usar a função mysql_close() não é atualmente necessário, porque conexões não persistentes são automaticamente fechadas ao final da execução do script. Veja também freeing resources.

Nota: mysql_close() não irá fechar conexões persistentes criadas por mysql_pconnect().

Exemplo 1. Exemplo MySQL close

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
        or die("Não pude conectar: " . mysql_error());
    print ("Conectado!");
    mysql_close($link);
?>

Veja também mysql_connect() e mysql_pconnect().

Anterior | Principal | Próxima
mysql_client_encoding | Acima | mysql_connect


mysql_connect

(PHP 3, PHP 4 , PHP 5)

mysql_connect -- Abre uma conexão com o servidor MySQL

Descrição

resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]])

Retorna um identificador de link (link_identifier) com o MySQL se der certo, ou FALSE se falhar.

mysql_connect() estabelece uma conexão com o servidor MySQL. Os seguintes padrões são assumidos para os argumentos opcionais que estiverem faltando: server = 'localhost:3306', username = nome do usuário dono do processo do servidor, password = senha vazia.

O parâmetro server pode também incluir um número de porta. Exemplo: "hostname:port" ou um caminho para um socket, exemplo. ":/path/to/socket" para o servidor local (localhost).

Nota: Em qualquer lugar que você especificar "localhost" ou "localhost:port" como servidor, a biblioteca de cliente MySQL irá sobrepor isto e tentar conectar com um socket local (named pipe no Windows). Se você quizer usar TCP/IP, use "127.0.0.1" ao invés de "localhost". Se biblioteca de cliente MySQL tentar conectar ao socket local errado, você deverá estabelecer o caminho correto em mysql.default_host na sua configuração do PHP e deixar o campo do servidor em branco.

Suporte para ":port" foi adicionado no PHP 3.0B4.

Suporte para ":/path/to/socket" foi adicionado no PHP 3.0.10.

Você pode suprimir a mensagem de erro em caso de falha colocando um @ antes do nome da função.

Se uma segunda chamada é feita para mysql_connect() com os mesmos argumentos, um novo link não será estabelecido, mas ao invés disto o identificador da conexão já aberta será retornado. O parâmetro new_link modifica esta opção e faz com que a função mysql_connect() sempre abra um novo link, mesmo que mysql_connect() seja chamada com os mesmos parâmetros. O parâmetro client_flags pode ser uma combinação das constantes MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE.

Nota: O parâmetro new_link tornou-se disponível no PHP 4.2.0

O parâmetro client_flags tornou-se disponível no PHP 4.3.0

O link com o servidor será fechado tão logo a execução do script termine, se não tiver sido fechado anteriormente por chamar explicita à mysql_close().

Exemplo 1. Exemplo de conexão MySQL

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
        or die("Não pude conectar: " . mysql_error());
    print ("Conectado");
    mysql_close($link);
?>

Veja também mysql_pconnect() e mysql_close().

Anterior | Principal | Próxima
mysql_close | Acima | mysql_create_db


mysql_create_db

(PHP 3, PHP 4 , PHP 5)

mysql_create_db -- Cria um banco de dados do MySQL

Descrição

bool mysql_create_db ( string database_name [, resource link_identifier])

mysql_create_db() tenta criar um novo banco de dados no servidor especificado pelo identificador de link (link_identifier) indicado.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo MySQL create database

<?php
    $link = mysql_pconnect("localhost", "mysql_user", "mysql_password")
        or die("Não pude conectar: " . mysql_error());

    if (mysql_create_db("my_db")) {
        print ("Banco de dados criado\n");
    } else {
        printf ("Erro criando o banco de dados: %s\n", mysql_error());
    }
?>

Para compatibilidade com versões anteriores mysql_createdb() também pode ser usada. Em todo o caso ela esta obsoleta.

Nota: A função mysql_create_db() está obsoleta. É preferível usar mysql_query() para fazer o comando SQL CREATE DATABASE.

Atenção

Esta função não estará disponível se a extenção do MySQL for compilada com uma biblioteca de cliente do MySQL 4.x.

Veja também mysql_drop_db() e mysql_query().

Anterior | Principal | Próxima
mysql_connect | Acima | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4 , PHP 5)

mysql_data_seek -- Move o ponteiro interno do resultado

Descrição

bool mysql_data_seek ( resource result_identifier, int row_number)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

mysql_data_seek() move o ponteiro interno do resultado MySQL associado ao identificador de resultado (result_identifier) especificado para apontar a linha identificada. A próxima chamada a mysql_fetch_row() irá retornar esta linha.

O parâmetro row_number (número de linha) começa no 0. O row_number deve ser um valor entre 0 e mysql_num_rows - 1.

Nota: A função mysql_data_seek() pode ser usada somente em conjunto com mysql_query(), não com mysql_unbuffered_query().

Exemplo 1. Exemplo MySQL data seek

<?php
    $link = mysql_pconnect("localhost", "mysql_user", "mysql_password")
        or die("Não pude conectar: " . mysql_error());

    mysql_select_db("samp_db")
        or die("Não pude selecionar o banco de dados: " . mysql_error());
    $query = "SELECT last_name, first_name FROM friends";
    $result = mysql_query($query)
        or die("Query falhou: " . mysql_error());

    /* fetch rows in reverse order */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Não pude ir para a linha $i:" . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->first_name<br />\n";
    }

    mysql_free_result($result);
?>

Veja também: mysql_query() e mysql_num_rows().

Anterior | Principal | Próxima
mysql_create_db | Acima | mysql_db_name


mysql_db_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mysql_db_name -- Retorna os nomes dos bancos de dados

Descrição

string mysql_db_name ( resource result, int row [, mixed field])

mysql_db_name() tem como primeiro parâmetro o resultado de uma chamada a mysql_list_dbs(). O parâmetro row é o índice no conjunto de respostas.

Se houver um erro é retornado FALSE. Use mysql_errno() e mysql_error() para determinar a natureza do erro.

Exemplo 1. Exemplo mysql_db_name()

<?php
    error_reporting(E_ALL);

    mysql_connect('dbhost', 'username', 'password');
    $db_list = mysql_list_dbs();

    $i = 0;
    $cnt = mysql_num_rows($db_list);
    while ($i < $cnt) {
        echo mysql_db_name($db_list, $i) . "\n";
        $i++;
    }
?>

Para compatibilidade com versões anteriores, mysql_dbname() também é aceito. Seu uso está obsoleto.

Anterior | Principal | Próxima
mysql_data_seek | Acima | mysql_db_query


mysql_db_query

(PHP 3, PHP 4 , PHP 5)

mysql_db_query -- Envia uma query ao MySQL

Descrição

resource mysql_db_query ( string database, string query [, resource link_identifier])

Retorna um recurso com o resultado de uma query, ou FALSE se houver erro. A função também retorna TRUE/FALSE para as query INSERT/UPDATE/DELETE para indicar sucesso ou falha.

mysql_db_query() seleciona um banco de dados e executa uma query nele. Se o link_identifier não for especificado (é opcional), a função tenterá achar um link aberto para o servidor MySQL, e se nenhum for encontrado, a função tenterá criar um como se a função mysql_connect() fosse chamada sem argumentos.

Tenha cuidado pois esta função NÃO seleciona de volta o banco de dados que você estava conectado antes. Em outras palavras, você não pode usar esta função para executar uma query temporariamente em outro banco de dados, você deve manualmente trocar de volta o banco de dados. É fortemente recomendado usar a sintaxe database.table nas suas queries ao invés desta função.

Veja também mysql_connect() e mysql_query().

Nota: Esta função é obsoleta desde PHP 4.0.6. Não use esta função. Ao invés utilize mysql_select_db() e mysql_query().

Anterior | Principal | Próxima
mysql_db_name | Acima | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4 , PHP 5)

mysql_drop_db -- Apaga um banco de dados do MySQL

Descrição

bool mysql_drop_db ( string database_name [, resource link_identifier])

mysql_drop_db() tenta remover todo um banco de dados do servidor especificado em link_identifier.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Para compatibilidade com as versãoes anteriores, mysql_dropdb() pode ser usada também. Esta função é obsoleta.

Nota: A função mysql_drop_db() é obsoleta. É preferivel usar mysql_query() ao invés um comando SQL DROP DATABASE.

Atenção

Esta função não estará disponível se a extenção do MySQL for compilada com uma biblioteca de cliente do MySQL 4.x.

Veja também mysql_create_db() e mysql_query().

Anterior | Principal | Próxima
mysql_db_query | Acima | mysql_errno


mysql_errno

(PHP 3, PHP 4 , PHP 5)

mysql_errno -- Retorna o valor numérico da mensagem de erro da operação anterior do MySQL

Descrição

int mysql_errno ( [resource link_identifier])

Retorna o número do erro da ultima função do MySQL, ou 0 (zero) se não houve erro.

Erros vindos do MySQL não causam avisos. Ao invés, use mysql_errno() para obter o código de erro. Note que esta função somente retorna o código de erro da ultima função do MySQL que foi executada(não incluindo mysql_error() e mysql_errno()), assim se você quer usa-la, tenha certeza de utiliza-la antes de chamar outra função do MySQL.

Exemplo 1. Exemplo mysql_errno()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("arquivonaoexistente");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM tabelanaoexistente");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

O exemplo acima deve produzir a seguinte saida:

1049: Unknown database 'arquivonaoexistente'
1146: Table 'kossu.tabelanaoexistente' doesn't exist

Nota: Se o argumento opcional é especificado, a conexão indicada é usada para obter o código de erro. Se não, a ultima conexão aberta é usada.

Veja também mysql_error().

Anterior | Principal | Próxima
mysql_drop_db | Acima | mysql_error


mysql_error

(PHP 3, PHP 4 , PHP 5)

mysql_error -- Retorna o texto da mensagem de erro da operação anterior do MySQL

Descrição

string mysql_error ( [resource link_identifier])

Retorna o texto do erro da ultima função do MySQL, ou '' (Uma string vazia) se não houve erro. Se não for passada uma identificação de conexão, a última conexão aberta será usada para obter a mensagem de erro do servidor MySQL.

Erros vindo do MySQL não causam avisos. Ao invés, use mysql_error() para obter o texto do erro. Note que esta função somente retorna o texto de erro da ultima função do MySQL que foi executada(não incluindo mysql_error() e mysql_errno()), assim se você quer usa-la, tenha certeza de utiliza-la antes de chamar outra função do MySQL.

Exemplo 1. Exemplo mysql_error

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("arquivonaoexistente");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM tabelanaoexistente");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

O exemplo acima deve produzir a seguinte saida:

1049: Unknown database 'arquivonaoexistente'
1146: Table 'kossu.tabelanaoexistente' doesn't exist

Veja também mysql_errno().

Anterior | Principal | Próxima
mysql_errno | Acima | mysql_escape_string


mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string -- Escapa uma string para uso com o mysql_query.

Descrição

string mysql_escape_string ( string unescaped_string)

Esta função irá escapar o unescaped_string, assim será seguro coloca-la na função mysql_query().

Nota: mysql_escape_string() não escapa % e _.

Esta função é identica a mysql_real_escape_string() exceto que mysql_real_escape_string() precisa de um identificador de conexão e escapa a string de acordo com o conjunto atual de caracteres atual. mysql_escape_string() não precisa de um identificador de conexão e não respeita o conjunto atual de caracteres.

Exemplo 1. Exemplo mysql_escape_string()

<?php
    $item = "Zak's Laptop";
    $escaped_item = mysql_escape_string($item);
    printf ("String escapada: %s\n", $escaped_item);
?>

O exemplo acima deve produzir a seguinte saida:

Escaped string: Zak\'s Laptop

Veja também mysql_real_escape_string(), addslashes() e a diretiva magic_quotes_gpc.

Anterior | Principal | Próxima
mysql_error | Acima | mysql_fetch_array


mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array -- Busca o resultado de uma linha e o coloca como uma matriz associativa, matriz numérica ou ambas.

Descrição

array mysql_fetch_array ( resource result [, int result_type])

Retorna uma matriz que corresponde a linha buscada, ou FALSE se não houverem mais linhas.

mysql_fetch_array() é uma versão estendida de mysql_fetch_row(). Além de guardar os dados em um índice numérico na matriz, também guarda os dados em índices associativos, usando o nome do campo como chave.

Se duas ou mais colunas do resultado tiverem o mesmo nome do campo, a ultima coluna terá precedência. Para acessar as outras coluna(s) com o mesmo nome, você deve usar o índice numérico da coluna ou fazer um apelido para a coluna. Para colunas com apelido, você não pode acessar os conteúdos com o nome original da coluna (usando 'field' neste exemplo).

Exemplo 1. Query com nomes de campo duplicados

select table1.field as foo, table2.field as bar from table1, table2

Uma coisa importante para notar é que usar mysql_fetch_array() não é significativamente mais lenta do que usar mysql_fetch_row(), enquanto que produz um resultado melhor de se usar.

O segundo argumento, que é opcional, result_type em mysql_fetch_array() é uma constante que pode ter os seguintes valores: MYSQL_ASSOC, MYSQL_NUM, e MYSQL_BOTH. Isto foi adicionado no PHP 3.0.7. MYSQL_BOTH é o padrão para este argumento.

Usando MYSQL_BOTH, você terá uma matriz com os índices associativos e numéricos. Usando MYSQL_ASSOC, você terá apenas os índices associativos (como funciona mysql_fetch_assoc()), usando MYSQL_NUM, você terá apenas os índices numéricos (como funciona mysql_fetch_row()).

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Exemplo 2. mysql_fetch_array com MYSQL_NUM

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);
    }

    mysql_free_result($result);
?>

Exemplo 3. mysql_fetch_array com MYSQL_ASSOC

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
    }

    mysql_free_result($result);
?>

Exemplo 4. mysql_fetch_array com MYSQL_BOTH

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        printf ("ID: %s  Name: %s", $row[0], $row["name"]);
    }

    mysql_free_result($result);
?>

Veja também mysql_fetch_row() e mysql_fetch_assoc().

Anterior | Principal | Próxima
mysql_escape_string | Acima | mysql_fetch_assoc


mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc -- Busca o resultado de uma linha e o coloca numa matriz associativa

Descrição

array mysql_fetch_assoc ( resource result)

Retorna uma matriz associativa que corresponde a linha ou FALSE se não houverem mais linhas.

mysql_fetch_assoc() é equivalente a chamar mysql_fetch_array() com MYSQL_ASSOC para o segundo parâmetro, que é opcional. Somente retorna uma matriz associativa. Este é o jeito que mysql_fetch_array() funcionava originalmente. Se você precisa dos índices numéricos assim como o associativo, use mysql_fetch_array().

Se duas ou mais colunas do resultado tiverem o mesmo nome do campo, a ultima coluna terá precedência. Para acessar as outras coluna(s) com o mesmo nome, você deve usar o índice numérico da coluna usando mysql_fetch_row() ou fazer um apelido para a coluna. Veja o exemplo em mysql_fetch_array() uma descrição para apelidos.

Uma coisa importante para notar é que usar mysql_fetch_assoc() não é significativamente mais lenta do que usar mysql_fetch_row(), enquanto produz um resultado melhor de usar.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Exemplo 1. mysql_fetch_assoc()

<?php

    $conn = mysql_connect("localhost", "mysql_user", "mysql_password");

    if (!$conn) {
        echo "Não foi possível conectar: " . mysql_error();
        exit;
    }

    if (!mysql_select_db("mydbname")) {
        echo "Não foi possível selecionar mydbname: " . mysql_error();
        exit;
    }

    $sql = "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1";

    $result = mysql_query($sql);

    if (!$result) {
        echo "Não foi possível executar a query ($sql): " . mysql_error();
        exit;
    }

    if (mysql_num_rows($result) == 0) {
        echo "Nenhuma linha encontrada, nada para mostrar, então estou saindo";
        exit;
    }

    // Enquanto uma linha com dados existir, coloca esta linha em $row como uma matriz associativa
    // Nota: Se você esta esperando somente uma linha, não é necessário usar o loop
    // Note: Se você colocar extract($row); dentro o loop a seguir,
    //       então você irá criar $userid, $fullname, and $userstatus
    while ($row = mysql_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

    mysql_free_result($result);

?>

Veja também
mysql_fetch_row(),
mysql_fetch_array() e
mysql_query().

Anterior | Principal | Próxima
mysql_fetch_array | Acima | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_field -- Retorna informação sobre uma coluna de um resultado como um objeto

Descrição

object mysql_fetch_field ( resource result [, int field_offset])

Retorna um objeto contendo informação sobre um campo.

mysql_fetch_field() pode ser usado para obter informações sobre os campos num certo resultado de uma query. Se o índice do campo não é especificado, o próximo campo que não foi ainda retornado por mysql_fetch_field() é retornado.

As propriedades do objeto são:

  • name - nome da coluna

  • table - nome da tabela onde esta o campo

  • max_length - o limite de tamanho para a coluna

  • not_null - 1 se a coluna não pode ser NULL

  • primary_key - 1 se a coluna é a chave primária

  • unique_key - 1 se a coluna é a chave única

  • multiple_key - 1 se a coluna é uma chave não única

  • numeric - 1 se a coluna é numérica

  • blob - 1 se a coluna é BLOB

  • type - o tipo da coluna

  • unsigned - 1 se a coluna é unsigned(sem sinal)

  • zerofill - 1 se a coluna é preenchida com zero

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Exemplo 1. mysql_fetch_field()

<?php
mysql_connect('localhost:3306', $user, $password)
    or die ("Não pude conectar: " . mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table")
    or die("A query falhou: " . mysql_error());
/* get column metadata */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Informação para a coluna $i:<br />\n";
    $meta = mysql_fetch_field($result,$i);
    if (!$meta) {
        echo "Informação não disponivel<br />\n";
    }
    echo "<pre>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
</pre>";
    $i++;
}
mysql_free_result($result);
?>

Veja também mysql_field_seek().

Anterior | Principal | Próxima
mysql_fetch_assoc | Acima | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_lengths -- Retorna o tamanho de cada campo do resultado

Descrição

array mysql_fetch_lengths ( resource result)

Retorna uma matriz que corresponte ao tamanho de cada campo na ultima coluna retornada por mysql_fetch_row(), ou FALSE se houver erro.

mysql_fetch_lengths() guarda o tamanho de cada coluna do resultado retornado por mysql_fetch_row(), mysql_fetch_array(), e mysql_fetch_object() numa matriz, com o índice começando em 0.

Veja também mysql_fetch_row().

Anterior | Principal | Próxima
mysql_fetch_field | Acima | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_object -- Retorna o resultado de uma linha como um objeto

Descrição

object mysql_fetch_object ( resource result)

Retorna um objeto com propriedades que correspondem a linha, ou FALSE se não houverem mais linhas.

mysql_fetch_object() é similar a mysql_fetch_array(), com uma diferença - um objeto é retornado ao invés de uma matriz. Indiretamente, isto indica que você só pode acessar os dados pelo nome do campo, e não pelos seus índices (números como nomes de propriedades são inválidos).

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

<?php

/* Isto é válido */
echo $row->field;
/* Isto é inválido */
echo $row->0;

?>

Em velocidade, a função é identica a mysql_fetch_array(), e quase tão rapida quanto mysql_fetch_row() (a diferença é insignificante).

Exemplo 1. Exemplo mysql_fetch_object()

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db($mydb);
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

Veja também mysql_fetch_array(),
mysql_fetch_assoc() e
mysql_fetch_row().

Anterior | Principal | Próxima
mysql_fetch_lengths | Acima | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_row -- Retorna o resultado de uma linha numa matriz numérica

Descrição

array mysql_fetch_row ( resource result)

Retorna uma matriz numérica que corresponde a linha, ou FALSE se não houverem mais linhas.

mysql_fetch_row() retorna os dados de uma linha do resultado identificado por result(resultado de uma query). A linha é retornada como uma matriz. Cada coluna é um índice da matriz, começando em 0.

A próxima chamada a mysql_fetch_row() irá retornar a próxima linha do conjunto de resultados, ou FALSE se não houverem mais linhas.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Veja também: mysql_fetch_array(),
mysql_fetch_assoc(),
mysql_fetch_object(),
mysql_data_seek(),
mysql_fetch_lengths(), e
mysql_result().

Anterior | Principal | Próxima
mysql_fetch_object | Acima | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4 , PHP 5)

mysql_field_flags -- Pega as flags do campo especificado no resultado

Descrição

string mysql_field_flags ( resource result, int field_offset)

mysql_field_flags() retorna as flags do campo especificado. As flags são retornadas como uma única palavra separadas por um único espaço, assim você pode separar o valor retornado com explode().

As seguintes flags são retornadas, se a sua versão do MySQL é atual o suficiente para reporta-las: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Para compatibilidade com as versões anteriores mysql_fieldflags() também pode ser usada. Esta função esta depreciada.

Anterior | Principal | Próxima
mysql_fetch_row | Acima | mysql_field_len


mysql_field_len

(PHP 3, PHP 4 , PHP 5)

mysql_field_len -- Retorna o tamanho do campo

Descrição

int mysql_field_len ( resource result, int field_offset)

mysql_field_len() retorna o tamanho do campo especificado.

Para compatibilidade com versões anteriores mysql_fieldlen() pode também ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_field_flags | Acima | mysql_field_name


mysql_field_name

(PHP 3, PHP 4 , PHP 5)

mysql_field_name -- Retorna o nome do campo especificado no resultado de uma query

Descrição

string mysql_field_name ( resource result, int field_index)

mysql_field_name() retorna o nome do campo do índice especificado. result deve ser um identificador de resultado(de uma query) valido e field_index é o índice do campo.

Nota: field_index começa em 0.

Dica. O índice do terceiro campo deve ser 2, o índice do quarto campo deve ser 3 e assim em diante.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Exemplo 1. Exemplo mysql_field_name()

<?php
/* A tabela users consiste de três campos:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$dbname = "mydb";
mysql_select_db($dbname, $link)
    or die("Could not set $dbname: " . mysql_error());
$res = mysql_query("select * from users", $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

O exemplo acima deve produzir a seguinte saída:

user_id
password

Para compatibilidade com versões anteriores mysql_fieldname() também pode ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_field_len | Acima | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4 , PHP 5)

mysql_field_seek -- Move o ponteiro do resultado para um campo especificado

Descrição

int mysql_field_seek ( resource result, int field_offset)

Move o ponteiro para o índice especificado. Se a próxima chamada a mysql_fetch_field() não incluir um índice do campo, o índice especificado em mysql_field_seek() será retornado.

Veja também mysql_fetch_field().

Anterior | Principal | Próxima
mysql_field_name | Acima | mysql_field_table


mysql_field_table

(PHP 3, PHP 4 , PHP 5)

mysql_field_table -- Retorna o nome da tabela onde esta o campo especificado

Descrição

string mysql_field_table ( resource result, int field_offset)

Retorna o nome da tabela onde esta o campo especificado.

Para compatibilidade com versões anteriores mysql_fieldtable() também pode ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_field_seek | Acima | mysql_field_type


mysql_field_type

(PHP 3, PHP 4 , PHP 5)

mysql_field_type -- Retorna o tipo do campo especificado em um resultado de query

Descrição

string mysql_field_type ( resource result, int field_offset)

mysql_field_type() é similar a mysql_field_name(). Os argumentos são identicos, mas ao invés é retornado o tipo do campo. O tipo do campo será um de "int", "real", "string", "blob", e outros detalhados na documentação do MySQL.

Exemplo 1. Exemplo mysql_field_type()

<?php
    mysql_connect("localhost", "mysql_username", "mysql_password");
    mysql_select_db("mysql");
    $result = mysql_query("SELECT * FROM func");
    $fields = mysql_num_fields($result);
    $rows   = mysql_num_rows($result);
    $table = mysql_field_table($result, 0);
    echo "Your '".$table."' table has ".$fields." fields and ".$rows." record(s)\n";
    echo "The table has the following fields:\n";
    for ($i=0; $i < $fields; $i++) {
        $type  = mysql_field_type($result, $i);
        $name  = mysql_field_name($result, $i);
        $len   = mysql_field_len($result, $i);
        $flags = mysql_field_flags($result, $i);
        echo $type." ".$name." ".$len." ".$flags."\n";
    }
    mysql_free_result($result);
    mysql_close();
?>

A tabela acima irá produzir a seguinte saída:

Your 'func' table has 4 fields and 1 record(s)
The table has the following fields:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Para compatibilidade com versões anteriores mysql_fieldtype() também pode ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_field_table | Acima | mysql_free_result


mysql_free_result

(PHP 3, PHP 4 , PHP 5)

mysql_free_result -- Libera a memória do resultado de uma query

Descrição

bool mysql_free_result ( resource result)

mysql_free_result() irá liberar toda a memória usada com o identificador de resultado result.

mysql_free_result() somente precisa ser chamado se você esta preocupado em quanta memória esta sendo usada para query num grande conjunto de resultados. Toda a memória usada do resultado é liberada automaticamente ao final da execução do script.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Para compatibilidade com versões anteriores mysql_freeresult() também pode ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_field_type | Acima | mysql_get_client_info


mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info -- Retorna informação da versão do cliente MySQL

Descrição

string mysql_get_client_info ( void )

mysql_get_client_info() retorna uma string que representa a versão da biblioteca do cliente.

Exemplo 1. Exemplo mysql_get_client_info

<?php
    printf ("MySQL client info: %s\n", mysql_get_client_info());
?>

O exemplo acima deve produzir a seguinte saída:

MySQL client info: 3.23.39

Veja também: mysql_get_host_info(),
          mysql_get_proto_info() e
          mysql_get_server_info().

Anterior | Principal | Próxima
mysql_free_result | Acima | mysql_get_host_info


mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info -- Retorna informação sobre o host do MySQL

Descrição

string mysql_get_host_info ( [resource link_identifier])

mysql_get_host_info() retorna uma string descrevendo o tipo de conexão em uso para a conexão link_identifier, incluindo o nome de host do servidor. Se o parâmetro link_identifier é omitido, a ultima conexão aberta é usada.

Exemplo 1. Exemplo mysql_get_host_info

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    printf ("MySQL host info: %s\n", mysql_get_host_info());
?>

O exemplo acima deve produzir a seguinte saída:

MySQL host info: Localhost via UNIX socket

Veja também: mysql_get_client_info(),
          mysql_get_proto_info() e
          mysql_get_server_info().

Anterior | Principal | Próxima
mysql_get_client_info | Acima | mysql_get_proto_info


mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info -- Retorna informação do protocolo do MySQL

Descrição

int mysql_get_proto_info ( [resource link_identifier])

mysql_get_proto_info() retorna a versão do protocolo usada pela conexão link_identifier. Se link_identifier é omitido, a última conexão aberta é usada.

Exemplo 1. Exemplo mysql_get_proto_info

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    printf ("MySQL protocol version: %s\n", mysql_get_proto_info());
?>

O exemplo acima deve produzir a seguinte saída:

MySQL protocol version: 10

Veja também mysql_get_client_info(),
          mysql_get_host_info() e
          mysql_get_server_info().

Anterior | Principal | Próxima
mysql_get_host_info | Acima | mysql_get_server_info


mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info -- Retorna informação do servidor MySQL

Descrição

string mysql_get_server_info ( [resource link_identifier])

mysql_get_server_info() retorna a versão do servidor usado para a conexão link_identifier. Se link_identifier é omitido, a última conexão aberta é usada.

Exemplo 1. Exemplo mysql_get_server_info

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    printf ("MySQL server version: %s\n", mysql_get_server_info());
?>

O exemplo acima deve produzir a seguinte saída:

MySQL server version: 4.0.1-alpha

Veja também: mysql_get_client_info(),
          mysql_get_host_info() e
          mysql_get_proto_info().

Anterior | Principal | Próxima
mysql_get_proto_info | Acima | mysql_info


mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info -- Retorna informação sobre a última query

Descrição

string mysql_info ( [resource link_identifier])

mysql_info() retorna informação detalhada sobre a última query usando o link_identifier dado. Se link_identifier não é especificado, a última conexão aberta é usada.

mysql_info() retorna uma string para todos os itens listados abaixo. Para todos os outros FALSE. O formato da string depende do comando dado.

Exemplo 1. Comandos Importantes do MySQL

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0
Os números são somente para fim de ilustração, os seus valores irão corresponder a query.

Nota: mysql_info() retorna um valor diferente de FALSE para os comandos INSERT ... VALUES somente se multiplas listas de valores são especificadas no comando.

Veja também mysql_affected_rows().

Anterior | Principal | Próxima
mysql_get_server_info | Acima | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4 , PHP 5)

mysql_insert_id -- Retorna o ID gerado da operação INSERT anterior

Descrição

int mysql_insert_id ( [resource link_identifier])

mysql_insert_id() returna o ID gerado para um campo AUTO_INCREMENT pela ultima query INSERT usando o link_identifier dado. Se link_identifier não é especificado, a ultima conexão aberta é usada.

mysql_insert_id() retorna 0 se a query anterior não gerou um valor AUTO_INCREMENT. Se você precisa salvar o valor para depois, tenha certeza de chamar mysql_insert_id() imediatamente depois da query que gerou o valor.

Nota: O valor da função SQL do MySQL LAST_INSERT_ID() sempre contém o mais recente valor AUTO_INCREMENT gerado, e não é reiniciado entre as query.

Atenção

mysql_insert_id() converte o tipo de retorno nativo do MySQL C API mysql_insert_id() para o tipo long (nomeado int no PHP). Se a sua coluna AUTO_INCREMENT tem um tipo BIGINT, o valor retornado por mysql_insert_id() será incorreto. Ao invés, use a função interna SQL do MySQL LAST_INSERT_ID() numa query SQL.

Exemplo 1. Exemplo mysql_insert_id

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Não pude conectar: " . mysql_error());
    mysql_select_db("mydb");

    mysql_query("INSERT INTO mytable (product) values ('kossu')");
    printf ("O ultimo registro incluído tem id %d\n", mysql_insert_id());
?>

Veja também mysql_query().

Anterior | Principal | Próxima
mysql_info | Acima | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4 , PHP 5)

mysql_list_dbs -- Lista os bancos de dados disponiveis o servidor do MySQL

Descrição

resource mysql_list_dbs ( [resource link_identifier])

mysql_list_dbs() irá retorna um ponteiro de resultado contendo os bancos de dados disponiveis do servidor MySQL atual. Use a função mysql_tablename() para atravessar este ponteiro de resultado, ou qualquer função para o resultado das tabelas como mysql_fetch_array().

Exemplo 1. Exemplo mysql_list_dbs()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

O exemplo acima deve produzir a seguinte saída:

database1
database2
database3
...

Nota: O codigo acima trabalha facil com mysql_fetch_row() ou outras funções similares.

Para compatibilidade com as versões anteriores mysql_listdbs() também pode ser usada. Esta função esta depreciada.

Veja também mysql_db_name().

Anterior | Principal | Próxima
mysql_insert_id | Acima | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4 , PHP 5)

mysql_list_fields -- Lista os campos de uma tabela

Descrição

resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier])

mysql_list_fields() retorna informação sobre a
tabela dada. Os argumentos são o banco de dados e o nome da tabela.
Um ponteiro de resultado é retornado o qual pode ser usado com
mysql_field_flags(),
mysql_field_len(),
mysql_field_name(), e
mysql_field_type().

Exemplo 1. Exemplo mysql_list_fields()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$fields = mysql_list_fields("database1", "table1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo mysql_field_name($fields, $i) . "\n";
}

O exemplo acima deve produzir a seguinte saída:

field1
field2
field3
...

Para compatibilidade com versões anteriores mysql_listfields() também pode ser usada. Esta função esta depreciada.

Nota: A função mysql_list_fields() esta obsoleta. É preferível usar mysql_query() para realizar uma SQL SHOW COLUMNS FROM table [LIKE 'name'].

Anterior | Principal | Próxima
mysql_list_dbs | Acima | mysql_list_processes


mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes -- Lista os processos MySQL

Descrição

resource mysql_list_processes ( [resource link_identifier])

mysql_list_processes() retorna um ponteiro de resultado descrevendo as threads atuais do servidor.

Exemplo 1. Exemplo mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
       $row["Command"], $row["Time"]);
}
mysql_free_result ($result);
?>

O exemplo acima deve produzir a seguinte saída:

1 localhost test Processlist 0
4 localhost mysql sleep 5

Veja também: mysql_thread_id()

Anterior | Principal | Próxima
mysql_list_fields | Acima | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4 , PHP 5)

mysql_list_tables -- Lista as tabelas em um banco de dados MySQL

Descrição

resource mysql_list_tables ( string database [, resource link_identifier])

mysql_list_tables() leva o nome de um banco de dados e retorna um ponteiro de resultado muito parecido com a função mysql_query(). Você pode usar a função mysql_tablename() para extrair os nomes atuais das tabela do ponteiro do resultado, ou qualquer outra função com o resultado de tabela como mysql_fetch_array().

O parametro database é o nome do banco de dados de onde obter a lista de tabelas. Se a função mysql_list_tables() falhar, retorna FALSE.

Para compatibilidade com versões anteriores, o apelido chamado mysql_listtables() pode ser usado. Esta depreciada e seu uso não é recomendado.

Nota: Esta função é obsoleta. Não use esta função. Use o comando SHOW TABLES FROM DATABASE ao invés.

Exemplo 1. Exemplo mysql_list_tables()

<?php
    $dbname = 'mysql_dbname';

    if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
        print 'Não pude conectar com o MySQL';
        exit;
    }

    $result = mysql_list_tables($dbname);

    if (!$result) {
        print "DB Error, não pude listar as tabelas\n";
        print 'MySQL Error: ' . mysql_error();
        exit;
    }

    while ($row = mysql_fetch_row($result)) {
        print "Table: $row[0]\n";
    }

    mysql_free_result($result);
?>

Veja também mysql_list_dbs() e mysql_tablename().

Anterior | Principal | Próxima
mysql_list_processes | Acima | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4 , PHP 5)

mysql_num_fields -- Retorna o número de campos no resulatdo

Descrição

int mysql_num_fields ( resource result)

mysql_num_fields() retorna o número de campos em um conjunto de resultado.

Veja também
mysql_select_db(),
mysql_query(),
mysql_fetch_field() e
mysql_num_rows().

Para compatibilidade com versões anteriores mysql_numfields() também pode ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_list_tables | Acima | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4 , PHP 5)

mysql_num_rows -- Retorna o número de linhas em um resultado

Descrição

int mysql_num_rows ( resource result)

mysql_num_rows() retorna o número de linhas em um resultado. Este comando é valido apenas para o SELECT. Para obter o número de linhas afetadas por INSERT, UPDATE ou DELETE, use mysql_affected_rows().

Exemplo 1. Exemplo mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Nota: Se você usar mysql_unbuffered_query(), mysql_num_rows() não irá retornar o valor correto até que todas as linhas do resultado sejam obtidas.

Veja também
mysql_affected_rows(),
mysql_connect(),
mysql_data_seek(),
mysql_select_db() e
mysql_query().

Para compatibilidade com versões anteriores mysql_numrows() também pode ser usada. Esta função está depreciada.

Anterior | Principal | Próxima
mysql_num_fields | Acima | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4 , PHP 5)

mysql_pconnect -- Abre uma conexão persistente com um servidor MySQL

Descrição

resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]])

Retorna um identificador de link persistente ao MySQL em caso de sucesso, ou FALSE se houver erro.

mysql_pconnect() estabelece uma conexão com o servidor MySQL. Os seguintes padrões são assumidos para os parametros opcionais que estiverem faltando: server = 'localhost:3306', username = nome do usuário que for dono do processo do servidor e password = password vazio. O parametro client_flags pode ser uma combinação das constantes MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE.

O parametro server pode também incluir um numero de porta. Ex: "hostname:port" ou um caminho para um socket ex: ":/path/to/socket" para o localhost.

Nota: Suporte a ":port" foi adicionado em 3.0B4.

Suporte a ":/path/to/socket" foi adicionado em 3.0.10.

mysql_pconnect() aje muito parecido com mysql_connect() com duas maiores diferenças.

Primeira,ao conectar, a função primeiro irá tentar encontrar um conexão persistente que já esteja aberta com o mesmo servidor, nome de usuário e senha. Se uma é encontrada, um identificador para ela será retornada ao invés de abrir uma nova conexão.

Segundo, a conexão com o servidor SQL não será fechada quando termina a execução do script. Ao invés, a conexão continuará aberta para uso futuro(mysql_close() não irá fechar conexões abertas por mysql_pconnect()).

O parametro opcional client_flags tornou-se disponivel no PHP 4.3.0.

Este tipo de conexão é portanto chamada 'persistente'.

Nota: Note que este tipo de conexão funciona somente se você esta usando o PHP como módulo. Veja a seção Persistent Database Connections para maiores informações.

Atenção

Usar conexões persistentes pode requerer alguns ajustes na sua configuração do Apache e MySQL para assegurar que você não ultrapasse o limite de conexões permitidos pelo MySQL.

Anterior | Principal | Próxima
mysql_num_rows | Acima | mysql_ping


mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping -- Pinga uma conexão ou reconecta se não houver conexão

Descrição

bool mysql_ping ( [resource link_identifier])

mysql_ping() confere se uma conexão com o servidor esta ou não funcionando. Se ela caiu, uma reconexão automatica é tentada. Esta função pode ser usada por scripts que permanecem ociosos por um grande tempo, para conferir uqando o servidor fechou ou não a conexão e reconectar se necessário. mysql_ping() returna TRUE se a conexão com o servidor esta funcionando, em outro caso FALSE.

Veja também mysql_thread_id() e mysql_list_processes().

Anterior | Principal | Próxima
mysql_pconnect | Acima | mysql_query


mysql_query

(PHP 3, PHP 4 , PHP 5)

mysql_query -- Realiza uma query MySQL

Descrição

resource mysql_query ( string query [, resource link_identifier])

mysql_query() envia uma query para o banco de dados ativo no servidor da conexão informada em link_identifier. Se o parâmetro link_identifier não é especificado, a ultima conexão aberta é usada. Se nenhuma conexão esta aberta, a função tenta estabelecer uma conexão como mysql_connect() seja chamada sem argumentos e usa-a. O resultado é guardado em buffer.

Nota: A string da query não deve terminar com ponto e virgula(;).

Somente para os comandos SELECT, SHOW, EXPLAIN ou DESCRIBE mysql_query() retorna um identificador de recurso ou FALSE se a query não foi executada corretamente. Para outros tipos de comandos SQL, mysql_query() retorna TRUE em caso de sucesso e FALSE em erro. Um valor não FALSE indica que a query foi legal e pode ser executada pelo servidor. Não indica nada sobre o número de linhas afetadas ou retornadas. É perfeitamente possível para uma query ser bem sucedida, mas não afetar linhas ou retornar linhas.

A seguinte query é sintaticamente invalida, assim mysql_query() falha e retorna FALSE:

Exemplo 1. Exemplo mysql_query()

<php
$result = mysql_query("SELECT * WHERE 1=1")
    or die("Query invalida: " . mysql_error());
?>

A seguinte query é semanticamente invalida se my_col não é uma coluna da tabela my_tbl, assim mysql_query() falha e retorna FALSE:

Exemplo 2. mysql_query()

<?php
$result = mysql_query("SELECT my_col FROM my_tbl")
    or die ("Query invalida: " . mysql_error());
?>

mysql_query() irá também falhar e retornar FALSE se você não tiver permissão para acessar a tabela(s) referida(s) pela query.

Assumindo que a query seja bem sucedida, você pode chamar mysql_num_rows() para achar quantas linhas foram retornadas para um comando SELECT ou mysql_affected_rows() para achar quantas linhas foram afetadas por um comando DELETE, INSERT, REPLACE, ou UPDATE.

Somente para os comandos SELECT,SHOW,DESCRIBE ou EXPLAIN, mysql_query() retorna um novo identificador de resultado que você pode passar para mysql_fetch_array() e outras funções que lidam com resultados de tabelas. Quando você terminou de usar o resultado você pode liberar os recursos usados chamando mysql_free_result(). Embora a memória será automaticamente liberada ao final da execução do script.

Veja também mysql_num_rows(),
mysql_affected_rows(),
mysql_unbuffered_query(),
mysql_free_result(),
mysql_fetch_array(),
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_result(),
mysql_select_db() e
mysql_connect().

Anterior | Principal | Próxima
mysql_ping | Acima | mysql_real_escape_string


mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string -- Escapa os caracteres especiais numa string para usar em um comando SQL, levando em conta o conjunto atual de caracteres.

Descrição

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier])

Esta função irá escapar os caracteres especiais em unescaped_string, levando em conta o atual conjunto de caracteres da conexão, assim é seguro coloca-la em mysql_query().

Nota: mysql_real_escape_string() não escapa % e _.

Exemplo 1. Exemplo mysql_real_escape_string()

<?php
$item = "Zak's and Derick's Laptop";
$escaped_item = mysql_real_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>

O exemplo acima deve produzir a seguinte saída:

Escaped string: Zak\'s and Derick\'s Laptop

Veja também mysql_escape_string() e mysql_character_set_name().

Anterior | Principal | Próxima
mysql_query | Acima | mysql_result


mysql_result

(PHP 3, PHP 4 , PHP 5)

mysql_result -- Retorna dados do resultado

Descrição

mixed mysql_result ( resource result, int row [, mixed field])

mysql_result() retorna o conteúdo de uma célula do resultado MySQL. O argumento field(campo) pode ser o índice do campo, o nome do campo, o a tabela ponto o nome do campo(tabela.campo). Se o nome da coluna usa apelido ('select foo as bar from...'), use o apelido ao invés do nome da coluna.

Quando trabalhando com um grande conjunto de resultado, você deve considerar o uso de uma das funções que retornam toda a linha(especificadas abaixo). Estas funções retornam o conteúdo de multiplas células em uma chamada de função, elas são MUITO mais rapidas do que mysql_result(). Também note que especificar um índice do campo é muito mais rapido do que especificar o nome do campo ou tabela.campo.

Chamadas a mysql_result() não devem ser misturadas com chamadas a outras funções que lidam com o conjunto de resultados.

Exemplo 1. Exemplo mysql_result()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
 or die("Could not connect: " . mysql_error());
$result = mysql_query("SELECT name FROM work.employee")
 or die("Could not query: . mysql_error());
echo mysql_result($result,2); // outputs third employee's name
mysql_close($link);
?>

Alternativas de alta performance recomendadas:
mysql_fetch_row(),
mysql_fetch_array(),
mysql_fetch_assoc() e
mysql_fetch_object().

Anterior | Principal | Próxima
mysql_real_escape_string | Acima | mysql_select_db


mysql_select_db

(PHP 3, PHP 4 , PHP 5)

mysql_select_db -- Seleciona um banco de dados MySQL

Descrição

bool mysql_select_db ( string database_name [, resource link_identifier])

Retorna TRUE em caso de sucesso ou FALSE em falhas.

mysql_select_db() define o banco de dados ativo no servidor que é associado ao identificador de conexão(link_identifier) especificado. Se nenhum identificador de conexão é especificado, a ultima conexão aberta é assumida. Se nenhuma conexão esta aberta, a função irá tentar abrir uma conexão como se mysql_connect() fosse chamada sem argumentos e usa-la.

Todas as próximas chamadas a mysql_query() serão feitas no banco de dados ativo.

Exemplo 1. Exemplo mysql_select_db()

<?php
$lnk = mysql_connect('localhost', 'mysql_user', 'mysql_password')
  or die ('Não foi possível conectar: ' . mysql_error());

// Faz "db" ser o banco de dados atual
mysql_select_db('db', $lnk) or die ('Não foi possível usar db: ' . mysql_error());
?>

Veja também
mysql_connect(),
mysql_pconnect() e
mysql_query().

Para compatibilidade com versões anteriores mysql_selectdb() também pode ser usada. Esta função esta obsoleta.

Anterior | Principal | Próxima
mysql_result | Acima | mysql_stat


mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat -- Retorna o status atual do sistema

Descrição

string mysql_stat ( [resource link_identifier])

mysql_stat() returna o status atual do servidor.

Nota: mysql_stat() atualmente retorna somente o satus para uptime, threads, queries, open tables, flush tables e queries por segundos. Para uma lista completa de outras variáveis de staus você tem que usar o comando SQL SHOW STATUS.

Exemplo 1. Exemplo mysql_stat()

<?php
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

O exemplo acima deve produzir a seguinte saída:

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

Anterior | Principal | Próxima
mysql_select_db | Acima | mysql_tablename


mysql_tablename

(PHP 3, PHP 4 , PHP 5)

mysql_tablename -- Retorna o nome da tabela do campo

Descrição

string mysql_tablename ( resource result, int i)

mysql_tablename() usa um ponteiro de resultado retornado por mysql_list_tables() ou um índice inteiro e retorna o nome da tabela A função mysql_num_rows() pode ser usada para determinar o número de tabelas no ponteiro do resultado. Use a função mysql_tablename() para transpor o resultado, ou qualquer função para pegar o resultado como mysql_fetch_array().

Exemplo 1. Exemplo mysql_tablename()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");
    $result = mysql_list_tables("mydb");

    for ($i = 0; $i < mysql_num_rows($result); $i++)
        printf ("Table: %s\n", mysql_tablename($result, $i));

    mysql_free_result($result);
?>

Veja também mysql_list_tables().

Anterior | Principal | Próxima
mysql_stat | Acima | mysql_thread_id


mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id -- Returna o ID da thread atual

Descrição

int mysql_thread_id ( [resource link_identifier])

mysql_thread_id() retorna o ID da thread atual. Se a conexão for perdida e você reconectar com mysql_ping(), o ID da thread irá muda. Isto indica que você não deve guardar o pegar ID e guarda-lo para depois. Você deve pega-lo quando você precisar dele.

Exemplo 1. Exemplo mysql_thread_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf ("current thread id is %d\n", $thread_id);
}
?>

O exemplo acima deve produzir a seguinte saída:

current thread id is 73

Veja também mysql_ping() e mysql_list_processes().

Anterior | Principal | Próxima
mysql_tablename | Acima | mysql_unbuffered_query


mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query -- Envia uma query para o MySQL, sem retornar e colocar em buffer as linhas do resultado

Descrição

resource mysql_unbuffered_query ( string query [, resource link_identifier])

mysql_unbuffered_query() envia uma query SQL para MySQL, sem retornar e colocar em buffer as linhas do resultado automaticamente, como mysql_query() faz. por um lado, isto salva uma quantidade considerável de memória em query que produzem um resultado grandes. por outro lado, você pode começãr a trbalhar com o resultado imediatamente após a primeira linha ser retornada: você não tem que esperar que toda a query SQL seja realizada. Quando usar multiplas conexões com o banco de dados, você deve especificar o parametro opcional link_identifier.

Nota: Os beneficios de mysql_unbuffered_query() vem com um custo: você não pode usar mysql_num_rows() e mysql_data_seek() no resultado retornado por mysql_unbuffered_query(). Você também tem que pegar todas as linhas de uma query SQL sem buffer antes de poder enviar uma nova query SQL para o MySQL.

Veja também mysql_query().

Anterior | Principal | Próxima
mysql_thread_id | Acima | Improved MySQL Extension


Improved MySQL Extension

Manual do PHP
Anterior Próxima

LXV. Improved MySQL Extension

Introdução

The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at http://www.mysql.com/

Documentation for MySQL can be found at http://dev.mysql.com/doc/.

Parts of this documentation included from MySQL manual with permissions of MySQL AB.

Requisitos

In order to have these functions available, you must compile PHP with support for the mysqli extension.

Nota: The mysqli extension is designed to work with the version 4.1.2 or above of MySQL. For previous versions, please see the MySQL extension documentation.

Instalação

To install the mysqli extension for PHP, use the --with-mysqli=mysql_config_path/mysql_config configuration option where mysql_config_path represents the location of the mysql_config program that comes with MySQL versions greater than 4.1.

If you would like to install the mysql extension along with the mysqli extension you have to use the same client library to avoid any conflicts.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. MySQLi Configuration Options

Name | Default | Changeable
mysqli.max_links | "-1" | PHP_INI_SYSTEM
mysqli.default_port | NULL | PHP_INI_ALL
mysqli.default_socket | NULL | PHP_INI_ALL
mysqli.default_host | NULL | PHP_INI_ALL
mysqli.default_user | NULL | PHP_INI_ALL
mysqli.default_pw | NULL | PHP_INI_ALL

For further details and definitions of the above PHP_INI_* constants, see the chapter on configuration changes.

Breve descrição das diretivas de configuração.

mysqli.max_links integer

The maximum number of MySQL connections per process.

mysqli.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

mysqli.default_socket string

The default socket name to use when connecting to a local database server if no other socket name is specified.

mysqli.default_host string

The default server host to use when connecting to the database server if no other host is specified. Doesn't apply in safe mode.

mysqli.default_user string

The default user name to use when connecting to the database server if no other name is specified. Doesn't apply in safe mode.

mysqli.default_password string

The default password to use when connecting to the database server if no other password is specified. Doesn't apply in safe mode.

Classes Predefinidas

mysqli

Represents a connection between PHP and a MySQL database.

Construtores

  • mysqli() - construct a new mysqli object

Metodos

  • autocommit() - turns on or off auto-commiting database modifications

  • change_user() - changes the user of the specified database connection

  • character_set_name - returns the default character set for the database connection

  • close - closes a previously opened connection

  • commit - commits the current transaction

  • connect - opens a new connection to MySQL database server

  • debug - performs debugging operations

  • dump_debug_info - dumps debug information

  • get_client_info - returns client version

  • get_host_info - returns type of connection used

  • get_server_info - returns version of the MySQL server

  • get_server_version - returns version of the MySQL server

  • init - initializes mysqli object

  • info - retrieves information about the most recently executed query

  • kill - asks the server to kill a mysql thread

  • multi_query - performs multiple queries

  • more_results - check if more results exists from currently executed multi-query

  • next_result - reads next result from currently executed multi-query

  • options - set options

  • ping - pings a server connection or reconnects if there is no connection

  • prepare - prepares a SQL query

  • query - performs a query

  • real_connect - attempts to open a connection to MySQL database server

  • escape_string - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

  • rollback - rolls back the current transaction

  • select_db - selects the default database

  • ssl_set - sets ssl parameters

  • stat - gets the current system status

  • stmt_initInitializes a statement for use with mysqli_stmt_prepare

  • store_result - transfers a resultset from last query

  • use_result - transfers an unbuffered resultset from last query

  • thread-safe - returns whether thread safety is given or not

Propriedades

  • affected_rows - gets the number of affected rows in a previous MySQL operation

  • errno - returns the error code for the most recent function call

  • error - returns the error string for the most recent function call

  • field_count - returns the number of columns for the most recent query

  • host_info - returns a string representing the type of connection used

  • info - retrieves information about the most recently executed query

  • insert-id - returns the auto generated id used in the last query

  • protocol_version - returns the version of the MySQL protocol used

  • sqlstate - returns a string containing the SQLSTATE error code for the last error

  • thread_id - returns the thread ID for the current connection

  • warning-count - returns the number of warnings generated during execution of the previous SQL statement

mysqli_stmt

Represents a prepared statement.

Metodos

  • bind_param - Binds variables to a prepared statement

  • bind_result - Binds variables to a prepared statement for result storage

  • close - Closes a prepared statement

  • data-seek - Seeks to an arbitrary row in a statement result set

  • execute - Executes a prepared statement

  • fetch - Fetches result from a prepared statement into bound variables

  • free_result - Frees stored result memory for the given statement handle

  • result_metadata - Retrieves a resultset from a prepared statement for metadata information

  • prepare - prepares a SQL query

  • send_long_data - Sends data in chunks

  • store_result - Buffers complete resultset from a prepared statement

Propriedades

  • affected_rows - Returns affected rows from last statement execution

  • errno - Returns errorcode for last statement function

  • errno - Returns errormessage for last statement function

  • param_count - Returns number of parameter for a given prepare statement

  • sqlstate - returns a string containing the SQLSTATE error code for the last statement function

mysqli_result

Represents the result set obtained from a query against the database.

Metodos

  • close - closes resultset

  • data_seek - moves internal result pointer

  • fetch_field - gets column information from a resultset

  • fetch_fields - gets information for all columns from a resulset

  • fetch_field_direct - gets column information for specified column

  • fetch_array - fetches a result row as an associative array, a numeric array, or both.

  • fetch_assoc - fetches a result row as an associative array

  • fetch_object - fetches a result row as an object

  • fetch_row - gets a result row as an enumerated array

  • close - frees result memory

  • field_seek - set result pointer to a specified field offset

Propriedades

  • current_field - returns offset of current fieldpointer

  • field_count - returns number of fields in resultset

  • lengths - returns an array of columnlengths

  • num_rows - returns number of rows in resultset

Constantes Predefinidas

Tabela 2. MySQLi Constants

Name | Description
MYSQLI_READ_DEFAULT_GROUP (integer) | Read options from the named group from `my.cnf' or the file specified with MYSQLI_READ_DEFAULT_FILE
MYSQLI_READ_DEFAULT_FILE (integer) | Read options from the named option file instead of from my.cnf
MYSQLI_OPT_CONNECT_TIMEOUT (integer) | Connect timeout in seconds
MYSQLI_OPT_LOCAL_INFILE (integer) | Enables command LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND (integer) | Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.
MYSQLI_CLIENT_SSL (integer) | Use SSL (encrypted protocol). This option should not be set by application programs; it is set internally in the MySQL client library
MYSQLI_CLIENT_COMPRESS (integer) | Use compression protocol
MYSQLI_CLIENT_INTERACTIVE (integer) | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection. The client's session wait_timeout variable will be set to the value of the session interactive_timeout variable.
MYSQLI_CLIENT_IGNORE_SPACE (integer) | Allow spaces after function names. Makes all functions names reserved words.
MYSQLI_CLIENT_NO_SCHEMA (integer) | Don't allow the db_name.tbl_name.col_name syntax.
MYSQLI_CLIENT_MULTI_QUERIES (integer) |
MYSQLI_STORE_RESULT (integer) | For using buffered resultsets
MYSQLI_USE_RESULT (integer) | For using unbuffered resultsets
MYSQLI_ASSOC (integer) | Columns are returned into the array having the fieldname as the array index.
MYSQLI_NUM (integer) | Columns are returned into the array having an enumerated index.
MYSQLI_BOTH (integer) | Columns are returned into the array having both a numerical index and the fieldname as the associative index.
MYSQLI_NOT_NULL_FLAG (integer) | Indicates that a field is defined as NOT NULL
MYSQLI_PRI_KEY_FLAG (integer) | Field is part of a primary index
MYSQLI_UNIQUE_KEY_FLAG (integer) | Field is part of an unique index.
MYSQLI_MULTIPLE_KEY_FLAG (integer) | Field is part of an index.
MYSQLI_BLOB_FLAG (integer) | Field is defined as BLOB
MYSQLI_UNSIGNED_FLAG (integer) | Field is defined as UNSIGNED
MYSQLI_ZEROFILL_FLAG (integer) | Field is defined as ZEROFILL
MYSQLI_AUTO_INCREMENT_FLAG (integer) | Field is defined as AUTO_INCREMENT
MYSQLI_TIMESTAMP_FLAG (integer) | Field is defined as TIMESTAMP
MYSQLI_SET_FLAG (integer) | Field is defined as SET
MYSQLI_NUM_FLAG (integer) | Field is defined as NUMERIC
MYSQLI_PART_KEY_FLAG (integer) | Field is part of an multi-index
MYSQLI_GROUP_FLAG (integer) | Field is part of GROUP BY
MYSQLI_TYPE_DECIMAL (integer) | Field is defined as DECIMAL
MYSQLI_TYPE_TINY (integer) | Field is defined as TINYINT
MYSQLI_TYPE_SHORT (integer) | Field is defined as INT
MYSQLI_TYPE_LONG (integer) | Field is defined as INT
MYSQLI_TYPE_FLOAT (integer) | Field is defined as FLOAT
MYSQLI_TYPE_DOUBLE (integer) | Field is defined as DOUBLE
MYSQLI_TYPE_NULL (integer) | Field is defined as DEFAULT NULL
MYSQLI_TYPE_TIMESTAMP (integer) | Field is defined as TIMESTAMP
MYSQLI_TYPE_LONGLONG (integer) | Field is defined as BIGINT
MYSQLI_TYPE_INT24 (integer) | Field is defined as MEDIUMINT
MYSQLI_TYPE_DATE (integer) | Field is defined as DATE
MYSQLI_TYPE_TIME (integer) | Field is defined as TIME
MYSQLI_TYPE_DATETIME (integer) | Field is defined as DATETIME
MYSQLI_TYPE_YEAR (integer) | Field is defined as YEAR
MYSQLI_TYPE_NEWDATE (integer) | Field is defined as DATE
MYSQLI_TYPE_ENUM (integer) | Field is defined as ENUM
MYSQLI_TYPE_SET (integer) | Field is defined as SET
MYSQLI_TYPE_TINY_BLOB (integer) | Field is defined as TINYBLOB
MYSQLI_TYPE_MEDIUM_BLOB (integer) | Field is defined as MEDIUMBLOB
MYSQLI_TYPE_LONG_BLOB (integer) | Field is defined as LONGBLOB
MYSQLI_TYPE_BLOB (integer) | Field is defined as BLOB
MYSQLI_TYPE_STRING (integer) | Field is defined as VARCHAR
MYSQLI_TYPE_CHAR (integer) | Field is defined as CHAR
MYSQLI_TYPE_GEOMETRY (integer) | Field is defined as GEOMETRY
MYSQLI_NEED_DATA (integer) | More data available for bind variable
MYSQLI_NO_DATA (integer) | No more data available for bind variable

Examples

All Examples in the MySQLI documentation use the world database from MySQL AB. The world database can be found at http://www.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Índice
mysqli_affected_rows -- Gets the number of affected rows in a previous MySQL operation
mysqli_autocommit -- Turns on or off auto-commiting database modifications
mysqli_bind_param -- Alias for mysqli_stmt_bind_param()
mysqli_bind_result -- Alias for mysqli_stmt_bind_result()
mysqli_change_user -- Changes the user of the specified database connection
mysqli_character_set_name -- Returns the default character set for the database connection
mysqli_client_encoding -- Alias of mysqli_character_set_name()
mysqli_close -- Closes a previously opened database connection
mysqli_commit -- Commits the current transaction
mysqli_connect_errno -- Returns the error code from last connect call
mysqli_connect_error -- Returns a string description of the last connect error
mysqli_connect -- Open a new connection to the MySQL server
mysqli_data_seek -- Adjusts the result pointer to an arbitary row in the result
mysqli_debug -- Performs debugging operations
mysqli_disable_reads_from_master --
mysqli_disable_rpl_parse --
mysqli_dump_debug_info -- Dump debugging information into the log
mysqli_embedded_connect -- Open a connection to an embedded mysql server.
mysqli_enable_reads_from_master --
mysqli_enable_rpl_parse --
mysqli_errno -- Returns the error code for the most recent function call
mysqli_error -- Returns a string description of the last error
mysqli_escape_string -- Alias of mysqli_real_escape_string()
mysqli_execute -- Alias for mysqli_stmt_execute()
mysqli_fetch_array -- Fetch a result row as an associative, a numeric array, or both.
mysqli_fetch_assoc -- Fetch a result row as an associative array
mysqli_fetch_field_direct -- Fetch meta-data for a single field
mysqli_fetch_field -- Returns the next field in the result set
mysqli_fetch_fields -- Returns an array of objects representing the fields in a result set
mysqli_fetch_lengths -- Returns the lengths of the columns of the current row in the result set
mysqli_fetch_object -- Returns the current row of a result set as an object
mysqli_fetch_row -- Get a result row as an enumerated array
mysqli_fetch -- Alias for mysqli_stmt_fetch()
mysqli_field_count -- Returns the number of columns for the most recent query
mysqli_field_seek -- Set result pointer to a specified field offset
mysqli_field_tell -- Get current field offset of a result pointer
mysqli_free_result -- Frees the memory associated with a result
mysqli_get_client_info -- Returns the MySQL client version as a string
mysqli_get_client_version -- Get MySQL client info.
mysqli_get_host_info -- Returns a string representing the type of connection used
mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()
mysqli_get_proto_info -- Returns the version of the MySQL protocol used
mysqli_get_server_info -- Returns the version of the MySQL server
mysqli_get_server_version -- Returns the version of the MySQL server as an integer
mysqli_info -- Retrieves information about the most recently executed query
mysqli_init -- Initializes MySQLi and returns an object for use with mysqli_real_connect
mysqli_insert_id -- Returns the auto generated id used in the last query
mysqli_kill -- Asks the server to kill a MySQL thread
mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup.
mysqli_more_results -- Check if there any more query results from a multi query.
mysqli_multi_query -- Performs a query on the database
mysqli_next_result -- prepare next result from multi_query.
mysqli_num_fields -- Get the number of fields in a result
mysqli_num_rows -- Gets the number of rows in a result
mysqli_options -- set options
mysqli_param_count -- Alias for mysqli_stmt_param_count()
mysqli_ping -- Pings a server connection, or tries to reconnect if the connection has gone down.
mysqli_prepare -- Prepare a SQL statement for execution
mysqli_query -- Performs a query on the database
mysqli_real_connect -- Opens a connection to a mysql server
mysqli_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
mysqli_real_query -- Execute an SQL query
mysqli_report -- enables or disables internal report functions
mysqli_rollback -- Rolls back current transaction
mysqli_rpl_parse_enabled --
mysqli_rpl_probe --
mysqli_rpl_query_type --
mysqli_select_db -- Selects the default database for database queries
mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()
mysqli_send_query --
mysqli_server_end --
mysqli_server_init -- Initialize embedded server.
mysqli_set_opt -- Alias of mysqli_options()
mysqli_sqlstate -- Returns the SQLSTATE error from previous MySQL operation.
mysqli_ssl_set -- Used for establishing secure connections using SSL.
mysqli_stat -- Gets the current system status
mysqli_stmt_affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement
mysqli_stmt_bind_param -- Binds variables to a prepared statement as parameters
mysqli_stmt_bind_result -- Binds variables to a prepared statement for result storage
mysqli_stmt_close -- Closes a prepared statement
mysqli_stmt_data_seek -- Seeks to an arbitray row in statement result set
mysqli_stmt_errno -- Returns the error code for the most recent statement call
mysqli_stmt_error -- Returns a string description for last statement error
mysqli_stmt_execute -- Executes a prepared Query
mysqli_stmt_fetch -- Fetch results from a prepared statement into the bound variables
mysqli_stmt_free_result -- Frees stored result memory for the given statement handle
mysqli_stmt-init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare
mysqli_stmt_num_rows -- Return the number of rows in statements result set.
mysqli_stmt_param_count -- Returns the number of parameter for the given statement
mysqli_stmt_prepare -- Prepare a SQL statement for execution
mysqli_stmt_result_metadata -- returns result set metadata from a prepared statement
mysqli_stmt_send_long_data -- Send data in blocks
mysqli_stmt_sqlstate -- returns SQLSTATE error from previous statement operation
mysqli_stmt_store_result -- Transfers a result set from a prepared statement
mysqli_store_result -- Transfers a result set from the last query
mysqli_thread_id -- Returns the thread ID for the current connection
mysqli_thread_safe -- Returns whether thread safety is given or not
mysqli_use_result -- Initiate a result set retrieval
mysqli_warning_count -- Returns the number of warnings from the last query for the given link

Anterior | Principal | Próxima
mysql_unbuffered_query | Acima | mysqli_affected_rows


mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Gets the number of affected rows in a previous MySQL operation

Description

Procedural style:

mixed mysqli_affected_rows ( object link)

Object oriented style (property):

class mysqli {

mixed affected_rows

}

mysqli_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If the last query was invalid, this function will return -1.

Nota: For SELECT statements mysqli_affected_rows() works like mysqli_num_rows().

The mysqli_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the mysqli_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error.

Nota: If the number of affected rows is greater than maximal int value, the number of affected rows will be returned as a string.

See also

mysqli_num_rows(), mysqli_info().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* update rows */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);

/* delete rows */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

/* select all rows */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Anterior | Principal | Próxima
Improved MySQL Extension | Acima | mysqli_autocommit


mysqli_autocommit

(PHP 5)

mysqli_autocommit

(no version information, might be only in CVS)

mysqli->auto_commit -- Turns on or off auto-commiting database modifications

Description

Procedural style:

bool mysqli_autocommit ( object link, bool mode)

Object oriented style (method)

class mysqli {

bool auto_commit ( bool mode)

}

mysqli_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link object.

Nota: mysqli_autocommit() doesn't work with non transactional table types (like MyISAM or ISAM).

To determine the current state of autocommit use the SQL command 'SELECT @@autocommit'.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_commit(), mysqli_rollback().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Autocommit is 1

Anterior | Principal | Próxima
mysqli_affected_rows | Acima | mysqli_bind_param


mysqli_bind_param

mysqli_bind_param -- Alias for mysqli_stmt_bind_param()

Description

This function is an alias of mysqli_stmt_bind_param(). For a detailled descripton see description of mysqli_stmt_bind_param().

Nota: mysqli_bind_param() is deprecated and will be removed.

See also

mysqli_stmt_bind_param()

Anterior | Principal | Próxima
mysqli_autocommit | Acima | mysqli_bind_result


mysqli_bind_result

mysqli_bind_result -- Alias for mysqli_stmt_bind_result()

Description

This function is an alias of mysqli_stmt_bind_result(). For a detailled descripton see description of mysqli_stmt_bind_result().

Nota: mysqli_bind_result() is deprecated and will be removed.

See also

mysqli_stmt_bind_result()

Anterior | Principal | Próxima
mysqli_bind_param | Acima | mysqli_change_user


mysqli_change_user

(PHP 5)

mysqli_change_user

(no version information, might be only in CVS)

mysqli->change_user -- Changes the user of the specified database connection

Description

Procedural style:

bool mysqli_change_user ( object link, string user, string password, string database)

Object oriented style (method):

class mysqli {

bool change_user ( string user, string password, string database)

}

mysqli_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

If desired, the NULL value may be passed in place of the database parameter resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Nota: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Return Values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also:

mysqli_connect() mysqli_select_db()

Example

Exemplo 1. Object oriented style

<?php

/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
$mysqli->query("SET @a:=1");

/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
mysqli_query($link, "SET @a:=1");

/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database: %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Default database: world
Value of variable a is NULL

Anterior | Principal | Próxima
mysqli_bind_result | Acima | mysqli_character_set_name


mysqli_character_set_name

(PHP 5)

mysqli_character_set_name

(no version information, might be only in CVS)

mysqli->character_set_name -- Returns the default character set for the database connection

Description

Procedural style:

string mysqli_character_set_name ( object link)

Object oriented style (method):

class mysqli {

string character_set_name ( void )

}

Returns the current character set for the database connection specified by the link parameter.

Return values

The default character set for the current connection

See also

mysqli_client_encoding(). mysqli_real_escape_string().

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);
?>

The above examples would be produce the following output:

Current character set is latin1_swedish_ci

Anterior | Principal | Próxima
mysqli_change_user | Acima | mysqli_client_encoding


mysqli_client_encoding

mysqli_client_encoding -- Alias of mysqli_character_set_name()

Description

This function is an alias of mysqli_character_set_name(). For a detailled descripton see description of mysqli_character_set_name().

See also

mysqli_client_encoding(). mysqli_real_escape_string().

Anterior | Principal | Próxima
mysqli_character_set_name | Acima | mysqli_close


mysqli_close

(PHP 5)

mysqli_close

(no version information, might be only in CVS)

mysqli->close -- Closes a previously opened database connection

Description

Procedural style:

bool mysqli_close ( object link)

Object oriented style (method):

class mysqli {

bool close ( void )

}

The mysqli_close() function closes a previously opened database connection specified by the link parameter.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_connect(),
mysqli_init(),
mysqli_real_connect().

Anterior | Principal | Próxima
mysqli_client_encoding | Acima | mysqli_commit


mysqli_commit

(PHP 5)

mysqli_commit

(no version information, might be only in CVS)

mysqli->commit -- Commits the current transaction

Description

Procedural style:

bool mysqli_commit ( object link)

Object oriented style (method)

class mysqli {

bool commit ( void )

}

Commits the current transaction for the database connection specified by the link parameter.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_autocommit(), mysqli_rollback().

Examples

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
$mysqli->commit();

/* drop table */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* set autocommit to off */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Insert some values */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
mysqli_commit($link);

/* close connection */
mysqli_close($link);
?>

Anterior | Principal | Próxima
mysqli_close | Acima | mysqli_connect_errno


mysqli_connect_errno

(PHP 5)

mysqli_connect_errno -- Returns the error code from last connect call

Description

int mysqli_connect_errno ( void )

The mysqli_connect_errno() function will return the last error code number for last call to mysqli_connect(). If no errors have occured, this function will return zero.

Nota: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value for the last call to mysqli_connect(), if it failed. zero means no error occurred.

See also

mysqli_connect(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Exemplo 1. mysqli_connect_errno sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Errorcode: %d\n", mysqli_connect_errno());
}
?>

Anterior | Principal | Próxima
mysqli_commit | Acima | mysqli_connect_error


mysqli_connect_error

(PHP 5)

mysqli_connect_error -- Returns a string description of the last connect error

Description

string mysqli_connect_error ( void )

The mysqli_connect_error() function is identical to the corresponding mysqli_connect_errno() function in every way, except instead of returning an integer error code the mysqli_connect_error() function will return a string representation of the last error to occur for the last mysqli_connect() call. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_connect(),
mysqli_connect_errno(),
mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Exemplo 1. mysqli_connect_error sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
}
?>

Anterior | Principal | Próxima
mysqli_connect_errno | Acima | mysqli_connect


mysqli_connect

(PHP 5)

mysqli_connect

(no version information, might be only in CVS)

mysqli() -- Open a new connection to the MySQL server

Description

Procedural style

object mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

Object oriented style (constructor):

class mysqli {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

}

The mysqli_connect() function attempts to open a connection to the MySQL Server running on host which can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. If successful, the mysqli_connect() will return an object representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MySQL server. If the password is not provided (the NULL value is passed), the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

The dbname parameter if provided will specify the default database to be used when performing queries.

The port and socket parameters are used in conjunction with the host parameter to further control how to connect to the database server. The port parameter specifies the port number to attempt to connect to the MySQL server on, while the socket parameter specifies the socket or named pipe that should be used.

Nota: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

Return values

Returns a object which represents the connection to a MySQL Server or FALSE if the connection failed.

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Host information: Localhost via UNIX socket

Anterior | Principal | Próxima
mysqli_connect_error | Acima | mysqli_data_seek


mysqli_data_seek

(PHP 5)

mysqli_data_seek

(no version information, might be only in CVS)

result->data_seek -- Adjusts the result pointer to an arbitary row in the result

Description

Procedural style:

bool mysqli_data_seek ( object result, int offset)

Object oriented style (method):

class result {

bool data_seek ( int offset)

}

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

Nota: This function can only be used with unbuffered results attained from the use of the mysqli_store_result() or mysqli_query() functions.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_store_result(),
mysqli_fetch_row(),
mysqli_num_rows().

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query( $query)) {

    /* seek to row no. 400 */
    $result->data_seek(399);

    /* fetch row */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

City: Benin City  Countrycode: NGA

Anterior | Principal | Próxima
mysqli_connect | Acima | mysqli_debug


mysqli_debug

(PHP 5)

mysqli_debug -- Performs debugging operations

Description

void mysqli_debug ( string debug)

The mysqli_debug() function is used to perform debugging operations using the Fred Fish debugging library. The debug parameter is a string representing the debugging operation to perform.

Nota: To use the mysqli_debug() function you must complile the MySQL client library to support debugging.

Return values

mysqli_debug() doesn't return any value.

See also

mysqli_dump_debug_info(), mysqli_report()

Example

Exemplo 1. Generating a Trace File

<?php

/* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
mysqli_debug("d:t:0,/tmp/client.trace");

?>

Anterior | Principal | Próxima
mysqli_data_seek | Acima | mysqli_disable_reads_from_master


mysqli_disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master --

Description

void mysqli_disable_reads_from_master ( resource link)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_debug | Acima | mysqli_disable_rpl_parse


mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parse --

Description

void mysqli_disable_rpl_parse ( object link)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_disable_reads_from_master | Acima | mysqli_dump_debug_info


mysqli_dump_debug_info

(PHP 5)

mysqli_dump_debug_info

(no version information, might be only in CVS)

mysqli->dump_debug_info -- Dump debugging information into the log

Description

bool mysqli_dump_debug_info ( object link)

This function is designed to be executed by an user with the SUPER privlege and is used to dump debugging information into the log for the MySQL Server relating to the connection specified by the link parameter.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_debug().

Anterior | Principal | Próxima
mysqli_disable_rpl_parse | Acima | mysqli_embedded_connect


mysqli_embedded_connect

(PHP 5)

mysqli_embedded_connect -- Open a connection to an embedded mysql server.

Description

object mysqli_embedded_connect ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_dump_debug_info | Acima | mysqli_enable_reads_from_master


mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_master --

Description

void mysqli_enable_reads_from_master ( object link)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_embedded_connect | Acima | mysqli_enable_rpl_parse


mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parse --

Description

void mysqli_enable_rpl_parse ( object link)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_enable_reads_from_master | Acima | mysqli_errno


mysqli_errno

(PHP 5)

mysqli_errno

(no version information, might be only in CVS)

mysqli->errno -- Returns the error code for the most recent function call

Description

Procedural style:

int mysqli_errno ( object link)

Object oriented style (property):

class mysqli {

int errno

}

The mysqli_errno() function will return the last error code for the most recent MySQLi function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

Nota: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value for the last call, if it failed. zero means no error occurred.

See also

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_error(),
mysqli_sqlstate()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errorcode: %d\n", $mysqli->errno);
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errorcode: %d\n", mysqli_errno($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Errorcode: 1193

Anterior | Principal | Próxima
mysqli_enable_rpl_parse | Acima | mysqli_error


mysqli_error

(PHP 5)

mysqli_error -- Returns a string description of the last error

Description

Procedural style:

string mysqli_error ( object link)

Object oriented style (property)

class mysqli {

string error

}

The mysqli_error() function is identical to the corresponding mysqli_errno() function in every way, except instead of returning an integer error code the mysqli_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_sqlstate()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errormessage: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Errormessage: Unknown system variable 'a'

Anterior | Principal | Próxima
mysqli_errno | Acima | mysqli_escape_string


mysqli_escape_string

mysqli_escape_string -- Alias of mysqli_real_escape_string()

Description

This function is an alias of mysqli_real_escape_string().

Anterior | Principal | Próxima
mysqli_error | Acima | mysqli_execute


mysqli_execute

mysqli_execute -- Alias for mysqli_stmt_execute()

Description

This function is an alias of mysqli_stmt_execute(). For a detailled descripton see description of mysqli_stmt_execute().

Nota: mysqli_execute() is deprecated and will be removed.

See also

mysqli_stmt_execute()

Anterior | Principal | Próxima
mysqli_escape_string | Acima | mysqli_fetch_array


mysqli_fetch_array

(PHP 5)

mysqli_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- Fetch a result row as an associative, a numeric array, or both.

Description

Procedural style:

mixed mysqli_fetch_array ( object result [, int resulttype])

Object oriend style (method):

class result {

mixed fetch_array ( [int resulttype])

}

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

mysqli_fetch_array() is an extended version of the mysqli_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the mysqli_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. By default the mysqli_fetch_array() function will assume MYSQLI_BOTH for this parameter.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

mysqli_fetch_assoc(),
mysqli_fetch_row(),
mysqli_fetch_object().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
$result->close();

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Anterior | Principal | Próxima
mysqli_execute | Acima | mysqli_fetch_assoc


mysqli_fetch_assoc

(PHP 5)

mysqli_fetch_assoc

(no version information, might be only in CVS)

mysqli->fetch_assoc -- Fetch a result row as an associative array

Description

Procedural style:

array mysqli_fetch_assoc ( object result)

Object oriend style (method):

class result {

array fetch_assoc ( void )

}

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The mysqli_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

mysqli_fetch_array(),
mysqli_fetch_row(),
mysqli_fetch_object().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Anterior | Principal | Próxima
mysqli_fetch_array | Acima | mysqli_fetch_field_direct


mysqli_fetch_field_direct

(PHP 5)

mysqli_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct -- Fetch meta-data for a single field

Description

Procedural style:

mixed mysqli_fetch_field_direct ( object result, int fieldnr)

Object oriented style (method):

class result {

mixed fetch_field_direct ( int fieldnr)

}

mysqli_fetch_field_direct() returns an object which contains field definition informations from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Return values

Returns an object which contains field definition informations or FALSE if no field information for specified fieldnr is available.

Tabela 1. Object attributes

Attribute | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_fields()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Anterior | Principal | Próxima
mysqli_fetch_assoc | Acima | mysqli_fetch_field


mysqli_fetch_field

(PHP 5)

mysqli_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Returns the next field in the result set

Description

Procedural style:

mixed mysqli_fetch_field ( object result)

Object oriented style (method):

class result {

mixed fetch_field ( void )

}

The mysqli_fetch_field() returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set. mysqli_fetch_field() returns FALSE when no more fields are left.

Return values

Returns an object which contains field definition informations or FALSE if no field information is available.

Tabela 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_field_seek()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Anterior | Principal | Próxima
mysqli_fetch_field_direct | Acima | mysqli_fetch_fields


mysqli_fetch_fields

(PHP 5)

mysqli_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields -- Returns an array of objects representing the fields in a result set

Description

Procedural Style:

mixed mysqli_fetch_fields ( object result)

Object oriented style (method):

class result {

mixed fetch_fields ( void )

}

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.

Return values

Returns an array of objects which contains field definition informations or FALSE if no field information is available.

Tabela 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_field_direct()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    $finfo = $result->fetch_fields();

    for ($i=0; $i < count($finfo); $i++) {
        printf("Name:     %s\n", $finfo[$i]->name);
        printf("Table:    %s\n", $finfo[$i]->table);
        printf("max. Len: %d\n", $finfo[$i]->max_length);
        printf("Flags:    %d\n", $finfo[$i]->flags);
        printf("Type:     %d\n\n", $finfo[$i]->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all columns */
    $finfo = mysqli_fetch_fields($result);

    for ($i=0; $i < count($finfo); $i++) {
        printf("Name:     %s\n", $finfo[$i]->name);
        printf("Table:    %s\n", $finfo[$i]->table);
        printf("max. Len: %d\n", $finfo[$i]->max_length);
        printf("Flags:    %d\n", $finfo[$i]->flags);
        printf("Type:     %d\n\n", $finfo[$i]->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Anterior | Principal | Próxima
mysqli_fetch_field | Acima | mysqli_fetch_lengths


mysqli_fetch_lengths

(PHP 5)

mysqli_fetch_lengths

(no version information, might be only in CVS)

result->lengths -- Returns the lengths of the columns of the current row in the result set

Description

Procedural style:

mixed mysqli_fetch_lengths ( object result)

Object oriented style (property):

class result {

mixed lengths

}

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

Return values

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

mysql_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling mysql_fetch_row/array/object or after retrieving all rows in the result.

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* display column lengths */
    for ($i=0; $i < count($result->lengths); $i++) {
        printf("Field %2d has Length %2d\n", $i+1, $result->lengths[$i]);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* display column lengths */
    $lengths = mysqli_fetch_lengths($result);
    for ($i=0; $i < count($lengths); $i++) {
        printf("Field %2d has Length %2d\n", $i+1, $lengths[$i]);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Field  1 has Length  3
Field  2 has Length  5
Field  3 has Length 13
Field  4 has Length  9
Field  5 has Length  6
Field  6 has Length  1
Field  7 has Length  6
Field  8 has Length  4
Field  9 has Length  6
Field 10 has Length  6
Field 11 has Length  5
Field 12 has Length 44
Field 13 has Length  7
Field 14 has Length  3
Field 15 has Length  2

Anterior | Principal | Próxima
mysqli_fetch_fields | Acima | mysqli_fetch_object


mysqli_fetch_object

(PHP 5)

mysqli_fetch_object

(no version information, might be only in CVS)

result->fetch_object -- Returns the current row of a result set as an object

Description

Procedural style:

mixed mysqli_fetch_object ( object result)

Object oriented style (method):

class result {

mixed fetch_object ( void )

}

The mysqli_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

Return values

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

See also

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_row().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Anterior | Principal | Próxima
mysqli_fetch_lengths | Acima | mysqli_fetch_row


mysqli_fetch_row

(PHP 5)

mysqli_fetch_row

(no version information, might be only in CVS)

result->fetch_row -- Get a result row as an enumerated array

Description

Procedural style:

mixed mysqli_fetch_row ( object result)

Object oriented style (method):

class result {

mixed fetch_row ( void )

}

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

mysqli_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the mysqli_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

Return values

mysqli_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

See also

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_object().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Anterior | Principal | Próxima
mysqli_fetch_object | Acima | mysqli_fetch


mysqli_fetch

mysqli_fetch -- Alias for mysqli_stmt_fetch()

Description

This function is an alias of mysqli_stmt_fetch(). For a detailled descripton see description of mysqli_stmt_fetch().

Nota: mysqli_fetch() is deprecated and will be removed.

See also

mysqli_stmt_fetch()

Anterior | Principal | Próxima
mysqli_fetch_row | Acima | mysqli_field_count


mysqli_field_count

(PHP 5)

mysqli_field_count

(no version information, might be only in CVS)

mysqli->field_count -- Returns the number of columns for the most recent query

Description

Procedural style:

int mysqli_field_count ( object link)

Object oriented style (method):

class mysql {

int field_count ( void )

}

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Return values

An integer representing the number of fields in a result set

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query($HTTP_POST_VARS['query']);

if (mysql_field_count($link)) {
    /* this was a select/show or describe query */
    $result = $mysqli->store_result();

    /* process resultset */
    $row = $result->fetch_row();

    /* free resultset */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, $HTTP_POST_VARS['query']);

if (mysql_field_count($link)) {
    /* this was a select/show or describe query */
    $result = mysqli_store_result($link);

    /* process resultset */
    $row = mysqli_fetch_row($result);

    /* free resultset */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Anterior | Principal | Próxima
mysqli_fetch | Acima | mysqli_field_seek


mysqli_field_seek

(PHP 5)

mysqli_field_seek

(no version information, might be only in CVS)

result->field_seek -- Set result pointer to a specified field offset

Description

Procedural style:

int mysqli_field_seek ( object result, int fieldnr)

Object oriented style (method):

class result {

int field_seek ( int fieldnr)

}

Sets the field cursor to the given offset. The next call to mysqli_fetch_field() will retrieve the field definition of the column associated with that offset.

Nota: To seek to the beginning of a row, pass an offset value of zero.

Return values

mysqli_field_seek() returns previuos value of field cursor.

See also

mysqli_fetch_field()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for 2nd column */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for 2nd column */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Anterior | Principal | Próxima
mysqli_field_count | Acima | mysqli_field_tell


mysqli_field_tell

(PHP 5)

mysqli_field_tell

(no version information, might be only in CVS)

result->current_field -- Get current field offset of a result pointer

Description

Procedural style:

int mysqli_field_tell ( object result)

Object oriented style (property):

class result {

int current_field

}

Returns the position of the field cursor used for the last mysqli_fetch_field() call. This value can be used as an argument to mysqli_field_seek().

Valores de retorno

Returns current offset of field cursor.

Veja Também

mysqli_fetch_field(), mysqli_field_seek()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        /* get fieldpointer offset */
        $currentfield = $result->current_field;

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        /* get fieldpointer offset */
        $currentfield = mysqli_field_tell($result);

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Column 1:
Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Column 2:
Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Anterior | Principal | Próxima
mysqli_field_seek | Acima | mysqli_free_result


mysqli_free_result

(PHP 5)

mysqli_free_result

(no version information, might be only in CVS)

result->free -- Frees the memory associated with a result

Description

Procedural style:

void mysqli_free_result ( object result)

Object oriented style (method):

class result {

void free ( void )

}

The mysqli_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by mysqli_query(), mysqli_store_result() or mysqli_use_result().

Nota: You should always free your result with mysqli_free_result(), when your result object is not needed anymore.

Valores de retorno

This function doesn't return any value.

Veja Também

mysqli_query(),
mysqli_stmt_store_result(),
mysqli_store_result(),
mysqli_use_result().

Anterior | Principal | Próxima
mysqli_field_tell | Acima | mysqli_get_client_info


mysqli_get_client_info

(PHP 5)

mysqli_get_client_info -- Returns the MySQL client version as a string

Description

string mysqli_get_client_info ( void )

The mysqli_get_client_info() function is used to return a string representing the client version being used in the MySQLi extension.

Valores de retorno

A string that represents the MySQL client library version

See also

mysqli_get_client_version(),
mysqli_get_server_info(),
mysqli_get_server_version()

Example

Exemplo 1. mysqli_get_client_info

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Anterior | Principal | Próxima
mysqli_free_result | Acima | mysqli_get_client_version


mysqli_get_client_version

(PHP 5)

mysqli_get_client_version -- Get MySQL client info.

Description

int mysqli_get_client_version ( void )

Returns client version number as an integer.

Return values

A number that represents the MySQL client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 4.1.0 is returned as 40100.

This is useful to quickly determine the version of the client library to know if some capability exits.

See also

mysqli_get_client_info(),
mysqli_get_server_info(),
mysqli_get_server_version()

Example

Exemplo 1. mysqli_get_client_version

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Anterior | Principal | Próxima
mysqli_get_client_info | Acima | mysqli_get_host_info


mysqli_get_host_info

(PHP 5)

mysqli_get_host_info

(no version information, might be only in CVS)

mysqli->get_host_info -- Returns a string representing the type of connection used

Description

Procdural style:

string mysqli_get_host_info ( object link)

Object oriented style (property):

class mysqli {

string host_info

}

The mysqli_get_host_info() function returns a string describing the connection represented by the link parameter is using (including the server host name).

Valores de retorno

A character string representing the server hostname and the connection type.

See also

mysqli_get_proto_info()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Host info: Localhost via UNIX socket

Anterior | Principal | Próxima
mysqli_get_client_version | Acima | mysqli_get_metadata


mysqli_get_metadata

mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()

Description

This function is an alias of mysqli_stmt_result_metadata(). For a detailled descripton see description of mysqli_stmt_result_metadata().

Nota: mysqli_get_metadata() is deprecated and will be removed.

See also

mysqli_stmt_result_metadata()

Anterior | Principal | Próxima
mysqli_get_host_info | Acima | mysqli_get_proto_info


mysqli_get_proto_info

(PHP 5)

mysqli_get_proto_info

(no version information, might be only in CVS)

mysqli->protocol_version -- Returns the version of the MySQL protocol used

Description

Procedural style:

int mysqli_get_proto_info ( object link)

Object oriented style (property):

class mysqli {

string protocol_version

}

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

Valores de retorno

Returns an integer representing the protocol version.

See also

mysqli_get_host_info()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Protocol version: 10

Anterior | Principal | Próxima
mysqli_get_metadata | Acima | mysqli_get_server_info


mysqli_get_server_info

(PHP 5)

mysqli_get_server_info

(no version information, might be only in CVS)

mysqli->server_info -- Returns the version of the MySQL server

Description

Procedural style:

string mysqli_get_server_info ( object link)

Object oriented style (property):

class mysqli {

string server_info

}

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to (represented by the link parameter).

Valores de retorno

A character string representing the server version.

See also

mysqli_get_client_info(),
mysqli_get_client_version(),
mysqli_get_server_version()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Server version: 4.1.2-alpha-debug

Anterior | Principal | Próxima
mysqli_get_proto_info | Acima | mysqli_get_server_version


mysqli_get_server_version

(PHP 5)

mysqli_get_server_version -- Returns the version of the MySQL server as an integer

Description

Procedural style:

int mysqli_get_server_version ( object link)

Object oriented style (property):

class mysqli {

int server_version

}

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

Valores de retorno

An integer representing the server version.

See also

mysqli_get_client_info(),
mysqli_get_client_version(),
mysqli_get_server_info()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Server version: 40102

Anterior | Principal | Próxima
mysqli_get_server_info | Acima | mysqli_info


mysqli_info

(PHP 5)

mysqli_info

(no version information, might be only in CVS)

mysqli->info -- Retrieves information about the most recently executed query

Description

Procedural style:

string mysqli_info ( object link)

Object oriented style (property)

class mysqli {

string info

}

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Tabela 1. Possible mysqli_info return values

Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Nota: Queries which do not fall into one of the above formats are not supported. In these situations, mysqli_info() will return an empty string.

Valores de retorno

A character string representing additional information about the most recently executed query.

Veja Também

mysqli_affected_rows(),
mysqli_warning_count(),
mysqli_num_rows()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Records: 150  Duplicates: 0  Warnings: 0

Anterior | Principal | Próxima
mysqli_get_server_version | Acima | mysqli_init


mysqli_init

(PHP 5)

mysqli_init -- Initializes MySQLi and returns an object for use with mysqli_real_connect

Description

object mysqli_init ( void )

Allocates or initializes a MYSQL object suitable for mysqli_options() and mysqli_real_connect().

Nota: Any subsequent calls to any mysqli function (except mysqli_options()) will fail until mysqli_real_connect() was called.

Valores de retorno

Returns an object.

Veja Também

mysqli_options(),
mysqli_close(),
mysqli_real_connect(),
mysqli_connect()

Anterior | Principal | Próxima
mysqli_info | Acima | mysqli_insert_id


mysqli_insert_id

(PHP 5)

mysqli_insert_id

(no version information, might be only in CVS)

mysqli->insert_id -- Returns the auto generated id used in the last query

Description

Procedural style:

mixed mysqli_insert_id ( object link)

Object oriented style (property):

class mysqli {

mixed insert_id

}

The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Nota: Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

Valores de retorno

The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.

Nota: If the number is greater than maximal int value, mysqli_insert_id() will return a string.

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("New Record has id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

New Record has id 1.

Anterior | Principal | Próxima
mysqli_init | Acima | mysqli_kill


mysqli_kill

(PHP 5)

mysqli_kill

(no version information, might be only in CVS)

mysqli->kill -- Asks the server to kill a MySQL thread

Description

Procedural style:

bool mysqli_kill ( object link, int processid)

Object oriented style (method)

class mysqli {

bool kill ( int processid)

}

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

Nota: To stop a running query you should use the SQL command KILL QUERY processid.

Valores de retorno

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja Também

mysqli_thread_id()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: MySQL server has gone away

Anterior | Principal | Próxima
mysqli_insert_id | Acima | mysqli_master_query


mysqli_master_query

(PHP 5)

mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup.

Description

bool mysqli_master_query ( object link, string query)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_kill | Acima | mysqli_more_results


mysqli_more_results

(PHP 5)

mysqli_more_results

(no version information, might be only in CVS)

mysqli->more_results -- Check if there any more query results from a multi query.

Description

bool mysqli_more_results ( object link)

mysqli_more_results() indicates if one or more result sets are available from a previous call to mysqli_multi_query().

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_multi_query(),
mysqli_next_result(),
mysqli_store_result(),
mysqli_use_result()

Example

See mysqli_multi_query().

Anterior | Principal | Próxima
mysqli_master_query | Acima | mysqli_multi_query


mysqli_multi_query

(PHP 5)

mysqli_multi_query

(no version information, might be only in CVS)

mysqli->multi_query -- Performs a query on the database

Description

Procedural style:

bool mysqli_multi_query ( object link, string query)

Object oriented style (method):

class mysqli {

bool multi_query ( string query)

}

The mysqli_multi_query() executes one or multiple queries which are concatenated by a semicolon.

To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_use_result(),
mysqli_store_result(),
mysqli_next_result(),
mysqli_more_results()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Anterior | Principal | Próxima
mysqli_more_results | Acima | mysqli_next_result


mysqli_next_result

(PHP 5)

mysqli_next_result

(no version information, might be only in CVS)

mysqli->next_result -- prepare next result from multi_query.

Description

bool mysqli_next_result ( object link)

mysqli_next_result() prepares next result set from a previous call to mysqli_multi_query() which can be retrieved by mysqli_store_result() or mysqli_use_result().

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_multi_query(),
mysqli_more_results(),
mysqli_store_result(),
mysqli_use_result()

Example

See mysqli_multi_query().

Anterior | Principal | Próxima
mysqli_multi_query | Acima | mysqli_num_fields


mysqli_num_fields

(PHP 5)

mysqli_num_fields

(no version information, might be only in CVS)

result->field_count -- Get the number of fields in a result

Description

Procedural style:

int mysqli_num_fields ( object result)

Object oriented style (property):

class result {

int field_count

}

mysqli_num_fields() returns the number of fields from specified result set.

Valores de retorno

The number of fields from a result set

Veja Também

mysqli_fetch_field()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = $result->field_count;

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = mysqli_num_fields($result);

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Result set has 5 fields.

Anterior | Principal | Próxima
mysqli_next_result | Acima | mysqli_num_rows


mysqli_num_rows

(PHP 5)

mysqli_num_rows -- Gets the number of rows in a result

Description

Procedural style:

mixed mysqli_num_rows ( object result)

Object oriented style (property):

class mysqli {

mixed num_rows

}

Returns the number of rows in the result set.

The use of mysqli_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets mysqli_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Valores de retorno

Returns number of rows in the result set.

Nota: If the number of rows is greater than maximal int value, the number will be returned as a string.

Veja Também

mysqli_affected_rows()
mysqli_store_result()
mysqli_use_result()
mysqli_query()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = $result->num_rows;

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Result set has 239 rows.

Anterior | Principal | Próxima
mysqli_num_fields | Acima | mysqli_options


mysqli_options

(PHP 5)

mysqli_options

(no version information, might be only in CVS)

mysqli->options -- set options

Description

Procedural style:

bool mysqli_options ( object link, int option, mixed value)

Object oriented style (method)

class mysqli {

bool options ( int option, mixed value)

}

mysqli_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after mysqli_init() and before mysqli_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. The parameter option can be one of the following values:

Tabela 1. Valid options

Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | connection timeout in seconds
MYSQLI_OPT_COMPRESS | use compression protocol
MYSQLI_OPT_LOCAL_INFILE | enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_CMD | command to execute after when connecting to MySQL server
MYSQLI_READ_DEFAULT_FILE | Read options from named option file instead of my.cnf
MYSQLI_READ_DEFAULT_GROUP | Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE.

Valores de retorno

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja Também

mysqli_init(), mysqli_real_connect()

Example

See mysqli_real_connect().

Anterior | Principal | Próxima
mysqli_num_rows | Acima | mysqli_param_count


mysqli_param_count

mysqli_param_count -- Alias for mysqli_stmt_param_count()

Description

This function is an alias of mysqli_stmt_param_count(). For a detailled descripton see description of mysqli_stmt_param_count().

Nota: mysqli_param_count() is deprecated and will be removed.

See also

mysqli_stmt_param_count()

Anterior | Principal | Próxima
mysqli_options | Acima | mysqli_ping


mysqli_ping

(PHP 5)

mysqli_ping

(no version information, might be only in CVS)

mysqli->ping -- Pings a server connection, or tries to reconnect if the connection has gone down.

Description

Procedural style:

bool mysqli_ping ( object link)

Object oriented style (method):

class mysqli {

bool ping ( void )

}

Checks whether the connection to the server is working. If it has gone down, and global option mysqli.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if (mysqli_ping($link)) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Our connection is ok!

Anterior | Principal | Próxima
mysqli_param_count | Acima | mysqli_prepare


mysqli_prepare

(PHP 5)

mysqli_prepare

(no version information, might be only in CVS)

mysqli->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

mixed mysqli_prepare ( object link, string query)

Object oriented style (method)

class stmt {

mixed prepare ( string query)

}

mysqli_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Nota: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Nota: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Valores de retorno

mysqli_prepare() returns a statement object or FALSE if an error occured.

Veja Também

mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result(),
mysqli_stmt_close()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Amersfoort is in district Utrecht

Anterior | Principal | Próxima
mysqli_ping | Acima | mysqli_query


mysqli_query

(PHP 5)

mysqli_query

(no version information, might be only in CVS)

mysqli->query -- Performs a query on the database

Description

Procedural style:

mixed mysqli_query ( object link, string query [, int resultmode])

Object oriented style (method):

class mysqli {

mixed query ( string query)

}

The mysqli_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Functionally, using this function is identical to calling mysqli_real_query() followed either by mysqli_use_result() or mysqli_store_result() where query is the query string itself and resultmode is either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, if the resultmode is not provided MYSQLI_STORE_RESULT is used.

If you execute mysqli_query() with resultmode MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result().

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas. For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.

See also

mysqli_real_query(),
mysqli_multi_query(),
mysqli_free_result()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

The above examples would produce the following output:

Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Anterior | Principal | Próxima
mysqli_prepare | Acima | mysqli_real_connect


mysqli_real_connect

(PHP 5)

mysqli_real_connect

(no version information, might be only in CVS)

mysqli->real_connect -- Opens a connection to a mysql server

Description

Procedural style

bool mysqli_real_connect ( object link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]])

Object oriented style (method)

class mysqli {

bool real_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]])

}

mysql_real_connect() attempts to establish a connection to a MySQL database engine running on host.

This function differs from mysqli_connect():

  • mysqli_real_connect() needs a valid object which has to be created by function mysqli_init()

  • With function mysqli_options() you can set various options for connection.

  • With the parameter flags you can set diffrent connection options:

    Tabela 1. Supported flags

    Name | Description
    MYSQLI_CLIENT_COMPRESS | Use compression protocol
    MYSQLI_CLIENT_FOUND_ROWS | return number of matched rows, not the number of affected rows
    MYSQLI_CLIENT_IGNORE_SPACE | Allow spaces after function names. Makes all function names reserved words.
    MYSQLI_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
    MYSQLI_CLIENT_SSL | Use SSL (encryption)

    Nota: For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.

Valores de retorno

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja Também

mysqli_connect(),
mysqli_init(),
mysqli_options(),
mysqli_ssl_set(),
mysqli_close().

Example

Exemplo 1. Object oriented style

<?php

/* create a connection object which is not connected */
$mysqli = mysqli_init();

/* set connection options */
$mysqli->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", $mysqli->host_info);

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php

/* create a connection object which is not connected */
$link = mysqli_init();

/* set connection options */
mysqli_options($link, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", mysqli_get_host_info($link));

mysqli_close($link);
?>

The above examples would produce the following output:

Connection: Localhost via UNIX socket

Anterior | Principal | Próxima
mysqli_query | Acima | mysqli_real_escape_string


mysqli_real_escape_string

(PHP 5)

mysqli_real_escape_string

(no version information, might be only in CVS)

mysqli->real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Description

Procedural style:

string mysqli_real_escape_string ( object link, string escapestr)

Object oriented style (method):

class mysqli {

string real_escape_sring ( string query)

}

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Return values

Returns an escaped string.

See also

mysqli_character_set_name().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

The above examples would produce the following output:

Error: 42000
1 Row inserted.

Anterior | Principal | Próxima
mysqli_real_connect | Acima | mysqli_real_query


mysqli_real_query

(PHP 5)

mysqli_real_query

(no version information, might be only in CVS)

mysqli->real_query -- Execute an SQL query

Description

Procedural style

bool mysqli_real_query ( object link, string query)

Object oriented style (method):

class mysqli {

bool real_query ( string query)

}

The mysqli_real_query() function is used to execute only a query against the database represented by the link whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

Nota: In order to determine if a given query should return a result set or not, see mysqli_field_count().

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_query()
mysqli_store_result()
mysqli_use_result()

Anterior | Principal | Próxima
mysqli_real_escape_string | Acima | mysqli_report


mysqli_report

(PHP 5)

mysqli_report -- enables or disables internal report functions

Description

bool mysqli_report ( int flags)

mysqli_report() is a powerful function to improve your queries and code during development and testing phase. Depending on the flags it reports errors from mysqli function calls or queries which don't use an index (or use a bad index).

Tabela 1. Supported flags

Name | Description
MYSQLI_REPORT_OFF | Turns reporting off
MYSQLI_REPORT_ERROR | Report errors from mysqli function calls
MYSQLI_REPORT_INDEX | Report if no index or bad index was used in a query
MYSQLI_REPORT_ALL | Set all options (report all)

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_debug(), mysqli_dump_debug_info()

Example

Exemplo 1. Object oriented style

<?php
/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* this query should report an error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* this query should report a warning */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

Anterior | Principal | Próxima
mysqli_real_query | Acima | mysqli_rollback


mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback -- Rolls back current transaction

Description

bool mysqli_rollback ( object link)

class mysqli {

bool rollback ( void )

}

Rollbacks the current transaction for the database specified by the link parameter.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_commit() mysqli_autocommit()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
$mysqli->commit();

/* delete all rows */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Drop table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
mysqli_commit($link);

/* delete all rows */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Drop table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

The above examples would produce the following output:

0 rows in table myCity.
50 rows in table myCity (after rollback).

Anterior | Principal | Próxima
mysqli_report | Acima | mysqli_rpl_parse_enabled


mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabled --

Description

int mysqli_rpl_parse_enabled ( object link)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_rollback | Acima | mysqli_rpl_probe


mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probe --

Description

bool mysqli_rpl_probe ( object link)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_rpl_parse_enabled | Acima | mysqli_rpl_query_type


mysqli_rpl_query_type

(PHP 5)

mysqli_rpl_query_type --

Description

int mysqli_rpl_query_type ( string query)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_rpl_probe | Acima | mysqli_select_db


mysqli_select_db

(PHP 5)

mysqli_select_db

(no version information, might be only in CVS)

mysqli->select_db -- Selects the default database for database queries

Description

bool mysqli_select_db ( object link, string dbname)

The mysqli_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Nota: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in mysqli_connect().

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_connect() mysqli_real_connect()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* change db to world db */
mysqli_select_db($link, "world");

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

The above examples would produce the following output:

Default database is test.
Default database is world.

Anterior | Principal | Próxima
mysqli_rpl_query_type | Acima | mysqli_send_long_data


mysqli_send_long_data

mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()

Description

This function is an alias of mysqli_stmt_send_long_data(). For a detailled descripton see description of mysqli_stmt_send_long_data().

Nota: mysqli_send_long_data() is deprecated and will be removed.

See also

mysqli_stmt_send_long_data()

Anterior | Principal | Próxima
mysqli_select_db | Acima | mysqli_send_query


mysqli_send_query

(PHP 5)

mysqli_send_query --

Description

bool mysqli_send_query ( resource link, string query)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_send_long_data | Acima | mysqli_server_end


mysqli_server_end

(PHP 5)

mysqli_server_end --

Description

void mysqli_server_end ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_send_query | Acima | mysqli_server_init


mysqli_server_init

(PHP 5)

mysqli_server_init -- Initialize embedded server.

Description

bool mysqli_server_init ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Anterior | Principal | Próxima
mysqli_server_end | Acima | mysqli_set_opt


mysqli_set_opt

mysqli_set_opt -- Alias of mysqli_options()

Description

This function is an alias of mysqli_options().

Anterior | Principal | Próxima
mysqli_server_init | Acima | mysqli_sqlstate


mysqli_sqlstate

(PHP 5)

mysqli_sqlstate

(no version information, might be only in CVS)

mysqli->sqlstate -- Returns the SQLSTATE error from previous MySQL operation.

Description

string mysqli_sqlstate ( object link)

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/Error-returns.html.

Nota: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

mysqli_errno(), mysqli_error()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

The above examples would produce the following output:

Error - SQLSTATE 42S01.

Anterior | Principal | Próxima
mysqli_set_opt | Acima | mysqli_ssl_set


mysqli_ssl_set

(PHP 5)

mysqli_ssl_set

(no version information, might be only in CVS)

mysqli->ssl_set -- Used for establishing secure connections using SSL.

Description

Procedural style:

bool mysqli_ssl_set ( object link [, string key [, string cert [, string ca [, string capath [, string cipher]]]]])

Object oriented style (method):

class mysqli {

bool ssl_set ( [string key [, string cert [, string ca [, string capath [, string cipher]]]]])

}

The function mysqli_ssl_set() is used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

key is the pathname to the key file. cert is the pathname to the certificate file. ca is the pathname to the certificate authority file. capath is the pathname to a directory that contains trusted SSL CA certificates in pem format. cipher is a list of allowable ciphers to use for SSL encryption. Any unused SSL parameters may be given as NULL

Return values

This function always returns TRUE value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

See also

mysqli_options(), mysqli_real_connect()

Anterior | Principal | Próxima
mysqli_sqlstate | Acima | mysqli_stat


mysqli_stat

(PHP 5)

mysqli_stat

(no version information, might be only in CVS)

mysqli->stat -- Gets the current system status

Description

Procedural style:

mixed mysqli_stat ( object link)

Object oriented style (method):

class mysqli {

mixed mysqli->stat ( void )

}

mysqli_stat() returns a string containing information similar to that provided by the 'mysqladmin status' command. This includes uptime in seconds and the number of running threads, questions, reloads, and open tables.

Return values

A string describing the server status. FALSE if an error occurred.

See also

mysqli_get_server_info()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("System status: %s\n", $mysqli->stat());

$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("System status: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

The above examples would produce the following output:

System status: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Anterior | Principal | Próxima
mysqli_ssl_set | Acima | mysqli_stmt_affected_rows


mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt_affected_rows

(no version information, might be only in CVS)

mysqli_stmt->affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement

Description

Procedural style :

mixed mysqli_stmt_affected_rows ( object stmt)

Object oriented style (property):

class stmt {

mixed affected_rows

}

mysqli_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid, this function will return -1.

The mysqli_stmt_affected_rows() function only works with queries which update a table. In order to return the number of rows from a SELECT query, use the mysqli_stmt_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error.

Nota: If the number of affected rows is greater than maximal PHP int value, the number of affected rows will be returned as a string value.

See also

mysqli_stmt_num_rows(), mysqli_prepare()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = $mysqli->prepare($query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* execute statement */
    $stmt->execute();

    printf("rows inserted: %d\n", $stmt->affected_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* execute statement */
    mysqli_stmt_execute($stmt);

    printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

rows inserted: 17

Anterior | Principal | Próxima
mysqli_stat | Acima | mysqli_stmt_bind_param


mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Binds variables to a prepared statement as parameters

Description

Procedural style:

bool mysqli_stmt_bind_param ( object stmt, string types, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_param ( array types, mixed var1 [, mixed var2, ...])

}

mysqli_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to mysql_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables

Tabela 1. Type specification chars

Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be send in packages

Nota: If data size of a variable exceeds max. allowed package size (max_allowed_package), you have to specify b in types and use mysqli_stmt_send_long_data() to send the data in packages.

The number of variables and length of string types must match the parameters in the statement.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_stmt_bind_result(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_send_long_data(),
mysqli_stmt_errno(),
mysqli_stmt_error()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
mysqi_stmt_execute($stmt);

printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

/* close statement and connection */
mysqli_stmt_close($stmt);

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", mysqli_affected_rows($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

1 Row inserted.
1 Row deleted.

Anterior | Principal | Próxima
mysqli_stmt_affected_rows | Acima | mysqli_stmt_bind_result


mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result -- Binds variables to a prepared statement for result storage

Description

Procedural style:

bool mysqli_stnt_bind_result ( object stmt, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_result ( mixed var1 [, mixed var2, ...])

}

mysqli_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When mysqli_stmt_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified variables var1, ....

Nota: Note that all columns must be bound prior to calling mysqli_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time mysqli_stmt_fetch() is called.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_stmt_bind_param(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_prepare(),
mysqli_stmt_init(),
mysqli_stmt_errno(),
mysqli_stmt_error()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1, $col2);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    $stmt->close();
}
/* close connection */
$mysqli->close();

?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* bind variables to prepared statement */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
       printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Anterior | Principal | Próxima
mysqli_stmt_bind_param | Acima | mysqli_stmt_close


mysqli_stmt_close

(PHP 5)

mysqli_stmt_close

(no version information, might be only in CVS)

mysqli_stmt->close -- Closes a prepared statement

Description

Procedural style:

bool mysqli_stmt_close ( object stmt)

Object oriented style (method):

class mysqli_stmt {

bool mysqli_stmt->close ( void )

}

Closes a prepared statement. mysql_stmt_close() also deallocates the statement handle pointed to by stmt. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_prepare(),

Anterior | Principal | Próxima
mysqli_stmt_bind_result | Acima | mysqli_stmt_data_seek


mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek -- Seeks to an arbitray row in statement result set

Description

Procedural style:

bool mysqli_stmt_data_seek ( object statement, int offset)

Object oriented style (method):

class stmt {

bool data_seek ( int offset)

}

The mysqli_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_stmt_num_rows() - 1).

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_prepare()

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* store result */
    $stmt->store_result();

    /* seek to row no. 400 */
    $stmt->data_seek(399);

    /* fetch values */
    $stmt->fetch();

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* store result */
    mysqli_stmt_store_result($stmt);

    /* seek to row no. 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* fetch values */
    mysqli_stmt_fetch($stmt);

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

City: Benin City  Countrycode: NGA

Anterior | Principal | Próxima
mysqli_stmt_close | Acima | mysqli_stmt_errno


mysqli_stmt_errno

(PHP 5)

mysqli_stmt_errno

(no version information, might be only in CVS)

mysqli_stmt->errno -- Returns the error code for the most recent statement call

Description

Procedural style :

int mysqli_stmt_errno ( object stmt)

Object oriented style (property):

class stmt {

int errno

}

For the statement specified by stmt, mysqli_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Nota: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value. Zero means no error occurred.

See also

mysqli_stmt_error(), mysqli_stmt_sqlstate()

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %d.\n", $stmt->errno);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %d.\n", mysqli_stmt_errno($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: 1146.

Anterior | Principal | Próxima
mysqli_stmt_data_seek | Acima | mysqli_stmt_error


mysqli_stmt_error

(PHP 5)

mysqli_stmt_error

(no version information, might be only in CVS)

mysqli_stmt->error -- Returns a string description for last statement error

Description

Procedural style:

string mysqli_stmt_error ( object stmt)

Object oriented style (property):

class stmt {

string error

}

For the statement specified by stmt, mysql_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_stmt_errno(), mysqli_stmt_sqlstate()

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->error);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_error($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: Table 'world.myCountry' doesn't exist.

Anterior | Principal | Próxima
mysqli_stmt_errno | Acima | mysqli_stmt_execute


mysqli_stmt_execute

(PHP 5)

mysqli_stmt_execute

(no version information, might be only in CVS)

stmt->execute -- Executes a prepared Query

Description

Procedural style:

bool mysqli_stmt_execute ( object stmt)

Object oriented style (method):

class mysql {

bool execute ( void )

}

The mysqli_stmt_execute() function executes a query that has been previously prepared using the mysqli_prepare() function represented by the stmt object. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_fetch() function is used.

Nota: When using mysqli_stmt_execute(), the mysqli_fetch() function must be used to fetch the data prior to preforming any additional queries.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_prepare() mysqli_stmt_bind_param().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    $result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    mysqli_free_result($result);
}

/* remove table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Anterior | Principal | Próxima
mysqli_stmt_error | Acima | mysqli_stmt_fetch


mysqli_stmt_fetch

(PHP 5)

mysqli_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch -- Fetch results from a prepared statement into the bound variables

Description

Procedural style:

mixed mysqli_stmt_fetch ( object stmt)

Object oriented style (method):

class stmt {

mixed fetch ( void )

}

mysqli_stmt_fetch() returns row data using the variables bound by mysqli_stmt_bind_result().

Nota: Note that all columns must be bound by the application before calling mysqli_stmt_fetch().

Return values

Tabela 1. Return values

Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists

See also

mysqli_prepare(),
mysqli_stmt_errno(),
mysqli_stmt_error(),
mysqli_stmt_bind_result()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* execute statement */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Anterior | Principal | Próxima
mysqli_stmt_execute | Acima | mysqli_stmt_free_result


mysqli_stmt_free_result

(PHP 5)

mysqli_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result -- Frees stored result memory for the given statement handle

Description

Procedural style:

void mysqli_stmt_free_result ( object stmt)

Object oriented style (method):

class stmt {

void free_result ( void )

}

The mysqli_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by mysqli_stmt_store_result().

Valores de retorno

This function doesn't return any value.

Veja Também

mysqli_stmt_store_result()

Anterior | Principal | Próxima
mysqli_stmt_fetch | Acima | mysqli_stmt-init


mysqli_stmt-init

(PHP 5)

mysqli_stmt-init

(no version information, might be only in CVS)

mysqli->stmt->init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare

Description

Procedural style :

object mysqli_stmt_init ( object link)

Object oriented style (property):

class mysqli {

object stmt_init ( void )

}

Allocates and initializes a statement object suitable for mysqli_stmt_prepare().

Nota: Any subsequent calls to any mysqli_stmt function will fail until mysqli_stmt_prepare() was called.

Valores de retorno

Returns an object.

Veja Também

mysqli_stmt_prepare()

Anterior | Principal | Próxima
mysqli_stmt_free_result | Acima | mysqli_stmt_num_rows


mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Return the number of rows in statements result set.

Description

mixed mysqli_stmt_num_rows ( object stmt)

class stmt {

int num_rows

}

Returns the number of rows in the result set. The use of mysqli_stmt_num_rows() depends on whether or not you used mysqli_stmt_store_result() to buffer the entire result set in the statement handle.

If you use mysqli_stmt_store_result(), mysqli_stmt_num_rows() may be called immediately.

Return values

An integer representing the number of rows in result set.

See also

mysqli_stmt_affected_rows(),
mysqli_prepare(),
mysqli_stmt_store_result()

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Number of rows: 20.

Anterior | Principal | Próxima
mysqli_stmt-init | Acima | mysqli_stmt_param_count


mysqli_stmt_param_count

(PHP 5)

mysqli_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Returns the number of parameter for the given statement

Description

Procedural style:

int mysqli_stmt_param_count ( object stmt)

Object oriented style (property):

class stmt {

int param_count

}

mysqli_stmt_param_count() returns the number of parameter markers present in the prepared statement.

Valores de retorno

returns an integer representing the number of parameters.

Veja Também

mysqli_prepare()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Statement has 2 markers.

Anterior | Principal | Próxima
mysqli_stmt_num_rows | Acima | mysqli_stmt_prepare


mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

bool mysqli_stmt_prepare ( object stmt, string query)

Object oriented style (method)

class stmt {

mixed prepare ( string query)

}

mysqli_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement object has to be allocated by mysqli_stmt_init(). The query must consist of a single SQL statement.

Nota: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Nota: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Valores de retorno

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja Também

mysqli_stmt_init(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result(),
mysqli_stmt_close()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init();
if ($stmt = mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Amersfoort is in district Utrecht

Anterior | Principal | Próxima
mysqli_stmt_param_count | Acima | mysqli_stmt_result_metadata


mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt_result_metadata -- returns result set metadata from a prepared statement

Description

Procedural style:

mixed mysqli_stmt_result_metadata ( object stmt)

Object oriented style (method):

class stmt {

mixed result_metadata ( void )

}

If a statement passed to mysqli_prepare() is one that produces a result set, mysqli_stmt_result_metadata() returns the result object that can be used to process the meta information such as total number of fields and individual field information.

Nota: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result()

Nota: The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_fetch().

Valores de retorno

mysqli_stmt_result_metadata() returns a result object or FALSE if an error occured.

See also:

mysqli_prepare(), mysqli_free_result()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* get resultset for metadata */
$result = mysqli_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = mysqli_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

Anterior | Principal | Próxima
mysqli_stmt_prepare | Acima | mysqli_stmt_send_long_data


mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data -- Send data in blocks

Description

Procedural style:

bool mysqli_stmt_send_long_data ( object stmt, int param_nr, string data)

Object oriented style (method)

class stmt {

bool stmt_send_long_data ( int param_nr, string data)

}

Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob exceeds the size of max_allowed_packet. This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_prepare(), mysqli_stmt_bind_param()

Anterior | Principal | Próxima
mysqli_stmt_result_metadata | Acima | mysqli_stmt_sqlstate


mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt_sqlstate -- returns SQLSTATE error from previous statement operation

Description

string mysqli_stmt_sqlstate ( object stmt)

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/Error-returns.html.

Nota: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

mysqli_stmt_errno(), mysqli_stmt_error()

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->sqlstate);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: 42S02.

Anterior | Principal | Próxima
mysqli_stmt_send_long_data | Acima | mysqli_stmt_store_result


mysqli_stmt_store_result

(PHP 5)

mysqli_stmt_store_result

(no version information, might be only in CVS)

mysqli_stmt->store_result -- Transfers a result set from a prepared statement

Description

Procedural style:

bool mysqli_stmt_store_result ( object stmt)

Object oriented style (method):

class mysqli_stmt {

bool store_result ( void )

}

You must call mysql_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN), and only if you want to buffer the complete result set by the client, so that the subsequent mysql_fetch() call returns buffered data.

Nota: It is unnecessary to call mysql_stmt_store_result() for other queries, but if you do, it will not harm or cause any notable performance in all cases. You can detect whether the query produced a result set by checking if mysql_stmt_result_metadata() returns NULL.

Return values

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also

mysqli_prepare(),
mysqli_stmt_result_metadata(),
mysqli_fetch()

Example

Exemplo 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* free result */
    $stmt->free_result();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* free result */
    mysqli_stmt_free_result($stmt);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Number of rows: 20.

Anterior | Principal | Próxima
mysqli_stmt_sqlstate | Acima | mysqli_store_result


mysqli_store_result

(PHP 5)

mysqli_store_result

(no version information, might be only in CVS)

mysqli->store_result -- Transfers a result set from the last query

Description

Procedural style:

object mysqli_store_result ( object link)

Object oriented style (method):

class mysqli {

object store_result ( void )

}

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

Nota: Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transfering large result sets using the mysqli_store_result() this becomes particularly important.

Nota: mysqli_store_result() returns FALSE in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns FALSE if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error() doesn't return an empty string, if mysqli_errno() returns a non zero value, or if mysqli_field_count() returns a non zero value. Also possible reason for this function returning FALSE after successfull call to mysqli_query() can be too large result set (memory for it cannot be allocated). If mysqli_field_count() returns a non-zero value, the statement should have produced a non-empty result set.

Return values

Returns a buffered result object or FALSE if an error occured.

See also

mysqli_real_query(), mysqli_use_result().

Example

See mysqli_multi_query().

Anterior | Principal | Próxima
mysqli_stmt_store_result | Acima | mysqli_thread_id


mysqli_thread_id

(PHP 5)

mysqli_thread_id

(no version information, might be only in CVS)

mysqli->thread_id -- Returns the thread ID for the current connection

Description

Procedural style:

int mysqli_thread_id ( object link)

Object oriented style (property):

class mysqli {

int thread_id

}

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function. If the connection is lost and you reconnect with mysqli_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Nota: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

To kill a running query you can use the SQL command KILL QUERY processid].

Return values

mysqli_thread_id() returns the Thread ID for the current connection.

See also

mysqli_kill()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: MySQL server has gone away

Anterior | Principal | Próxima
mysqli_store_result | Acima | mysqli_thread_safe


mysqli_thread_safe

(PHP 5)

mysqli_thread_safe -- Returns whether thread safety is given or not

Description

Procedural style:

bool mysqli_thread_safe ( void )

mysqli_thread_safe() indicates whether the client library is compiled as thread-safe.

Return values

TRUE if the client library is thread-safe, otherwise FALSE.

Anterior | Principal | Próxima
mysqli_thread_id | Acima | mysqli_use_result


mysqli_use_result

(PHP 5)

mysqli_use_result

(no version information, might be only in CVS)

mysqli->use_result -- Initiate a result set retrieval

Description

Procedural style:

mixed mysqli_use_result ( object link)

Object oriented style (method):

class mysqli {

mixed use_result ( void )

}

mysqli_use_result() is used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection specified by the link parameter. Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Nota: The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

Return values

Returns an unbuffered result object or FALSE if an error occured.

See also

mysqli_real_query(), mysqli_store_result().

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Anterior | Principal | Próxima
mysqli_thread_safe | Acima | mysqli_warning_count


mysqli_warning_count

(PHP 5)

mysqli_warning_count

(no version information, might be only in CVS)

mysqli->warning_count -- Returns the number of warnings from the last query for the given link

Description

Procedural style:

int mysqli_warning_count ( object link)

Object oriented style (property):

class mysqli {

int warning_count

}

mysqli_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Nota: For retrieving warning messages you can use the SQL command SHOW WARNINGS [limit row_count].

Return values

Number of warnings or zero if there are no warnings.

See also

mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Exemplo 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* a remarkable city in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* close connection */
$mysqli->close();
?>

Exemplo 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* a remarkable long city name in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Warning (1264): Data truncated for column 'Name' at row 1

Anterior | Principal | Próxima
mysqli_use_result | Acima | Mohawk Software Session Handler Functions


Mohawk Software Session Handler Functions

Manual do PHP
Anterior Próxima

LXVI. Mohawk Software Session Handler Functions

Introdução

msession is an interface to a high speed session daemon which can run either locally or remotely. It is designed to provide consistent session management for a PHP web farm. More Information about msession and the session server software itself can be found at http://devel.mohawksoft.com/msession.html.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Instalação

To enable Msession support configure PHP --with-msession[=DIR], where DIR is the Msession install directory.

Configuração durante execução

Tipos Resource

Constantes Predefinidas

Índice
msession_connect -- Connect to msession server
msession_count -- Get session count
msession_create -- Create a session
msession_destroy -- Destroy a session
msession_disconnect -- Close connection to msession server
msession_find -- Find value
msession_get_array -- Get array of ... ?
msession_get -- Get value from session
msession_getdata -- Get data ... ?
msession_inc -- Increment value in session
msession_list -- List ... ?
msession_listvar -- List sessions with variable
msession_lock -- Lock a session
msession_plugin -- Call an escape function within the msession personality plugin
msession_randstr -- Get random string
msession_set_array -- Set array of ...
msession_set -- Set value in session
msession_setdata -- Set data ... ?
msession_timeout -- Set/get session timeout
msession_uniq -- Get uniq id
msession_unlock -- Unlock a session

Anterior | Principal | Próxima
mysqli_warning_count | Acima | msession_connect


msession_connect

(PHP 4 >= 4.2.0, PHP 5)

msession_connect -- Connect to msession server

Description

bool msession_connect ( string host, string port)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Mohawk Software Session Handler Functions | Acima | msession_count


msession_count

(PHP 4 >= 4.2.0, PHP 5)

msession_count -- Get session count

Description

int msession_count ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_connect | Acima | msession_create


msession_create

(PHP 4 >= 4.2.0, PHP 5)

msession_create -- Create a session

Description

bool msession_create ( string session)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_count | Acima | msession_destroy


msession_destroy

(PHP 4 >= 4.2.0, PHP 5)

msession_destroy -- Destroy a session

Description

bool msession_destroy ( string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_create | Acima | msession_disconnect


msession_disconnect

(PHP 4 >= 4.2.0, PHP 5)

msession_disconnect -- Close connection to msession server

Description

void msession_disconnect ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_destroy | Acima | msession_find


msession_find

(PHP 4 >= 4.2.0, PHP 5)

msession_find -- Find value

Description

array msession_find ( string name, string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_disconnect | Acima | msession_get_array


msession_get_array

(PHP 4 >= 4.2.0, PHP 5)

msession_get_array -- Get array of ... ?

Description

array msession_get_array ( string session)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_find | Acima | msession_get


msession_get

(PHP 4 >= 4.2.0, PHP 5)

msession_get -- Get value from session

Description

string msession_get ( string session, string name, string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_get_array | Acima | msession_getdata


msession_getdata

(no version information, might be only in CVS)

msession_getdata -- Get data ... ?

Description

string msession_getdata ( string session)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_get | Acima | msession_inc


msession_inc

(PHP 4 >= 4.2.0, PHP 5)

msession_inc -- Increment value in session

Description

string msession_inc ( string session, string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_getdata | Acima | msession_list


msession_list

(PHP 4 >= 4.2.0, PHP 5)

msession_list -- List ... ?

Description

array msession_list ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_inc | Acima | msession_listvar


msession_listvar

(PHP 4 >= 4.2.0, PHP 5)

msession_listvar -- List sessions with variable

Description

array msession_listvar ( string name)

Returns an associative array of value/session for all sessions with a variable named name.

Used for searching sessions with common attributes.

Anterior | Principal | Próxima
msession_list | Acima | msession_lock


msession_lock

(PHP 4 >= 4.2.0, PHP 5)

msession_lock -- Lock a session

Description

int msession_lock ( string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_listvar | Acima | msession_plugin


msession_plugin

(PHP 4 >= 4.2.0, PHP 5)

msession_plugin -- Call an escape function within the msession personality plugin

Description

string msession_plugin ( string session, string val [, string param])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_lock | Acima | msession_randstr


msession_randstr

(PHP 4 >= 4.2.0, PHP 5)

msession_randstr -- Get random string

Description

string msession_randstr ( int param)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_plugin | Acima | msession_set_array


msession_set_array

(PHP 4 >= 4.2.0, PHP 5)

msession_set_array -- Set array of ...

Description

bool msession_set_array ( string session, array tuples)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_randstr | Acima | msession_set


msession_set

(PHP 4 >= 4.2.0, PHP 5)

msession_set -- Set value in session

Description

bool msession_set ( string session, string name, string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_set_array | Acima | msession_setdata


msession_setdata

(no version information, might be only in CVS)

msession_setdata -- Set data ... ?

Description

bool msession_setdata ( string session, string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_set | Acima | msession_timeout


msession_timeout

(PHP 4 >= 4.2.0, PHP 5)

msession_timeout -- Set/get session timeout

Description

int msession_timeout ( string session [, int param])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_setdata | Acima | msession_uniq


msession_uniq

(PHP 4 >= 4.2.0, PHP 5)

msession_uniq -- Get uniq id

Description

string msession_uniq ( int param)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_timeout | Acima | msession_unlock


msession_unlock

(PHP 4 >= 4.2.0, PHP 5)

msession_unlock -- Unlock a session

Description

int msession_unlock ( string session, int key)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
msession_uniq | Acima | muscat Functions


muscat Functions

Manual do PHP
Anterior Próxima

LXVII. muscat Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Instalação

These functions are only available if PHP was configured with --with-muscat[=DIR].

Índice
muscat_close -- Shuts down the muscat session and releases any memory back to PHP.
muscat_get -- Gets a line back from the core muscat API.
muscat_give -- Sends string to the core muscat API
muscat_setup_net -- Creates a new muscat session and returns the handle.
muscat_setup -- Creates a new muscat session and returns the handle.

Anterior | Principal | Próxima
msession_unlock | Acima | muscat_close


muscat_close

(4.0.5 - 4.2.3 only)

muscat_close -- Shuts down the muscat session and releases any memory back to PHP.

Description

int muscat_close ( resource muscat_handle)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

[Not back to the system, note!]

Anterior | Principal | Próxima
muscat Functions | Acima | muscat_get


muscat_get

(4.0.5 - 4.2.3 only)

muscat_get -- Gets a line back from the core muscat API.

Description

string muscat_get ( resource muscat_handle)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Anterior | Principal | Próxima
muscat_close | Acima | muscat_give


muscat_give

(4.0.5 - 4.2.3 only)

muscat_give -- Sends string to the core muscat API

Description

int muscat_give ( resource muscat_handle, string string)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
muscat_get | Acima | muscat_setup_net


muscat_setup_net

(4.0.5 - 4.2.3 only)

muscat_setup_net -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup_net ( string muscat_host, int port)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

muscat_setup_net() creates a new muscat session and returns the handle.

muscat_host is the hostname to connect to. port is the port number to connect to.

Anterior | Principal | Próxima
muscat_give | Acima | muscat_setup


muscat_setup

(4.0.5 - 4.2.3 only)

muscat_setup -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup ( int size [, string muscat_dir])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

size is the amount of memory in bytes to allocate for muscat. muscat_dir is the muscat installation dir e.g. "/usr/local/empower", it defaults to the compile time muscat directory.

Anterior | Principal | Próxima
muscat_setup_net | Acima | Network - Funções de Rede


Network - Funções de Rede

Manual do PHP
Anterior Próxima

LXVIII. Network - Funções de Rede

Introdução

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de Configuração de Rede

Name | Default | Changeable
define_syslog_variables | "0" | PHP_INI_ALL
Para mais detalhes e definições das constantes do PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

define_syslog_variables boolean

Se define ou não as várias variáveis de syslog (e.g. $LOG_PID, $LOG_CRON, etc.). Desligá-la é uma boa idéia de sábia performance. No tempo de execução, você pode definir estas variáveis chamando define_syslog_variables().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As constantes listadas abaixo estão sempre disponíveis como parte do núcleo do PHP.

Tabela 2. openlog() Options

Constant | Descrição
LOG_CONS | se há um erro enquanto enviando dados para o logger do sistema, escreverá diretamente para o console do sistema
LOG_NDELAY | abre a conexão para o logger imediatamente
LOG_ODELAY | (padrão) atrasa a abertura da conexão até a primeira mensagem está logada
LOG_NOWAIT |
LOG_PERROR | exibe a mensagem de log também para o erro padrão
LOG_PID | inclui PID com cada mensagem

Tabela 3. Facilidades openlog()

Constant | Descrição
LOG_AUTH | mensagens de segurança/autorização (usa LOG_AUTHPRIV no lugar em sistemas onde essa constante está definida)
LOG_AUTHPRIV | mensagens de segurança/autorização (privado)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | outros daemons de sistema
LOG_KERN | mensagens de kernel
LOG_LOCAL0 ... LOG_LOCAL7 | reservada para uso local, esta não está disponível em Windows
LOG_LPR | line printer subsystem
LOG_MAIL | subsystem de email
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | mensagens geradas internamente por syslogd
LOG_USER | mensagens de nível-usuário genéricas
LOG_UUCP | UUCP subsystem

Tabela 4. Prioridades (em ordem decrescente) de syslog()

Constant | Descrição
LOG_EMERG | sistema está inutilizável
LOG_ALERT | ação deve ser tomada imediatamente
LOG_CRIT | condições críticas
LOG_ERR | condições de erro
LOG_WARNING | condições de alertas
LOG_NOTICE | condição normal, mas significativa
LOG_INFO | mensagem informativa
LOG_DEBUG | mensagem de debug-level

Tabela 5. Opções de dns_get_record()

Constant | Descrição
DNS_A | Recurso de Endereço IPv4
DNS_MX | Recurso de cambista de Email
DNS_CNAME | Recurso de Alias (Nome Canônico)
DNS_NS | Recurso de Servidor de Nome Autorizado
DNS_PTR | Recurso de Indicador
DNS_HINFO | REcurso de Host Info (Ver IANA's Nomes de Sistema Operacional para o significado destes valores)
DNS_SOA | Início do Recurso de Autoridade
DNS_TXT | Recurso de Texto
DNS_ANY | Qualquer registro de Recurso. Na maioria dos sistemas retorna todos os registros de recursos, entretadno ele não seria confiado para usos críticos. Tente DNS_ALL no lugar.
DNS_AAAA | Recurso de Endereço de IPv6
DNS_ALL | Iterativamente examina o nome do servidor para cada tipo de gravação disponível.
Índice
checkdnsrr -- Check DNS records corresponding to a given Internet host name or IP address
closelog -- Close connection to system logger
debugger_off -- Disable internal PHP debugger (PHP 3)
debugger_on -- Habilita o depurador (debugger) interno (PHP 3)
define_syslog_variables -- Initializes all syslog related constants
dns_check_record -- Synonym for checkdnsrr()
dns_get_mx -- Sinônimo para getmxrr()
dns_get_record -- Fetch DNS Resource Records associated with a hostname
fsockopen -- Open Internet or Unix domain socket connection
gethostbyaddr -- Obtém nome do host de Internet correspondendo ao endereçõ de IP fornecido.
gethostbyname -- Get the IP address corresponding to a given Internet host name
gethostbynamel -- Get a list of IP addresses corresponding to a given Internet host name
getmxrr -- Obtém registros MX correspondendo ao nome do host de Internet fornecido.
getprotobyname -- Get protocol number associated with protocol name
getprotobynumber -- Get protocol name associated with protocol number
getservbyname -- Get port number associated with an Internet service and protocol
getservbyport -- Get Internet service which corresponds to port and protocol
ip2long -- Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address.
long2ip -- Converts an (IPv4) Internet network address into a string in Internet standard dotted format
openlog -- Open connection to system logger
pfsockopen -- Open persistent Internet or Unix domain socket connection
socket_get_status -- Alias of stream_get_meta_data()
socket_set_blocking -- Alias of stream_set_blocking()
socket_set_timeout -- Alias of stream_set_timeout()
syslog -- Generate a system log message

Anterior | Principal | Próxima
muscat_setup | Acima | checkdnsrr


checkdnsrr

(PHP 3, PHP 4 , PHP 5)

checkdnsrr -- Check DNS records corresponding to a given Internet host name or IP address

Description

int checkdnsrr ( string host [, string type])

Searches DNS for records of type type corresponding to host. Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.

type may be any one of: A, MX, NS, SOA, PTR, CNAME, AAAA, or ANY. The default is MX.

Host may either be the IP address in dotted-quad notation or the host name.

Nota: AAAA type added with PHP 5.0.0

Nota: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.

See also getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel(), and the named(8) manual
page.

Anterior | Principal | Próxima
Network - Funções de Rede | Acima | closelog


closelog

(PHP 3, PHP 4 , PHP 5)

closelog -- Close connection to system logger

Description

int closelog ( void )

closelog() closes the descriptor being used to write to the system logger. The use of closelog() is optional.

See also define_syslog_variables(),
syslog() and
openlog().

Anterior | Principal | Próxima
checkdnsrr | Acima | debugger_off


debugger_off

(PHP 3)

debugger_off -- Disable internal PHP debugger (PHP 3)

Description

int debugger_off ( void )

Disables the internal PHP debugger. This function is only available in PHP 3.

For more information see the appendix on Debugging PHP.

Anterior | Principal | Próxima
closelog | Acima | debugger_on


debugger_on

(PHP 3)

debugger_on -- Habilita o depurador (debugger) interno (PHP 3)

Descrição

int debugger_on ( string address)

Habilita o depurador interno do PHP, conectando-o ao address. Esta função só está disponível no PHP 3.

Para mais informação veja o apêndice em Depurando (debugging) o PHP.

Anterior | Principal | Próxima
debugger_off | Acima | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4 , PHP 5)

define_syslog_variables -- Initializes all syslog related constants

Description

void define_syslog_variables ( void )

Initializes all constants used in the syslog functions.

See also openlog(),
syslog() and
closelog().

Anterior | Principal | Próxima
debugger_on | Acima | dns_check_record


dns_check_record

(PHP 5)

dns_check_record -- Synonym for checkdnsrr()

Description

int dns_check_record ( string host [, string type])

Check DNS records corresponding to a given Internet host name or IP address

Anterior | Principal | Próxima
define_syslog_variables | Acima | dns_get_mx


dns_get_mx

(PHP 5)

dns_get_mx -- Sinônimo para getmxrr()

Descrição

int dns_get_mx ( string hostname, array mxhosts [, array &weight])

Obtém registros MX correspondendo ao nome do host de Internet fornecido.

Anterior | Principal | Próxima
dns_check_record | Acima | dns_get_record


dns_get_record

(PHP 5)

dns_get_record -- Fetch DNS Resource Records associated with a hostname

Description

array dns_get_record ( string hostname [, int type [, array &authns, array &addtl]])

Nota: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.

This function returns an array of associative arrays. Each associative array contains at minimum the following keys:

Tabela 1. Basic DNS attributes

Attribute | Meaning
host | The record in the DNS namespace to which the rest of the associated data refers.
class | dns_get_record() only returns Internet class records and as such this parameter will always return IN.
type | String containing the record type. Additional attributes will also be contained in the resulting array dependant on the value of type. See table below.
ttl | Time To Live remaining for this record. This will not equal the record's original ttl, but will rather equal the original ttl minus whatever length of time has passed since the authoritative name server was queried.

hostname should be a valid DNS hostname such as "www.example.com". Reverse lookups can be generated using in-addr.arpa notation, but gethostbyaddr() is more suitable for the majority of reverse lookups.

By default, dns_get_record() will search for any resource records associated with hostname. To limit the query, specify the optional type parameter. type may be any one of the following: DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_ALL or DNS_ANY. The default is DNS_ANY.

Nota: Because of eccentricities in the performance of libresolv between platforms, DNS_ANY will not always return every record, the slower DNS_ALL will collect all records more reliably.

The optional third and fourth arguments to this function, authns and addtl are passed by reference and, if given, will be populated with Resource Records for the Authoritative Name Servers, and any Additional Records respectively. See the example below.

Tabela 2. Other keys in associative arrays dependant on 'type'

Type | Extra Columns
A | ip: An IPv4 addresses in dotted decimal notation.
MX | pri: Priority of mail exchanger. Lower numbers indicate greater priority. target: FQDN of the mail exchanger. See also dns_get_mx().
CNAME | target: FQDN of location in DNS namespace to which the record is aliased.
NS | target: FQDN of the name server which is authoritative for this hostname.
PTR | target: Location within the DNS namespace to which this record points.
TXT | txt: Arbitrary string data associated with this record.
HINFO | cpu: IANA number designating the CPU of the machine referenced by this record. os: IANA number designating the Operating System on the machine referenced by this record. See IANA's Operating System Names for the meaning of these values.
SOA | mname: FQDN of the machine from which the resource records originated. rname: Email address of the administrative contain for this domain. serial: Serial # of this revision of the requested domain. refresh: Refresh interval (seconds) secondary name servers should use when updating remote copies of this domain. retry: Length of time (seconds) to wait after a failed refresh before making a second attempt. expire: Maximum length of time (seconds) a secondary DNS server should retain remote copies of the zone data without a successful refresh before discarding. minimum-ttl: Minimum length of time (seconds) a client can continue to use a DNS resolution before it should request a new resolution from the server. Can be overridden by individual resource records.
AAAA | ipv6: IPv6 address
SRV | pri: (Priority) lowest priorities should be used first. weight: Ranking to weight which of commonly prioritized targets should be chosen at random. target and port: hostname and port where the requested service can be found. For additional information see: RFC 2782
NAPTR | order and pref: Equivalent to pri and weight above. flags, services, regex, and replacement: Parameters as defined by RFC 2915.

Nota: Per DNS standards, email addresses are given in user.host format (for example: hostmaster.example.com as opposed to hostmaster@example.com), be sure to check this value and modify if necessary before using it with a functions such as mail().

Exemplo 1. Using dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Produces output similar to the following:

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Since it's very common to want the IP address of a mail server once the MX record has been resolved, dns_get_record() also returns an array in addtl which contains associate records. authns is returned as well containing a list of authoritative name servers.

Exemplo 2. Using dns_get_record() and DNS_ANY

<?php
/* Request "ANY" record for php.net,
   and create $authns and $addtl arrays
   containing list of name servers and
   any additional records which go with
   them */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

Produces output similar to the following:

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

See also dns_get_mx(), and dns_check_record()

Anterior | Principal | Próxima
dns_get_mx | Acima | fsockopen


fsockopen

(PHP 3, PHP 4 , PHP 5)

fsockopen -- Open Internet or Unix domain socket connection

Description

resource fsockopen ( string target, int port [, int errno [, string errstr [, float timeout]]])

Initiates a socket connection to the resource specified by target. PHP supports targets in the Internet and Unix domains as described in Apêndice L. A list of supported transports can also be retrieved using stream_get_transports().

Nota: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to fsockopen() only applies while connecting the socket.

As of PHP 4.3.0, if you have compiled in OpenSSL support, you may prefix the hostname with either 'ssl://' or 'tls://' to use an SSL or TLS client connection over TCP/IP to connect to the remote host.

fsockopen() returns a file pointer which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available.

The socket will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Exemplo 1. fsockopen() Example

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Exemplo 2. Using UDP connection

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Atenção

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Nota: Quando informando endereços IPv6 numéricos (por exemplo, fe80::1), você precisa englobar o IP entre colchetes. Exemplo: tcp://[fe80::1]:80.

Nota: The timeout parameter was introduced in PHP 3.0.9 and UDP support was added in PHP 4.

See also pfsockopen(), stream_set_blocking(), stream_set_timeout(), fgets(), fgetss(), fwrite(), fclose(), feof(), and the Curl extension.

Anterior | Principal | Próxima
dns_get_record | Acima | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4 , PHP 5)

gethostbyaddr -- Obtém nome do host de Internet correspondendo ao endereçõ de IP fornecido.

Descrição

string gethostbyaddr ( string ip_address)

Retorna o nome do host do host de Internet especificado por ip_address ou uma string contendo o não modificado ip_address em insucesso.

Exemplo 1. Um simples exemplo de gethostbyaddr()

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Veja tabém gethostbyname().

Anterior | Principal | Próxima
fsockopen | Acima | gethostbyname


gethostbyname

(PHP 3, PHP 4 , PHP 5)

gethostbyname -- Get the IP address corresponding to a given Internet host name

Description

string gethostbyname ( string hostname)

Returns the IP address of the Internet host specified by hostname or a string containing the unmodified hostname on failure.

Exemplo 1. A simple gethostbyname() example

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

See also gethostbyaddr().

Anterior | Principal | Próxima
gethostbyaddr | Acima | gethostbynamel


gethostbynamel

(PHP 3, PHP 4 , PHP 5)

gethostbynamel -- Get a list of IP addresses corresponding to a given Internet host name

Description

array gethostbynamel ( string hostname)

Returns a list of IP addresses to which the Internet host specified by hostname resolves.

Exemplo 1. gethostbynamel() example

<?php
  $hosts = gethostbynamel('www.example.com');
  print_r($hosts);
?>

The printout of the above program will be:
Array
(
    [0] => 192.0.34.166
)

See also gethostbyname(),
gethostbyaddr(),
checkdnsrr(), getmxrr(),
and the named(8) manual page.

Anterior | Principal | Próxima
gethostbyname | Acima | getmxrr


getmxrr

(PHP 3, PHP 4 , PHP 5)

getmxrr -- Obtém registros MX correspondendo ao nome do host de Internet fornecido.

Descrição

int getmxrr ( string hostname, array mxhosts [, array weight])

Pesquisa DNS para registros MX correspondendo a hostname. Retorna ??? se algum registro é encontrado; retorna ??? se nenhum registro é encontrado ou se um erro ocorreu.

Uma lista dos registros MX encontrados é colocada dentro de um array mxhosts. Se o array weight é dado, ele será preenchido com a informação de weight colhida.

Nota: Esta função não seria usada para propósitos de verificação de endereços. Apenas os mailexchangers encontrados no DNS são retornados, entretanto, de acordo com RFC 2821 quando nenhum mail exchangers está listado, hostname seria usado como apenas mail exchanger com uma prioridade 0.

Nota: Esta função não é implementada em plataformas Windows. Tente a classe PEAR Net_DNS.

Veja também checkdnsrr(),
gethostbyname(),
gethostbynamel(),
gethostbyaddr(), e
named(8) página do manual.

Anterior | Principal | Próxima
gethostbynamel | Acima | getprotobyname


getprotobyname

(PHP 4 , PHP 5)

getprotobyname -- Get protocol number associated with protocol name

Description

int getprotobyname ( string name)

getprotobyname() returns the protocol number associated with the protocol name as per /etc/protocols.

Exemplo 1. getprotobyname() example

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot == -1) {
    // if nothing found, returns -1
    echo 'Invalid Protocol';
} else {
    echo 'Protocol #' . $get_prot;
}
?>

See also: getprotobynumber().

Anterior | Principal | Próxima
getmxrr | Acima | getprotobynumber


getprotobynumber

(PHP 4 , PHP 5)

getprotobynumber -- Get protocol name associated with protocol number

Description

string getprotobynumber ( int number)

getprotobynumber() returns the protocol name associated with protocol number as per /etc/protocols.

See also: getprotobyname().

Anterior | Principal | Próxima
getprotobyname | Acima | getservbyname


getservbyname

(PHP 4 , PHP 5)

getservbyname -- Get port number associated with an Internet service and protocol

Description

int getservbyname ( string service, string protocol)

getservbyname() returns the Internet port which corresponds to service for the specified protocol as per /etc/services. protocol is either "tcp" or "udp" (in lowercase).

Exemplo 1. getservbyname() example

<?php
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

foreach ($services as $service) {
    $port = getservbyname($service, 'tcp');
    echo $service . ": " . $port . "<br />\n";
}
?>

For complete list of port numbers see: http://www.iana.org/assignments/port-numbers.

See also: getservbyport().

Anterior | Principal | Próxima
getprotobynumber | Acima | getservbyport


getservbyport

(PHP 4 , PHP 5)

getservbyport -- Get Internet service which corresponds to port and protocol

Description

string getservbyport ( int port, string protocol)

getservbyport() returns the Internet service associated with port for the specified protocol as per /etc/services. protocol is either "tcp" or "udp" (in lowercase).

See also: getservbyname().

Anterior | Principal | Próxima
getservbyname | Acima | ip2long


ip2long

(PHP 4 , PHP 5)

ip2long -- Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address.

Description

int ip2long ( string ip_address)

The function ip2long() generates an IPv4 Internet network address from its Internet standard format (dotted string) representation. If ip_address is invalid then -1 is returned. Note that -1 does not evaluate as FALSE in PHP.

Exemplo 1. ip2long() Example

<?php
$ip = gethostbyname("www.example.com");
$out = "The following URLs are equivalent:<br />\n";
$out .= "http://www.example.com/, http://" . $ip . "/, and http://" . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Nota: Because PHP's integer type is signed, and many IP addresses will result in negative integers, you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address.

This second example shows how to print a converted address with the printf() function :

Exemplo 2. Displaying an IP address

<?php
$ip   = gethostbyname("www.example.com");
$long = ip2long($ip);

if ($long === -1) {
    echo "Invalid IP, please try again";
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

ip2long() will also work with non-complete ip adresses. Read http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm for more info.

Nota: ip2long() will return -1 for the ip 255.255.255.255

See also long2ip() and sprintf().

Anterior | Principal | Próxima
getservbyport | Acima | long2ip


long2ip

(PHP 4 , PHP 5)

long2ip -- Converts an (IPv4) Internet network address into a string in Internet standard dotted format

Description

string long2ip ( int proper_address)

The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the proper address representation.

See also: ip2long()

Anterior | Principal | Próxima
ip2long | Acima | openlog


openlog

(PHP 3, PHP 4 , PHP 5)

openlog -- Open connection to system logger

Description

int openlog ( string ident, int option, int facility)

openlog() opens a connection to the system logger for a program. The string ident is added to each message. Values for option and facility are given below. The option argument is used to indicate what logging options will be used when generating a log message. The facility argument is used to specify what type of program is logging the message. This allows you to specify (in your machine's syslog configuration) how messages coming from different facilities will be handled. The use of openlog() is optional. It will automatically be called by syslog() if necessary, in which case ident will default to FALSE.

Tabela 1. openlog() Options

Constant | Description
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console
LOG_NDELAY | open the connection to the logger immediately
LOG_ODELAY | (default) delay opening the connection until the first message is logged
LOG_PERROR | print log message also to standard error
LOG_PID | include PID with each message
You can use one or more of this options. When using multiple options you need to OR them, i.e. to open the connection immediately, write to the console and include the PID in each message, you will use: LOG_CONS | LOG_NDELAY | LOG_PID

Tabela 2. openlog() Facilities

Constant | Description
LOG_AUTH | security/authorization messages (use LOG_AUTHPRIV instead in systems where that constant is defined)
LOG_AUTHPRIV | security/authorization messages (private)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | other system daemons
LOG_KERN | kernel messages
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows
LOG_LPR | line printer subsystem
LOG_MAIL | mail subsystem
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | messages generated internally by syslogd
LOG_USER | generic user-level messages
LOG_UUCP | UUCP subsystem

Nota: LOG_USER is the only valid log type under Windows operating systems

See also define_syslog_variables(),
syslog() and
closelog().

Anterior | Principal | Próxima
long2ip | Acima | pfsockopen


pfsockopen

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pfsockopen -- Open persistent Internet or Unix domain socket connection

Description

resource pfsockopen ( string hostname, int port [, int errno [, string errstr [, int timeout]]])

This function behaves exactly as fsockopen() with the difference that the connection is not closed after the script finishes. It is the persistent version of fsockopen().

Anterior | Principal | Próxima
openlog | Acima | socket_get_status


socket_get_status

socket_get_status -- Alias of stream_get_meta_data()

Description

This function is an alias of stream_get_meta_data().

Anterior | Principal | Próxima
pfsockopen | Acima | socket_set_blocking


socket_set_blocking

socket_set_blocking -- Alias of stream_set_blocking()

Description

This function is an alias for stream_set_blocking().

Anterior | Principal | Próxima
socket_get_status | Acima | socket_set_timeout


socket_set_timeout

socket_set_timeout -- Alias of stream_set_timeout()

Description

socket_set_timeout() is an alias for stream_set_timeout().

Anterior | Principal | Próxima
socket_set_blocking | Acima | syslog


syslog

(PHP 3, PHP 4 , PHP 5)

syslog -- Generate a system log message

Description

int syslog ( int priority, string message)

syslog() generates a log message that will be distributed by the system logger. priority is a combination of the facility and the level, values for which are given in the next section. The remaining argument is the message to send, except that the two characters %m will be replaced by the error message string (strerror) corresponding to the present value of errno.

Tabela 1. syslog() Priorities (in descending order)

Constant | Description
LOG_EMERG | system is unusable
LOG_ALERT | action must be taken immediately
LOG_CRIT | critical conditions
LOG_ERR | error conditions
LOG_WARNING | warning conditions
LOG_NOTICE | normal, but significant, condition
LOG_INFO | informational message
LOG_DEBUG | debug-level message

Exemplo 1. Using syslog()

<?php
define_syslog_variables();
// open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
openlog("myScripLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// some code

if (authorized_client()) {
    // do something
} else {
    // unauthorized client!
    // log the attempt
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Unauthorized client: $access $REMOTE_ADDR ($HTTP_USER_AGENT)");
}

closelog();
?>
For information on setting up a user defined log handler, see the syslog.conf(5) Unix manual page. More information on the syslog facilities and option can be found in the man pages for syslog(3) on Unix machines.

On Windows NT, the syslog service is emulated using the Event Log.

Nota: Use of LOG_LOCAL0 through LOG_LOCAL7 for the facility parameter of openlog() is not available in Windows.

See also define_syslog_variables(),
openlog() and
closelog().

Anterior | Principal | Próxima
socket_set_timeout | Acima | Ncurses Terminal Screen Control Functions


Ncurses Terminal Screen Control Functions

Manual do PHP
Anterior Próxima

LXIX. Ncurses Terminal Screen Control Functions

Introdução

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Ncurses is available for the following platforms:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Requisitos

You need the ncurses libraries and headerfiles. Download the latest version from the ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.

Instalação

To get these functions to work, you have to compile the CGI or CLI version of PHP with --with-ncurses[=DIR].

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Ncurses configuration options

Name | Default | Changeable
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Error codes

On error ncurses functions return NCURSES_ERR.

Colors

Tabela 2. ncurses color constants

constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mod
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mod
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mod
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mod
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mod

Keys

Tabela 3. ncurses key constants

constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value

Mouse

Tabela 4. mouse constants

Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position
Índice
ncurses_addch -- Add character at current position and advance cursor
ncurses_addchnstr -- Add attributed string with specified length at current position
ncurses_addchstr -- Add attributed string at current position
ncurses_addnstr -- Add string with specified length at current position
ncurses_addstr -- Output text at current position
ncurses_assume_default_colors -- Define default colors for color 0
ncurses_attroff -- Turn off the given attributes
ncurses_attron -- Turn on the given attributes
ncurses_attrset -- Set given attributes
ncurses_baudrate -- Returns baudrate of terminal
ncurses_beep -- Let the terminal beep
ncurses_bkgd -- Set background property for terminal screen
ncurses_bkgdset -- Control screen background
ncurses_border -- Draw a border around the screen using attributed characters
ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack
ncurses_can_change_color -- Check if we can change terminals colors
ncurses_cbreak -- Switch of input buffering
ncurses_clear -- Clear screen
ncurses_clrtobot -- Clear screen from current position to bottom
ncurses_clrtoeol -- Clear screen from current position to end of line
ncurses_color_content -- Gets the RGB value for color
ncurses_color_set -- Set fore- and background color
ncurses_curs_set -- Set cursor state
ncurses_def_prog_mode -- Saves terminals (program) mode
ncurses_def_shell_mode -- Saves terminals (shell) mode
ncurses_define_key -- Define a keycode
ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)
ncurses_delay_output -- Delay output on terminal using padding characters
ncurses_delch -- Delete character at current position, move rest of line left
ncurses_deleteln -- Delete line at current position, move rest of screen up
ncurses_delwin -- Delete a ncurses window
ncurses_doupdate -- Write all prepared refreshes to terminal
ncurses_echo -- Activate keyboard input echo
ncurses_echochar -- Single character output including refresh
ncurses_end -- Stop using ncurses, clean up the screen
ncurses_erase -- Erase terminal screen
ncurses_erasechar -- Returns current erase character
ncurses_filter --
ncurses_flash -- Flash terminal screen (visual bell)
ncurses_flushinp -- Flush keyboard input buffer
ncurses_getch -- Read a character from keyboard
ncurses_getmaxyx -- Returns the size of a window
ncurses_getmouse -- Reads mouse event
ncurses_getyx -- Returns the current cursor position for a window
ncurses_halfdelay -- Put terminal into halfdelay mode
ncurses_has_colors -- Check if terminal has colors
ncurses_has_ic -- Check for insert- and delete-capabilities
ncurses_has_il -- Check for line insert- and delete-capabilities
ncurses_has_key -- Check for presence of a function key on terminal keyboard
ncurses_hide_panel -- Remove panel from the stack, making it invisible
ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long
ncurses_inch -- Get character and attribute at current position
ncurses_init_color -- Set new RGB value for color
ncurses_init_pair -- Allocate a color pair
ncurses_init -- Initialize ncurses
ncurses_insch -- Insert character moving rest of line including character at current position
ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)
ncurses_insertln -- Insert a line, move rest of screen down
ncurses_insstr -- Insert string at current position, moving rest of line right
ncurses_instr -- Reads string from terminal screen
ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed
ncurses_keyok -- Enable or disable a keycode
ncurses_keypad -- Turns keypad on or off
ncurses_killchar -- Returns current line kill character
ncurses_longname -- Returns terminals description
ncurses_meta -- Enables/Disable 8-bit meta key information
ncurses_mouse_trafo -- Transforms coordinates
ncurses_mouseinterval -- Set timeout for mouse button clicks
ncurses_mousemask -- Sets mouse options
ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]
ncurses_move -- Move output position
ncurses_mvaddch -- Move current position and add character
ncurses_mvaddchnstr -- Move position and add attributed string with specified length
ncurses_mvaddchstr -- Move position and add attributed string
ncurses_mvaddnstr -- Move position and add string with specified length
ncurses_mvaddstr -- Move position and add string
ncurses_mvcur -- Move cursor immediately
ncurses_mvdelch -- Move position and delete character, shift rest of line left
ncurses_mvgetch -- Move position and get character at new position
ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long
ncurses_mvinch -- Move position and get attributed character at new position
ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long
ncurses_mvwaddstr -- Add string at new position in window
ncurses_napms -- Sleep
ncurses_new_panel -- Create a new panel and associate it with window
ncurses_newpad -- Creates a new pad (window)
ncurses_newwin -- Create a new window
ncurses_nl -- Translate newline and carriage return / line feed
ncurses_nocbreak -- Switch terminal to cooked mode
ncurses_noecho -- Switch off keyboard input echo
ncurses_nonl -- Do not translate newline and carriage return / line feed
ncurses_noqiflush -- Do not flush on signal characters
ncurses_noraw -- Switch terminal out of raw mode
ncurses_pair_content -- Gets the RGB value for color
ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack
ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack
ncurses_panel_window -- Returns the window associated with panel
ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen
ncurses_prefresh -- Copies a region from a pad into the virtual screen
ncurses_putp --
ncurses_qiflush -- Flush on signal characters
ncurses_raw -- Switch terminal into raw mode
ncurses_refresh -- Refresh screen
ncurses_replace_panel -- Replaces the window associated with panel
ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode
ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode
ncurses_resetty -- Restores saved terminal state
ncurses_savetty -- Saves terminal state
ncurses_scr_dump -- Dump screen content to file
ncurses_scr_init -- Initialize screen from file dump
ncurses_scr_restore -- Restore screen from file dump
ncurses_scr_set -- Inherit screen from file dump
ncurses_scrl -- Scroll window content up or down without changing current position
ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible
ncurses_slk_attr -- Returns current soft label key attribute
ncurses_slk_attroff --
ncurses_slk_attron --
ncurses_slk_attrset --
ncurses_slk_clear -- Clears soft labels from screen
ncurses_slk_color -- Sets color for soft label keys
ncurses_slk_init -- Initializes soft label key functions
ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen
ncurses_slk_refresh -- Copies soft label keys to screen
ncurses_slk_restore -- Restores soft label keys
ncurses_slk_set -- Sets function key labels
ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed
ncurses_standend -- Stop using 'standout' attribute
ncurses_standout -- Start using 'standout' attribute
ncurses_start_color -- Start using colors
ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal
ncurses_termname -- Returns terminals (short)-name
ncurses_timeout -- Set timeout for special key sequences
ncurses_top_panel -- Moves a visible panel to the top of the stack
ncurses_typeahead -- Specify different filedescriptor for typeahead checking
ncurses_ungetch -- Put a character back into the input stream
ncurses_ungetmouse -- Pushes mouse event to queue
ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.
ncurses_use_default_colors -- Assign terminal default colors to color id -1
ncurses_use_env -- Control use of environment information about terminal size
ncurses_use_extended_names -- Control use of extended names in terminfo descriptions
ncurses_vidattr --
ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long
ncurses_waddch -- Adds character at current position in a window and advance cursor
ncurses_waddstr -- Outputs text at current postion in window
ncurses_wattroff -- Turns off attributes for a window
ncurses_wattron -- Turns on attributes for a window
ncurses_wattrset -- Set the attributes for a window
ncurses_wborder -- Draws a border around the window using attributed characters
ncurses_wclear -- Clears window
ncurses_wcolor_set -- Sets windows color pairings
ncurses_werase -- Erase window contents
ncurses_wgetch -- Reads a character from keyboard (window)
ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long
ncurses_wmouse_trafo -- Transforms window/stdscr coordinates
ncurses_wmove -- Moves windows output position
ncurses_wnoutrefresh -- Copies window to virtual screen
ncurses_wrefresh -- Refresh window on terminal screen
ncurses_wstandend -- End standout mode for a window
ncurses_wstandout -- Enter standout mode for a window
ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Anterior | Principal | Próxima
syslog | Acima | ncurses_addch


ncurses_addch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_addch -- Add character at current position and advance cursor

Description

int ncurses_addch ( int ch)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Ncurses Terminal Screen Control Functions | Acima | ncurses_addchnstr


ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchnstr -- Add attributed string with specified length at current position

Description

int ncurses_addchnstr ( string s, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_addch | Acima | ncurses_addchstr


ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchstr -- Add attributed string at current position

Description

int ncurses_addchstr ( string s)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_addchnstr | Acima | ncurses_addnstr


ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addnstr -- Add string with specified length at current position

Description

int ncurses_addnstr ( string s, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_addchstr | Acima | ncurses_addstr


ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addstr -- Output text at current position

Description

int ncurses_addstr ( string text)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_addnstr | Acima | ncurses_assume_default_colors


ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5)

ncurses_assume_default_colors -- Define default colors for color 0

Description

int ncurses_assume_default_colors ( int fg, int bg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_addstr | Acima | ncurses_attroff


ncurses_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attroff -- Turn off the given attributes

Description

int ncurses_attroff ( int attributes)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_assume_default_colors | Acima | ncurses_attron


ncurses_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attron -- Turn on the given attributes

Description

int ncurses_attron ( int attributes)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_attroff | Acima | ncurses_attrset


ncurses_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attrset -- Set given attributes

Description

int ncurses_attrset ( int attributes)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_attron | Acima | ncurses_baudrate


ncurses_baudrate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_baudrate -- Returns baudrate of terminal

Description

int ncurses_baudrate ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_attrset | Acima | ncurses_beep


ncurses_beep

(PHP 4 >= 4.1.0, PHP 5)

ncurses_beep -- Let the terminal beep

Description

int ncurses_beep ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also ncurses_flash()

Anterior | Principal | Próxima
ncurses_baudrate | Acima | ncurses_bkgd


ncurses_bkgd

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgd -- Set background property for terminal screen

Description

int ncurses_bkgd ( int attrchar)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_beep | Acima | ncurses_bkgdset


ncurses_bkgdset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgdset -- Control screen background

Description

void ncurses_bkgdset ( int attrchar)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_bkgd | Acima | ncurses_border


ncurses_border

(PHP 4 >= 4.2.0, PHP 5)

ncurses_border -- Draw a border around the screen using attributed characters

Description

int ncurses_border ( int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_border() draws the specified lines and corners around the main window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_wborder() for borders around subwindows!

See also ncurses_wborder().

Anterior | Principal | Próxima
ncurses_bkgdset | Acima | ncurses_bottom_panel


ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack

Description

int ncurses_bottom_panel ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_border | Acima | ncurses_can_change_color


ncurses_can_change_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_can_change_color -- Check if we can change terminals colors

Description

bool ncurses_can_change_color ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function ncurses_can_change_color() returns TRUE or FALSE, depending on whether the terminal has color capabilities and whether the programmer can change the colors.

Anterior | Principal | Próxima
ncurses_bottom_panel | Acima | ncurses_cbreak


ncurses_cbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_cbreak -- Switch of input buffering

Description

bool ncurses_cbreak ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_cbreak() disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

ncurses_cbreak() returns TRUE or NCURSES_ERR if any error occurred.

See also: ncurses_nocbreak()

Anterior | Principal | Próxima
ncurses_can_change_color | Acima | ncurses_clear


ncurses_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clear -- Clear screen

Description

bool ncurses_clear ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_clear() clears the screen completely without setting blanks. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

See also ncurses_erase().

Anterior | Principal | Próxima
ncurses_cbreak | Acima | ncurses_clrtobot


ncurses_clrtobot

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtobot -- Clear screen from current position to bottom

Description

bool ncurses_clrtobot ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_clrtobot() erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also ncurses_clear(), and ncurses_clrtoeol()

Anterior | Principal | Próxima
ncurses_clear | Acima | ncurses_clrtoeol


ncurses_clrtoeol

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtoeol -- Clear screen from current position to end of line

Description

bool ncurses_clrtoeol ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_clrtoeol() erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also ncurses_clear(), and ncurses_clrtobot()

Anterior | Principal | Próxima
ncurses_clrtobot | Acima | ncurses_color_content


ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_color_content -- Gets the RGB value for color

Description

int ncurses_color_content ( int color, int &r, int &g, int &b)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_clrtoeol | Acima | ncurses_color_set


ncurses_color_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_color_set -- Set fore- and background color

Description

int ncurses_color_set ( int pair)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_color_content | Acima | ncurses_curs_set


ncurses_curs_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_curs_set -- Set cursor state

Description

int ncurses_curs_set ( int visibility)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_color_set | Acima | ncurses_def_prog_mode


ncurses_def_prog_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_prog_mode -- Saves terminals (program) mode

Description

bool ncurses_def_prog_mode ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_def_prog_mode() saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_prog_mode()

Anterior | Principal | Próxima
ncurses_curs_set | Acima | ncurses_def_shell_mode


ncurses_def_shell_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_shell_mode -- Saves terminals (shell) mode

Description

bool ncurses_def_shell_mode ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_def_shell_mode() saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_shell_mode()

Anterior | Principal | Próxima
ncurses_def_prog_mode | Acima | ncurses_define_key


ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5)

ncurses_define_key -- Define a keycode

Description

int ncurses_define_key ( string definition, int keycode)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_def_shell_mode | Acima | ncurses_del_panel


ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)

Description

int ncurses_del_panel ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_define_key | Acima | ncurses_delay_output


ncurses_delay_output

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delay_output -- Delay output on terminal using padding characters

Description

int ncurses_delay_output ( int milliseconds)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_del_panel | Acima | ncurses_delch


ncurses_delch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delch -- Delete character at current position, move rest of line left

Description

bool ncurses_delch ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_delch() deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_deleteln()

Anterior | Principal | Próxima
ncurses_delay_output | Acima | ncurses_deleteln


ncurses_deleteln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_deleteln -- Delete line at current position, move rest of screen up

Description

bool ncurses_deleteln ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_deleteln() deletes the current line under cursorposition. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_delch()

Anterior | Principal | Próxima
ncurses_delch | Acima | ncurses_delwin


ncurses_delwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delwin -- Delete a ncurses window

Description

int ncurses_delwin ( resource window)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_deleteln | Acima | ncurses_doupdate


ncurses_doupdate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_doupdate -- Write all prepared refreshes to terminal

Description

bool ncurses_doupdate ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_doupdate()() compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ncurses_delwin | Acima | ncurses_echo


ncurses_echo

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echo -- Activate keyboard input echo

Description

bool ncurses_echo ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_echo() enables echo mode. All characters typed by user are echoed by ncurses_getch(). Returns FALSE on success, TRUE if any error occurred.

To disable echo mode use ncurses_noecho().

Anterior | Principal | Próxima
ncurses_doupdate | Acima | ncurses_echochar


ncurses_echochar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echochar -- Single character output including refresh

Description

int ncurses_echochar ( int character)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_echo | Acima | ncurses_end


ncurses_end

(PHP 4 >= 4.1.0, PHP 5)

ncurses_end -- Stop using ncurses, clean up the screen

Description

int ncurses_end ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_echochar | Acima | ncurses_erase


ncurses_erase

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erase -- Erase terminal screen

Description

bool ncurses_erase ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_erase() fills the terminal screen with blanks. Created blanks have the current background rendition, set by ncurses_bkgd(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also ncurses_bkgd(), and ncurses_clear()

Anterior | Principal | Próxima
ncurses_end | Acima | ncurses_erasechar


ncurses_erasechar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erasechar -- Returns current erase character

Description

string ncurses_erasechar ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_erasechar() returns the current erase char character.

See also: ncurses_killchar()

Anterior | Principal | Próxima
ncurses_erase | Acima | ncurses_filter


ncurses_filter

(PHP 4 >= 4.1.0, PHP 5)

ncurses_filter --

Description

int ncurses_filter ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_erasechar | Acima | ncurses_flash


ncurses_flash

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flash -- Flash terminal screen (visual bell)

Description

bool ncurses_flash ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_flash() flashes the screen, and if its not possible, sends an audible alert (bell). Returns FALSE on success, otherwise TRUE.

See also: ncurses_beep()

Anterior | Principal | Próxima
ncurses_filter | Acima | ncurses_flushinp


ncurses_flushinp

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flushinp -- Flush keyboard input buffer

Description

bool ncurses_flushinp ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The ncurses_flushinp() throws away any typeahead that has been typed and has not yet been read by your program. Returns FALSE on success, otherwise TRUE.

Anterior | Principal | Próxima
ncurses_flash | Acima | ncurses_getch


ncurses_getch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_getch -- Read a character from keyboard

Description

int ncurses_getch ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_flushinp | Acima | ncurses_getmaxyx


ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getmaxyx -- Returns the size of a window

Description

void ncurses_getmaxyx ( resource window, int &y, int &x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_getmaxyx() puts the horizontal and vertical size of the window window into the given variables &y and &x. Variables must be passed as reference, so they are updated when the user changes terminal size.

Anterior | Principal | Próxima
ncurses_getch | Acima | ncurses_getmouse


ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_getmouse -- Reads mouse event

Description

bool ncurses_getmouse ( array mevent)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_getmouse() reads mouse event out of queue. Function ncurses_getmouse() will return ;FALSE if a mouse event is actually visible in the given window, otherwise it will return TRUE. Event options will be delivered in parameter mevent, which has to be an array, passed by reference (see example below). On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Exemplo 1. ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

See also ncurses_ungetmouse()

Anterior | Principal | Próxima
ncurses_getmaxyx | Acima | ncurses_getyx


ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getyx -- Returns the current cursor position for a window

Description

void ncurses_getyx ( resource window, int &y, int &x)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_getmouse | Acima | ncurses_halfdelay


ncurses_halfdelay

(PHP 4 >= 4.1.0, PHP 5)

ncurses_halfdelay -- Put terminal into halfdelay mode

Description

int ncurses_halfdelay ( int tenth)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_getyx | Acima | ncurses_has_colors


ncurses_has_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_colors -- Check if terminal has colors

Description

bool ncurses_has_colors ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_has_colors() returns TRUE or FALSE depending on whether the terminal has color capacities.

See also: ncurses_can_change_color()

Anterior | Principal | Próxima
ncurses_halfdelay | Acima | ncurses_has_ic


ncurses_has_ic

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_ic -- Check for insert- and delete-capabilities

Description

bool ncurses_has_ic ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_has_ic() checks terminals insert- and delete capabilities. It returns TRUE when terminal has insert/delete-capabilities, otherwise FALSE.

See also: ncurses_has_il()

Anterior | Principal | Próxima
ncurses_has_colors | Acima | ncurses_has_il


ncurses_has_il

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_il -- Check for line insert- and delete-capabilities

Description

bool ncurses_has_il ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_has_il() checks terminals insert- and delete-line-capabilities. It returns TRUE when terminal has insert/delete-line capabilities, otherwise FALSE

See also: ncurses_has_ic()

Anterior | Principal | Próxima
ncurses_has_ic | Acima | ncurses_has_key


ncurses_has_key

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_key -- Check for presence of a function key on terminal keyboard

Description

int ncurses_has_key ( int keycode)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_has_il | Acima | ncurses_hide_panel


ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_hide_panel -- Remove panel from the stack, making it invisible

Description

int ncurses_hide_panel ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_has_key | Acima | ncurses_hline


ncurses_hline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long

Description

int ncurses_hline ( int charattr, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_hide_panel | Acima | ncurses_inch


ncurses_inch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_inch -- Get character and attribute at current position

Description

string ncurses_inch ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_inch() returns the character from the current position.

Anterior | Principal | Próxima
ncurses_hline | Acima | ncurses_init_color


ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5)

ncurses_init_color -- Set new RGB value for color

Description

int ncurses_init_color ( int color, int r, int g, int b)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_inch | Acima | ncurses_init_pair


ncurses_init_pair

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init_pair -- Allocate a color pair

Description

int ncurses_init_pair ( int pair, int fg, int bg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_init_color | Acima | ncurses_init


ncurses_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init -- Initialize ncurses

Description

int ncurses_init ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_init() initializes the ncurses interface and must be used before any other ncurses function.

Anterior | Principal | Próxima
ncurses_init_pair | Acima | ncurses_insch


ncurses_insch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insch -- Insert character moving rest of line including character at current position

Description

int ncurses_insch ( int character)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_init | Acima | ncurses_insdelln


ncurses_insdelln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)

Description

int ncurses_insdelln ( int count)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_insch | Acima | ncurses_insertln


ncurses_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln -- Insert a line, move rest of screen down

Description

bool ncurses_insertln ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

Anterior | Principal | Próxima
ncurses_insdelln | Acima | ncurses_insstr


ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_insstr -- Insert string at current position, moving rest of line right

Description

int ncurses_insstr ( string text)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_insertln | Acima | ncurses_instr


ncurses_instr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_instr -- Reads string from terminal screen

Description

int ncurses_instr ( string buffer)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_instr() returns the number of characters read from the current character position until end of line. buffer contains the characters. Attributes are stripped from the characters.

Anterior | Principal | Próxima
ncurses_insstr | Acima | ncurses_isendwin


ncurses_isendwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed

Description

bool ncurses_isendwin ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_isendwin() returns TRUE, if
ncurses_endwin() has been called without any
subsequent calls to ncurses_wrefresh(),
otherwise FALSE.

See also ncurses_endwin() and ncurses_wrefresh().

Anterior | Principal | Próxima
ncurses_instr | Acima | ncurses_keyok


ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keyok -- Enable or disable a keycode

Description

int ncurses_keyok ( int keycode, bool enable)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_isendwin | Acima | ncurses_keypad


ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keypad -- Turns keypad on or off

Description

int ncurses_keypad ( resource window, bool bf)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_keyok | Acima | ncurses_killchar


ncurses_killchar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_killchar -- Returns current line kill character

Description

bool ncurses_killchar ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_killchar() returns the current line kill character.

See also: ncurses_erasechar()

Anterior | Principal | Próxima
ncurses_keypad | Acima | ncurses_longname


ncurses_longname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_longname -- Returns terminals description

Description

string ncurses_longname ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_longname() returns a verbose description of the terminal. The description is truncated to 128 characters. On Error ncurses_longname() returns NULL.

See also: ncurses_termname()

Anterior | Principal | Próxima
ncurses_killchar | Acima | ncurses_meta


ncurses_meta

(PHP 4 >= 4.3.0, PHP 5)

ncurses_meta -- Enables/Disable 8-bit meta key information

Description

long ncurses_meta ( resource window, bool 8bit)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_longname | Acima | ncurses_mouse_trafo


ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mouse_trafo -- Transforms coordinates

Description

bool ncurses_mouse_trafo ( int &y, int &x, bool toscreen)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_meta | Acima | ncurses_mouseinterval


ncurses_mouseinterval

(PHP 4 >= 4.1.0, PHP 5)

ncurses_mouseinterval -- Set timeout for mouse button clicks

Description

int ncurses_mouseinterval ( int milliseconds)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mouse_trafo | Acima | ncurses_mousemask


ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mousemask -- Sets mouse options

Description

int ncurses_mousemask ( int newmask, int oldmask)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Function ncurses_mousemask() will set mouse events to be reported. By default no mouse events will be reported. The function ncurses_mousemask() will return a mask to indicated which of the in parameter newmask specified mouse events can be reported. On complete failure, it returns 0. In parameter oldmask, which is passed by reference ncurses_mousemask() returns the previous value of mouse event mask. Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of of queue, call ncurses_getmouse().

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Exemplo 1. ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
  printf ("All specified mouse options will be supported\n");
}
?>

See also ncurses_getmouse(),
ncurses_ungetmouse() and
ncurese_getch().

Anterior | Principal | Próxima
ncurses_mouseinterval | Acima | ncurses_move_panel


ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]

Description

int ncurses_move_panel ( resource panel, int startx, int starty)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mousemask | Acima | ncurses_move


ncurses_move

(PHP 4 >= 4.1.0, PHP 5)

ncurses_move -- Move output position

Description

int ncurses_move ( int y, int x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_move_panel | Acima | ncurses_mvaddch


ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddch -- Move current position and add character

Description

int ncurses_mvaddch ( int y, int x, int c)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_move | Acima | ncurses_mvaddchnstr


ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchnstr -- Move position and add attributed string with specified length

Description

int ncurses_mvaddchnstr ( int y, int x, string s, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvaddch | Acima | ncurses_mvaddchstr


ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchstr -- Move position and add attributed string

Description

int ncurses_mvaddchstr ( int y, int x, string s)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvaddchnstr | Acima | ncurses_mvaddnstr


ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddnstr -- Move position and add string with specified length

Description

int ncurses_mvaddnstr ( int y, int x, string s, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvaddchstr | Acima | ncurses_mvaddstr


ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddstr -- Move position and add string

Description

int ncurses_mvaddstr ( int y, int x, string s)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvaddnstr | Acima | ncurses_mvcur


ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvcur -- Move cursor immediately

Description

int ncurses_mvcur ( int old_y, int old_x, int new_y, int new_x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvaddstr | Acima | ncurses_mvdelch


ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvdelch -- Move position and delete character, shift rest of line left

Description

int ncurses_mvdelch ( int y, int x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvcur | Acima | ncurses_mvgetch


ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvgetch -- Move position and get character at new position

Description

int ncurses_mvgetch ( int y, int x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvdelch | Acima | ncurses_mvhline


ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long

Description

int ncurses_mvhline ( int y, int x, int attrchar, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvgetch | Acima | ncurses_mvinch


ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvinch -- Move position and get attributed character at new position

Description

int ncurses_mvinch ( int y, int x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvhline | Acima | ncurses_mvvline


ncurses_mvvline

(no version information, might be only in CVS)

ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long

Description

int ncurses_mvvline ( int y, int x, int attrchar, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvinch | Acima | ncurses_mvwaddstr


ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvwaddstr -- Add string at new position in window

Description

int ncurses_mvwaddstr ( resource window, int y, int x, string text)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvvline | Acima | ncurses_napms


ncurses_napms

(PHP 4 >= 4.1.0, PHP 5)

ncurses_napms -- Sleep

Description

int ncurses_napms ( int milliseconds)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_mvwaddstr | Acima | ncurses_new_panel


ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_new_panel -- Create a new panel and associate it with window

Description

resource ncurses_new_panel ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_napms | Acima | ncurses_newpad


ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5)

ncurses_newpad -- Creates a new pad (window)

Description

resource ncurses_newpad ( int rows, int cols)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_new_panel | Acima | ncurses_newwin


ncurses_newwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_newwin -- Create a new window

Description

resource ncurses_newwin ( int rows, int cols, int y, int x)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_newwin() creates a new window to draw elements in. Windows can be positioned using x, y, rows and cols. When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary. The return value is a resource ID used to differ between multiple windows.

Anterior | Principal | Próxima
ncurses_newpad | Acima | ncurses_nl


ncurses_nl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nl -- Translate newline and carriage return / line feed

Description

bool ncurses_nl ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_newwin | Acima | ncurses_nocbreak


ncurses_nocbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nocbreak -- Switch terminal to cooked mode

Description

bool ncurses_nocbreak ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_nocbreak() routine returns terminal to normal (cooked) mode. Initially the terminal may or may not in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_cbreak()

Anterior | Principal | Próxima
ncurses_nl | Acima | ncurses_noecho


ncurses_noecho

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noecho -- Switch off keyboard input echo

Description

bool ncurses_noecho ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_noecho() prevents echoing of user typed characters. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_echo(), ncurses_getch()

Anterior | Principal | Próxima
ncurses_nocbreak | Acima | ncurses_nonl


ncurses_nonl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nonl -- Do not translate newline and carriage return / line feed

Description

bool ncurses_nonl ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_noecho | Acima | ncurses_noqiflush


ncurses_noqiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noqiflush -- Do not flush on signal characters

Description

int ncurses_noqiflush ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_nonl | Acima | ncurses_noraw


ncurses_noraw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noraw -- Switch terminal out of raw mode

Description

bool ncurses_noraw ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_noraw() switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_raw(),
ncurses_cbreak(),
ncurses_nocbreak()

Anterior | Principal | Próxima
ncurses_noqiflush | Acima | ncurses_pair_content


ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pair_content -- Gets the RGB value for color

Description

int ncurses_pair_content ( int pair, int &f, int &b)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_noraw | Acima | ncurses_panel_above


ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack

Description

int ncurses_panel_above ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_pair_content | Acima | ncurses_panel_below


ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack

Description

int ncurses_panel_below ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_panel_above | Acima | ncurses_panel_window


ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_window -- Returns the window associated with panel

Description

int ncurses_panel_window ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_panel_below | Acima | ncurses_pnoutrefresh


ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_pnoutrefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_panel_window | Acima | ncurses_prefresh


ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_prefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_prefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_pnoutrefresh | Acima | ncurses_putp


ncurses_putp

(PHP 4 >= 4.2.0, PHP 5)

ncurses_putp --

Description

int ncurses_putp ( string text)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_prefresh | Acima | ncurses_qiflush


ncurses_qiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_qiflush -- Flush on signal characters

Description

int ncurses_qiflush ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_putp | Acima | ncurses_raw


ncurses_raw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_raw -- Switch terminal into raw mode

Description

bool ncurses_raw ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_raw() places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_noraw(),
ncurses_cbreak(),
ncurses_nocbreak()

Anterior | Principal | Próxima
ncurses_qiflush | Acima | ncurses_refresh


ncurses_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_refresh -- Refresh screen

Description

int ncurses_refresh ( int ch)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_raw | Acima | ncurses_replace_panel


ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_replace_panel -- Replaces the window associated with panel

Description

int ncurses_replace_panel ( resource panel, resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_refresh | Acima | ncurses_reset_prog_mode


ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode

Description

int ncurses_reset_prog_mode ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_replace_panel | Acima | ncurses_reset_shell_mode


ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode

Description

int ncurses_reset_shell_mode ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_reset_prog_mode | Acima | ncurses_resetty


ncurses_resetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_resetty -- Restores saved terminal state

Description

bool ncurses_resetty ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Function ncurses_resetty() restores the terminal state, which was previously saved by calling ncurses_savetty(). This function always returns FALSE.

See also: ncurses_savetty()

Anterior | Principal | Próxima
ncurses_reset_shell_mode | Acima | ncurses_savetty


ncurses_savetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_savetty -- Saves terminal state

Description

bool ncurses_savetty ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Function ncurses_savetty() saves the current terminal state. The saved terminal state can be restored with function ncurses_resetty(). ncurses_savetty() always returns FALSE.

See also: ncurses_resetty()

Anterior | Principal | Próxima
ncurses_resetty | Acima | ncurses_scr_dump


ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_dump -- Dump screen content to file

Description

int ncurses_scr_dump ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_savetty | Acima | ncurses_scr_init


ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_init -- Initialize screen from file dump

Description

int ncurses_scr_init ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_scr_dump | Acima | ncurses_scr_restore


ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_restore -- Restore screen from file dump

Description

int ncurses_scr_restore ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_scr_init | Acima | ncurses_scr_set


ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_set -- Inherit screen from file dump

Description

int ncurses_scr_set ( string filename)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_scr_restore | Acima | ncurses_scrl


ncurses_scrl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_scrl -- Scroll window content up or down without changing current position

Description

int ncurses_scrl ( int count)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_scr_set | Acima | ncurses_show_panel


ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible

Description

int ncurses_show_panel ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_scrl | Acima | ncurses_slk_attr


ncurses_slk_attr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attr -- Returns current soft label key attribute

Description

bool ncurses_slk_attr ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_slk_attr() returns the current soft label key attribute. On error returns TRUE, otherwise FALSE.

Anterior | Principal | Próxima
ncurses_show_panel | Acima | ncurses_slk_attroff


ncurses_slk_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attroff --

Description

int ncurses_slk_attroff ( int intarg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_attr | Acima | ncurses_slk_attron


ncurses_slk_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attron --

Description

int ncurses_slk_attron ( int intarg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_attroff | Acima | ncurses_slk_attrset


ncurses_slk_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attrset --

Description

int ncurses_slk_attrset ( int intarg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_attron | Acima | ncurses_slk_clear


ncurses_slk_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_clear -- Clears soft labels from screen

Description

bool ncurses_slk_clear ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function ncurses_slk_clear() clears soft label keys from screen. Returns TRUE on error, otherwise FALSE.

Anterior | Principal | Próxima
ncurses_slk_attrset | Acima | ncurses_slk_color


ncurses_slk_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_color -- Sets color for soft label keys

Description

int ncurses_slk_color ( int intarg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_clear | Acima | ncurses_slk_init


ncurses_slk_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_init -- Initializes soft label key functions

Description

bool ncurses_slk_init ( int format)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Function ncurses_slk_init() must be called before ncurses_initscr() or ncurses_newterm() is called. If ncurses_initscr() eventually uses a line from stdscr to emulate the soft labels, then format determines how the labels are arranged of the screen. Setting format to 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Anterior | Principal | Próxima
ncurses_slk_color | Acima | ncurses_slk_noutrefresh


ncurses_slk_noutrefresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen

Description

bool ncurses_slk_noutrefresh ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_init | Acima | ncurses_slk_refresh


ncurses_slk_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_refresh -- Copies soft label keys to screen

Description

bool ncurses_slk_refresh ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_slk_refresh() copies soft label keys from virtual screen to physical screen. Returns TRUE on error, otherwise FALSE.

Anterior | Principal | Próxima
ncurses_slk_noutrefresh | Acima | ncurses_slk_restore


ncurses_slk_restore

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_restore -- Restores soft label keys

Description

bool ncurses_slk_restore ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function ncurses_slk_restore() restores the soft label keys after ncurses_slk_clear() has been performed.

Anterior | Principal | Próxima
ncurses_slk_refresh | Acima | ncurses_slk_set


ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_slk_set -- Sets function key labels

Description

bool ncurses_slk_set ( int labelnr, string label, int format)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_restore | Acima | ncurses_slk_touch


ncurses_slk_touch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed

Description

bool ncurses_slk_touch ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The ncurses_slk_touch() function forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.

Anterior | Principal | Próxima
ncurses_slk_set | Acima | ncurses_standend


ncurses_standend

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standend -- Stop using 'standout' attribute

Description

int ncurses_standend ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_slk_touch | Acima | ncurses_standout


ncurses_standout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standout -- Start using 'standout' attribute

Description

int ncurses_standout ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_standend | Acima | ncurses_start_color


ncurses_start_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_start_color -- Start using colors

Description

int ncurses_start_color ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_standout | Acima | ncurses_termattrs


ncurses_termattrs

(PHP 4 >= 4.1.0, PHP 5)

ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal

Description

bool ncurses_termattrs ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_start_color | Acima | ncurses_termname


ncurses_termname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_termname -- Returns terminals (short)-name

Description

string ncurses_termname ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_termname() returns terminals shortname. The shortname is truncated to 14 characters. On error ncurses_termname() returns NULL.

See also: ncurses_longname()

Anterior | Principal | Próxima
ncurses_termattrs | Acima | ncurses_timeout


ncurses_timeout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_timeout -- Set timeout for special key sequences

Description

void ncurses_timeout ( int millisec)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_termname | Acima | ncurses_top_panel


ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_top_panel -- Moves a visible panel to the top of the stack

Description

int ncurses_top_panel ( resource panel)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_timeout | Acima | ncurses_typeahead


ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead -- Specify different filedescriptor for typeahead checking

Description

int ncurses_typeahead ( int fd)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_top_panel | Acima | ncurses_ungetch


ncurses_ungetch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_ungetch -- Put a character back into the input stream

Description

int ncurses_ungetch ( int keycode)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_typeahead | Acima | ncurses_ungetmouse


ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_ungetmouse -- Pushes mouse event to queue

Description

bool ncurses_ungetmouse ( array mevent)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_getmouse() pushes a KEY_MOUSE event onto the unput queue and associates with this event the given state sata and screen-relative character cell coordinates, specified in mevent. Event options will be specified in associative array mevent:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

ncurses_ungetmouse() returns FALSE on success, otherwise TRUE.

See also: ncurses_getmouse()

Anterior | Principal | Próxima
ncurses_ungetch | Acima | ncurses_update_panels


ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5)

ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.

Description

void ncurses_update_panels ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_ungetmouse | Acima | ncurses_use_default_colors


ncurses_use_default_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_default_colors -- Assign terminal default colors to color id -1

Description

bool ncurses_use_default_colors ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_update_panels | Acima | ncurses_use_env


ncurses_use_env

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_env -- Control use of environment information about terminal size

Description

void ncurses_use_env ( bool flag)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_use_default_colors | Acima | ncurses_use_extended_names


ncurses_use_extended_names

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_extended_names -- Control use of extended names in terminfo descriptions

Description

int ncurses_use_extended_names ( bool flag)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_use_env | Acima | ncurses_vidattr


ncurses_vidattr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_vidattr --

Description

int ncurses_vidattr ( int intarg)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_use_extended_names | Acima | ncurses_vline


ncurses_vline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long

Description

int ncurses_vline ( int charattr, int n)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_vidattr | Acima | ncurses_waddch


ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5)

ncurses_waddch -- Adds character at current position in a window and advance cursor

Description

int ncurses_waddch ( resource window, int ch)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_vline | Acima | ncurses_waddstr


ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_waddstr -- Outputs text at current postion in window

Description

int ncurses_waddstr ( resource window, string str [, int n])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_waddch | Acima | ncurses_wattroff


ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattroff -- Turns off attributes for a window

Description

int ncurses_wattroff ( resource window, int attrs)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_waddstr | Acima | ncurses_wattron


ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattron -- Turns on attributes for a window

Description

int ncurses_wattron ( resource window, int attrs)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wattroff | Acima | ncurses_wattrset


ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattrset -- Set the attributes for a window

Description

int ncurses_wattrset ( resource window, int attrs)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wattron | Acima | ncurses_wborder


ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wborder -- Draws a border around the window using attributed characters

Description

int ncurses_wborder ( resource window, int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

ncurses_wborder() draws the specified lines and corners around the passed window window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_border() for borders around the main window.

See also ncurses_border().

Anterior | Principal | Próxima
ncurses_wattrset | Acima | ncurses_wclear


ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wclear -- Clears window

Description

int ncurses_wclear ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wborder | Acima | ncurses_wcolor_set


ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wcolor_set -- Sets windows color pairings

Description

int ncurses_wcolor_set ( resource window, int color_pair)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wclear | Acima | ncurses_werase


ncurses_werase

(PHP 4 >= 4.3.0, PHP 5)

ncurses_werase -- Erase window contents

Description

long ncurses_werase ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wcolor_set | Acima | ncurses_wgetch


ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wgetch -- Reads a character from keyboard (window)

Description

int ncurses_wgetch ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_werase | Acima | ncurses_whline


ncurses_whline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_whline ( resource window, int charattr, int n)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wgetch | Acima | ncurses_wmouse_trafo


ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmouse_trafo -- Transforms window/stdscr coordinates

Description

bool ncurses_wmouse_trafo ( resource window, int &y, int &x, bool toscreen)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_whline | Acima | ncurses_wmove


ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmove -- Moves windows output position

Description

int ncurses_wmove ( resource window, int y, int x)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wmouse_trafo | Acima | ncurses_wnoutrefresh


ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wnoutrefresh -- Copies window to virtual screen

Description

int ncurses_wnoutrefresh ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wmove | Acima | ncurses_wrefresh


ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wrefresh -- Refresh window on terminal screen

Description

int ncurses_wrefresh ( resource window)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wnoutrefresh | Acima | ncurses_wstandend


ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandend -- End standout mode for a window

Description

int ncurses_wstandend ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wrefresh | Acima | ncurses_wstandout


ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandout -- Enter standout mode for a window

Description

int ncurses_wstandout ( resource window)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wstandend | Acima | ncurses_wvline


ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_wvline ( resource window, int charattr, int n)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ncurses_wstandout | Acima | Lotus Notes Functions


Lotus Notes Functions

Manual do PHP
Anterior Próxima

LXX. Lotus Notes Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Nota: Esta extensão foi movida a partir do PHP 5 para o repositório PECL.

Índice
notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_copy_db -- Create a note using form form_name
notes_create_db -- Create a Lotus Notes database
notes_create_note -- Create a note using form form_name
notes_drop_db -- Drop a Lotus Notes database
notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla
notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_list_msgs -- Returns the notes from a selected database_name
notes_mark_read -- Mark a note_id as read for the User user_name
notes_mark_unread -- Mark a note_id as unread for the User user_name
notes_nav_create -- Create a navigator name, in database_name
notes_search -- Find notes that match keywords in database_name
notes_unread -- Returns the unread note id's for the current User user_name
notes_version -- Get the version Lotus Notes

Anterior | Principal | Próxima
ncurses_wvline | Acima | notes_body


notes_body

(PHP 4 >= 4.0.5)

notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

array notes_body ( string server, string mailbox, int msg_number)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Lotus Notes Functions | Acima | notes_copy_db


notes_copy_db

(PHP 4 >= 4.0.5)

notes_copy_db -- Create a note using form form_name

Description

string notes_copy_db ( string from_database_name, string to_database_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_body | Acima | notes_create_db


notes_create_db

(PHP 4 >= 4.0.5)

notes_create_db -- Create a Lotus Notes database

Description

bool notes_create_db ( string database_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_copy_db | Acima | notes_create_note


notes_create_note

(PHP 4 >= 4.0.5)

notes_create_note -- Create a note using form form_name

Description

string notes_create_note ( string database_name, string form_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_create_db | Acima | notes_drop_db


notes_drop_db

(PHP 4 >= 4.0.5)

notes_drop_db -- Drop a Lotus Notes database

Description

bool notes_drop_db ( string database_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_create_note | Acima | notes_find_note


notes_find_note

(PHP 4 >= 4.0.5)

notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla

Description

bool notes_find_note ( string database_name, string name [, string type])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_drop_db | Acima | notes_header_info


notes_header_info

(PHP 4 >= 4.0.5)

notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

object notes_header_info ( string server, string mailbox, int msg_number)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_find_note | Acima | notes_list_msgs


notes_list_msgs

(PHP 4 >= 4.0.5)

notes_list_msgs -- Returns the notes from a selected database_name

Description

bool notes_list_msgs ( string db)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_header_info | Acima | notes_mark_read


notes_mark_read

(PHP 4 >= 4.0.5)

notes_mark_read -- Mark a note_id as read for the User user_name

Description

string notes_mark_read ( string database_name, string user_name, string note_id)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_list_msgs | Acima | notes_mark_unread


notes_mark_unread

(PHP 4 >= 4.0.5)

notes_mark_unread -- Mark a note_id as unread for the User user_name

Description

string notes_mark_unread ( string database_name, string user_name, string note_id)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_mark_read | Acima | notes_nav_create


notes_nav_create

(PHP 4 >= 4.0.5)

notes_nav_create -- Create a navigator name, in database_name

Description

bool notes_nav_create ( string database_name, string name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_mark_unread | Acima | notes_search


notes_search

(PHP 4 >= 4.0.5)

notes_search -- Find notes that match keywords in database_name

Description

string notes_search ( string database_name, string keywords)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_nav_create | Acima | notes_unread


notes_unread

(PHP 4 >= 4.0.5)

notes_unread -- Returns the unread note id's for the current User user_name

Description

string notes_unread ( string database_name, string user_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_search | Acima | notes_version


notes_version

(PHP 4 >= 4.0.5)

notes_version -- Get the version Lotus Notes

Description

string notes_version ( string database_name)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
notes_unread | Acima | NSAPI-specific Functions


NSAPI-specific Functions

Manual do PHP
Anterior Próxima

LXXI. NSAPI-specific Functions

Introdução

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/SunONE webservers.

Instalação

For PHP installation on Netscape/iPlanet/SunONE webservers see the NSAPI section in the installation chapter.

Configuração durante execução

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

Tabela 1. NSAPI configuration options

Name | Default | Changeable | Function
nsapi.read_timeout | 60 | PHP_INI_ALL | sets the time in seconds the plugin is waiting for POST data from the client

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Veja Também

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Tabela 2. Apache functions implemented by NSAPI

Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Índice
nsapi_request_headers -- Fetch all HTTP request headers
nsapi_response_headers -- Fetch all HTTP response headers
nsapi_virtual -- Perform an NSAPI sub-request

Anterior | Principal | Próxima
notes_version | Acima | nsapi_request_headers


nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headers -- Fetch all HTTP request headers

Description

array nsapi_request_headers ( void )

nsapi_request_headers() returns an associative array of all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Exemplo 1. nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Nota: Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Nota: You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

Anterior | Principal | Próxima
NSAPI-specific Functions | Acima | nsapi_response_headers


nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers -- Fetch all HTTP response headers

Description

array nsapi_response_headers ( void )

Returns an array of all NSAPI response headers. This functionality is only available in PHP 4.3.3 and greater.

See also nsapi_request_headers() and headers_sent().

Anterior | Principal | Próxima
nsapi_request_headers | Acima | nsapi_virtual


nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtual -- Perform an NSAPI sub-request

Description

int nsapi_virtual ( string uri)

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include() or require().

Nota: This function depends on a undocumented feature of the Netscape/iPlanet/SunONE webservers. Use phpinfo() to determine if it is available. In the Unix environment it should always work, in windows it depends on the name of a ns-httpdXX.dll file. Read the note about subrequests in the install section if you experience this problem.

Anterior | Principal | Próxima
nsapi_response_headers | Acima | ODBC Unificado


ODBC Unificado

Manual do PHP
Anterior Próxima

LXXII. ODBC Unificado

Introdução

Em adição ao suporte ODBC normal, as funções de ODBC unificado no PHP permitem a você acessar vários banco de dados que pegaram emprestada a semantica da API ODBC para implementar a sua própria API. Ao invés de manter múltiplos drivers de banco de dados que são praticamente iguais, estes drivers foram unificados em um único conjunto de funções ODBC.

Os seguintes banco de dados são suportados pelas funções de ODBC unificado: Adabas D, IBM DB2, iODBC, Solid, e Sybase SQL Anywhere.

Nota: Não há ODBC envolvido ao conectar aos banco de dados acima. As funções que você usa para conversar nativamente com eles apenas usam o mesmo nome e sintaxe das funções ODBC. A excessão a isto é iODBC. Fazendo o PHP com suporte a iODBC permite a você utilizar qualquer driver ODBC-compliant com as suas aplicações PHP. iODBC é mantido por OpenLink Software. Maiores informações sobre iODBC, assim como um HOWTO, estão disponíveis em www.iodbc.org.

Requisitos

Para acessar qualquer um dos banco de dados suportados você precisa ter as bibliotecas necessárias instaladas.

Instalação

--with-adabas[=DIR]

Inclui suporte a Adabas D. DIR é o diretório base da instalação do Adabas, o padrão é /usr/local.

--with-sapdb[=DIR]

Inclui suporte a SAP DB. DIR é o diretório base SAP DB, o padrão é /usr/local.

--with-solid[=DIR]

Inclui o suporte Solid. DIR é o diretório base da instalação Solid, o padrão é /usr/local/solid.

--with-ibm-db2[=DIR]

Inclui suporte ao IBM DB2. DIR é o diretório base da instalaçação do DB2, o padrão é /home/db2inst1/sqllib.

--with-empress[=DIR]

Inclui suporte a Empress. DIR é o diretório base da instalação do Empress, o padrão é $EMPRESSPATH. A partir do PHP4, esta opção suporta apenas o Empress Versão 8.60 e posterior.

--with-empress-bcs[=DIR]

Inclui suporte a Empress Local Access. DIR é o diretório base da instalação do Empress, o padrão é $EMPRESSPATH. A partir do PHP4, esta opção suporta apenas o Empress Version 8.60 e posterior.

--with-birdstep[=DIR]

Inclui suporte Birdstep. DIR é o diretório base da instalação do Birdstep, o padrão é /usr/local/birdstep.

--with-custom-odbc[=DIR]

Inclui um suporte ODBC definido pelo usuário. DIR é o diretório base da instalação do ODBC, o padrão é /usr/local. Tenha certeza de definir CUSTOM_ODBC_LIBS e ter algum odbc.h nos seus diretórios de inclusão. Ex., você deve definir o seguinte para Sybase SQL Anywhere 5.5.00 no QNX, antes de executar o script configure: CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Inclui o suporte a iODBC. DIR é o diretório base da instalação do iODBC, o pardrão é /usr/local.

--with-esoob[=DIR]

Inclui suporte a Easysoft OOB. DIR é o diretório base da instalação OOB, o padrão é /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Inclui suporte a unixODBC. DIR é o diretório base da instalação unixODBC, o padrão é /usr/local.

--with-openlink[=DIR]

Inclui suporte a OpenLink ODBC. DIR é o diretório base da instalação do OpenLink, o padrão é /usr/local. Este é o mesmo que iODBC.

--with-dbmaker[=DIR]

Inclui suporte a DBMaker. DIR é o diretório base da instalação do DBMaker, o padrão é para onde a versão mais recente do DBMaker esteja instalada (algo como /home/dbmaker/3.6).

Para desabilitar o suporte a unified ODBC no PHP 3 adicione --disable-unified-odbc na sua linha de configuração. Somente aplicável se iODBC, Adabas, Solid, Velocis ou uma interface ODBC definida pelo usuário esteja definida.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de Configuração do ODBC Unificado

Nome | Padrão | Modificável
odbc.default_db * | NULL | PHP_INI_ALL
odbc.default_user * | NULL | PHP_INI_ALL
odbc.default_pw * | NULL | PHP_INI_ALL
odbc.allow_persistent | "1" | PHP_INI_SYSTEM
odbc.check_persistent | "1" | PHP_INI_SYSTEM
odbc.max_persistent | "-1" | PHP_INI_SYSTEM
odbc.max_links | "-1" | PHP_INI_SYSTEM
odbc.defaultlrl | "4096" | PHP_INI_ALL
odbc.defaultbinmode | "1" | PHP_INI_ALL

Nota: Entradas marcadas com * ainda não estão implementadas.

Para maiores detalhes e definições das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

odbc.default_db string

Fonte de dados ODBC se nenhuma for especificada em odbc_connect() ou odbc_pconnect().

odbc.default_user string

Nome de usuário se nenhum for especificado em odbc_connect() ou odbc_pconnect().

odbc.default_pw string

Senha para usar se nenhuma for especificada em odbc_connect() ou odbc_pconnect().

odbc.allow_persistent boolean

Quando permitir conexões ODBC persistentes.

odbc.check_persistent boolean

Conferir que a conexão ainda seja válida antes de reutilizar.

odbc.max_persistent integer

O número máximo de conexões ODBC persistentes por processo.

odbc.max_links integer

O número máximo de conexões ODBC por processo, incluindo as conexões persistentes.

odbc.defaultlrl integer

Manipulação de campos LONG. Especifica o número de bytes retornados para as variáveis.

odbc.defaultbinmode integer

Manipulação de dados binários.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

ODBC_TYPE (integer)

ODBC_BINMODE_PASSTHRU (integer)

ODBC_BINMODE_RETURN (integer)

ODBC_BINMODE_CONVERT (integer)

SQL_ODBC_CURSORS (integer)

SQL_CUR_USE_DRIVER (integer)

SQL_CUR_USE_IF_NEEDED (integer)

SQL_CUR_USE_ODBC (integer)

SQL_CONCURRENCY (integer)

SQL_CONCUR_READ_ONLY (integer)

SQL_CONCUR_LOCK (integer)

SQL_CONCUR_ROWVER (integer)

SQL_CONCUR_VALUES (integer)

SQL_CURSOR_TYPE (integer)

SQL_CURSOR_FORWARD_ONLY (integer)

SQL_CURSOR_KEYSET_DRIVEN (integer)

SQL_CURSOR_DYNAMIC (integer)

SQL_CURSOR_STATIC (integer)

SQL_KEYSET_SIZE (integer)

SQL_CHAR (integer)

SQL_VARCHAR (integer)

SQL_LONGVARCHAR (integer)

SQL_DECIMAL (integer)

SQL_NUMERIC (integer)

SQL_BIT (integer)

SQL_TINYINT (integer)

SQL_SMALLINT (integer)

SQL_INTEGER (integer)

SQL_BIGINT (integer)

SQL_REAL (integer)

SQL_FLOAT (integer)

SQL_DOUBLE (integer)

SQL_BINARY (integer)

SQL_VARBINARY (integer)

SQL_LONGVARBINARY (integer)

SQL_DATE (integer)

SQL_TIME (integer)

SQL_TIMESTAMP (integer)

SQL_TYPE_DATE (integer)

SQL_TYPE_TIME (integer)

SQL_TYPE_TIMESTAMP (integer)

SQL_BEST_ROWID (integer)

SQL_ROWVER (integer)

SQL_SCOPE_CURROW (integer)

SQL_SCOPE_TRANSACTION (integer)

SQL_SCOPE_SESSION (integer)

SQL_NO_NULLS (integer)

SQL_NULLABLE (integer)

SQL_INDEX_UNIQUE (integer)

SQL_INDEX_ALL (integer)

SQL_ENSURE (integer)

SQL_QUICK (integer)

Índice
odbc_autocommit -- Modifica o funcionamento do autocommit
odbc_binmode -- Manipulação de uma coluna com dados binários
odbc_close_all -- Fecha todas as conexões ODBC
odbc_close -- Fecha uma conexão ODBC
odbc_columnprivileges -- Retorna um identificador de resultado que pode ser usado para obter uma lista de colunas e os privilégios associados
odbc_columns -- Lista os nomes das colunas nas tabelas especificadas. Retorna um identificador de resultado contendo a informação.
odbc_commit -- Grava uma transação ODBC
odbc_connect -- Conecta com uma fonte de dados
odbc_cursor -- Obtém cursorname
odbc_data_source -- Retorna informação sobre a conexão atual
odbc_do -- Sinonimo para odbc_exec()
odbc_error -- Obtém o último código de erro
odbc_errormsg -- Obtém a última mensagem de erro
odbc_exec -- Prepara e executa um comando SQL
odbc_execute -- Executa um comando preparado
odbc_fetch_array -- Obtém uma linha do conjunto de resultados como uma matriz associativa
odbc_fetch_into -- Obtém uma linha do conjunto de resultados como uma matriz
odbc_fetch_object -- Obtém um conjunto de resultados como um objeto
odbc_fetch_row -- Obtém uma linha
odbc_field_len -- Obtém o tamanho (precisão) de um campo
odbc_field_name -- Obtém o nome da coluna
odbc_field_num -- Retorna o número da coluna
odbc_field_precision -- Sinonimo para odbc_field_len()
odbc_field_scale -- Obtém a precisão de um campo
odbc_field_type -- Tipo de dados de um campo
odbc_foreignkeys -- Retorna uma lista de chaves estrangeiras na tabela especificada ou uma lista de chaves estrangeiras em outras tabelas que se referem a chave primária na tabela especificada
odbc_free_result -- Libera os recursos associados a um resultado
odbc_gettypeinfo -- Retorna um identificador de resultados contendo informações sobre os tipos de dados suportados pela fonte de dados.
odbc_longreadlen -- Manipulação de colunas LONG
odbc_next_result -- Confere se resultados múltiplos estão disponíveis
odbc_num_fields -- Número de colunas em um resultado
odbc_num_rows -- Número de linhas em um resultado
odbc_pconnect -- Abre uma conexão persistente com o servidor de banco de dados
odbc_prepare -- Prepara um comando para execução
odbc_primarykeys -- Retorna um identificador de resultados que pode ser usado para obter os nomes de colunas que inclui a chave primária para a tabela
odbc_procedurecolumns -- Obtém informações sobre parâmetros para procedures
odbc_procedures -- Obtém a lista de procedures guadadas na fonte de dados especificada. Retorna um identificador de resultados contendo a informação.
odbc_result_all -- Mostra o resultado como uma tabela HTML
odbc_result -- Obtém dados do resultado
odbc_rollback -- Desfaz uma transação
odbc_setoption -- Ajusta definições ODBC. Retorna FALSE se acontecer um erro, se não TRUE.
odbc_specialcolumns -- Retorna um conjunto de colunas que identificam de modo único uma linha na tabela ou as colunas que são automaticamente atualizadas quando qualquer valor na linha é atualizado por uma transação.
odbc_statistics -- Obtém estatisticas sobre uma tabela
odbc_tableprivileges -- Lista tabelas e os privilégios associados a cada tabela
odbc_tables -- Obtém uma lista dos nomes das tabelas guardadas em um fonte de dados especifica. Retorna um identficador de resultado contendo a informação.

Anterior | Principal | Próxima
nsapi_virtual | Acima | odbc_autocommit


odbc_autocommit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_autocommit -- Modifica o funcionamento do autocommit

Descrição

bool odbc_autocommit ( resource connection_id [, bool OnOff])

Sem o parâmetro OnOff, esta função retorna o estado do auto-commit para connection_id. TRUE é retornado se o auto-commit estiver como on, FALSE se estiver off ou se acontecer um erro.

Se OnOff for TRUE, o auto-commit é ativado, se for FALSE o auto-commit é desabilitado. Retorna TRUE em caso de sucesso, FALSE em caso de falha.

Por padrão. o auto-commit esta em on para a conexão. Desabilitar o auto-commit é equivalente a começar uma transação.

Veja também odbc_commit() e odbc_rollback().

Anterior | Principal | Próxima
ODBC Unificado | Acima | odbc_binmode


odbc_binmode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_binmode -- Manipulação de uma coluna com dados binários

Descrição

int odbc_binmode ( resource result_id, int mode)

(ODBC SQL tipos afetados: BINARY, VARBINARY, LONGVARBINARY)

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data

  • ODBC_BINMODE_RETURN: Retorna como esta

  • ODBC_BINMODE_CONVERT: Converte para char e retorna

Quando dados binários SQL são convertidos para dados de caractere C, cada (8 bits) dos dados da fonte são representados como dois caracteres ASCII. Estes caracteres são a representação em caracteres ASCII do número em sua forma hexadecimal. por exemplo, um binário 00000001 é convertido para "01" e um binário 11111111 é convertido para "FF".

Tabela 1. Manipilando LONGVARBINARY

binmode | longreadlen | result
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | >0 | passthru
ODBC_BINMODE_RETURN | >0 | retorna como esta
ODBC_BINMODE_CONVERT | >0 | retorna como char

Se odbc_fetch_into() é usada, passthru indica que uma string vazia é retornada para estas colunas.

Se result_id for 0, as definições aplicam-se como padrão para novos resultados.

Nota: O padrão para longreadlen e 4096 e o padrão para binmode é ODBC_BINMODE_RETURN. A manipulação de colunas binary long também é afetada por odbc_longreadlen().

Anterior | Principal | Próxima
odbc_autocommit | Acima | odbc_close_all


odbc_close_all

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_close_all -- Fecha todas as conexões ODBC

Descrição

void odbc_close_all ( void )

odbc_close_all() irá fechar todas as conexões para os servidores de banco de dados.

Nota: Esta função irá falhar se houverem transações abertas na conexão. Neste caso a conexão permanecerá aberta.

Anterior | Principal | Próxima
odbc_binmode | Acima | odbc_close


odbc_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_close -- Fecha uma conexão ODBC

Descrição

void odbc_close ( resource connection_id)

odbc_close() irá fechar a conexão com o servidor de banco de dados associado ao identificador de conexão indicado.

Nota: Esta função irá falhar se houverem transações abertas nesta conexão. A conexão permanecerá aberta neste caso.

Anterior | Principal | Próxima
odbc_close_all | Acima | odbc_columnprivileges


odbc_columnprivileges

(PHP 4 , PHP 5)

odbc_columnprivileges -- Retorna um identificador de resultado que pode ser usado para obter uma lista de colunas e os privilégios associados

Descrição

int odbc_columnprivileges ( resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])

Lista colunas e os privilégios associados a tabela indicada. Retorna um identificador de resultado ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

O conjunto de resultados é ordenado por TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

O argumento column_name aceita caracteres de busca ('%' para encontrar zero ou mais caracteres e '_' para encontrar um único caracter).

Anterior | Principal | Próxima
odbc_close | Acima | odbc_columns


odbc_columns

(PHP 4 , PHP 5)

odbc_columns -- Lista os nomes das colunas nas tabelas especificadas. Retorna um identificador de resultado contendo a informação.

Descrição

resource odbc_columns ( resource connection_id [, string qualifier [, string schema [, string table_name [, string column_name]]]])

lista todas as colunas no intervalo requerido. Retorna um identificador de resultado ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • TABLE_QUALIFIER

  • TABLE_SCHEM

  • TABLE_NAME

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

O conjunto de resultados é ordenado por TABLE_QUALIFIER, TABLE_SCHEM e TABLE_NAME.

Os argumentos schema, table_name e column_name aceitam caracteres de busca ('%' para encontrar zero ou mais caracteres e '_' para encontrar um único caracter).

Veja também odbc_columnprivileges() para obter os privilégios associados.

Anterior | Principal | Próxima
odbc_columnprivileges | Acima | odbc_commit


odbc_commit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_commit -- Grava uma transação ODBC

Descrição

bool odbc_commit ( resource connection_id)

odbc_commit() grava todas as transações pendentes na conexão connection_id. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
odbc_columns | Acima | odbc_connect


odbc_connect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_connect -- Conecta com uma fonte de dados

Descrição

resource odbc_connect ( string dsn, string user, string password [, int cursor_type])

Retorna o id de uma conexão ODBC ou 0 (FALSE) em caso de erro.

O id da conexão retornado por esta função é necessário por outras funções ODBC. Você pode ter várias conexões abertas de uma vez. O quarto parâmetro, que é opcional, define o tipo de cursor para ser utilizado nesta conexão. Este parâmetro normalmente não é necessário, mas pode ser útil para contornar problemas com alguns drivers ODBC.

Com alguns drivers ODBC, executar uma stored procedure complexa pode falhar com um erro semelhante a este: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Usar SQL_CUR_USE_ODBC pode previnir este erro. Também, alguns drivers não suportam o parâmetro opcional row_number em odbc_fetch_row(). SQL_CUR_USE_ODBC deve ajudar neste caso também.

As seguintes constantes são definidas para cursortype:

  • SQL_CUR_USE_IF_NEEDED

  • SQL_CUR_USE_ODBC

  • SQL_CUR_USE_DRIVER

  • SQL_CUR_DEFAULT

Para conexões persistentes veja odbc_pconnect().

Anterior | Principal | Próxima
odbc_commit | Acima | odbc_cursor


odbc_cursor

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_cursor -- Obtém cursorname

Descrição

string odbc_cursor ( resource result_id)

odbc_cursor irá retornar um cursorname para o result_id indicado.

Anterior | Principal | Próxima
odbc_connect | Acima | odbc_data_source


odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_source -- Retorna informação sobre a conexão atual

Descrição

resource odbc_data_source ( resource connection_id, constant fetch_type)

Retorna FALSE em caso de erro e uma matriz em caso de sucesso.

Esta função retorna informações sobre a conexão ativa seguindo a informação no DSN. O parâmetro connection_id deve ser uma conexão ODBC válida. O parâmetro fetch_type pode ser uma destas duas constantes: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST para a primeira vez que esta função é utilizada e após isso use SQL_FETCH_NEXT.

Anterior | Principal | Próxima
odbc_cursor | Acima | odbc_do


odbc_do

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_do -- Sinonimo para odbc_exec()

Descrição

resource odbc_do ( resource conn_id, string query)

odbc_do() irá executar uma consulta na conexão indicada.

Anterior | Principal | Próxima
odbc_data_source | Acima | odbc_error


odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_error -- Obtém o último código de erro

Descrição

string odbc_error ( [resource connection_id])

Retorna um estado ODBC de seis dígitos, ou uma string vazia se não houveram erros. Se connection_id é especificado, o último estado desta conexão é especificado, se não o último estado de qualquer conexão.

Veja também: odbc_errormsg() e odbc_exec().

Anterior | Principal | Próxima
odbc_do | Acima | odbc_errormsg


odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsg -- Obtém a última mensagem de erro

Descrição

string odbc_errormsg ( [resource connection_id])

Retorna uma string contendo a última mensagem de erro do ODBC, ou uma string vazia se não houveram erros. Se connection_id for especificado, o último estado desta conexão é retornado, se não a última mensagem de qualquer conexão é retornada.

Veja também: odbc_error() e odbc_exec().

Anterior | Principal | Próxima
odbc_error | Acima | odbc_exec


odbc_exec

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_exec -- Prepara e executa um comando SQL

Descrição

resource odbc_exec ( resource connection_id, string query_string)

Retorna FALSE em caso de erro. Retorna um identificador de resultado ODBC se o comando SQL foi bem sucedido.

odbc_exec() irá enviar um comando SQL para o servidor de banco de dados especificado por connection_id. Este parâmetro deve ser um identificador válido retornado por odbc_connect() ou odbc_pconnect().

Veja também: odbc_prepare() e odbc_execute() para múltipla execução de comandos SQL.

Anterior | Principal | Próxima
odbc_errormsg | Acima | odbc_execute


odbc_execute

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_execute -- Executa um comando preparado

Descrição

bool odbc_execute ( resource result_id [, array parameters_array])

Executa um comando preparado com odbc_prepare().Retorna TRUE em caso de sucesso ou FALSE em falhas. A matriz parameters_array somente precisa ser dada se você realmente tiver parâmetros em seu comando.

Parâmetros em parameter_array serão substituidos pelos marcadores de lugar na ordem no comando preparado.

Quaisquer parâmetros em parameter_array que comecem e terminem com aspas simples serão considerados como um nome de arquivo para ler e enviar para o banco de dados como dados para o marcador de lugar apropriado.

Nota: A partir do PHP 4.1.1, esta funcionalidade de leitura de arquivo tem as seguintes restrições:

  • A leitura de arquivos não é sujeita a quaiquer restrições safe mode ou open-basedir. Isto foi corrigido no PHP 4.2.0.

  • Arquivos Remotos não são suportados.

  • Se você querrer guardar uma string que comece e termine com aspas simples, você deverá escapa-la ou adicionar um espaço ou outro caracter que não seja aspas simples no início ou no final do parâmetro, o qual irá prevenir que o parâmetro seja considerado como um nome de arquivo. Se isto não for uma opção, então você deve usar outro mecanismo para guardar a string, como executar a consulta diretamente com odbc_exec().

Anterior | Principal | Próxima
odbc_exec | Acima | odbc_fetch_array


odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_array -- Obtém uma linha do conjunto de resultados como uma matriz associativa

Descrição

array odbc_fetch_array ( resource result [, int rownumber])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
odbc_execute | Acima | odbc_fetch_into


odbc_fetch_into

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_fetch_into -- Obtém uma linha do conjunto de resultados como uma matriz

Descrição

bool odbc_fetch_into ( resource result_id [, int rownumber, array result_array])

resource odbc_fetch_into ( resource result_id, array result_array [, int rownumber])

Retorna o número de colunas no resultado; FALSE em caso de erro. result_array deve ser passado por referencia, mas pode ser de qualquer tipo já que vai ser convertido para array. A matriz irá conter os valores das colunas com o índice começando em 0.

A partir do PHP 4.0.5 o parâmetro result_array não precisa mais ser passado por referencia.

A partir do PHP 4.0.6 o parâmetro rownumber não pode ser passado como uma constante, mas sim como uma variável.

A partir do PHP 4.2.0 o parâmetro result_array e rownumber foram trocados. Isto permite a rownumber poder ser uma constante novamente. Esta mudança também será a última nesta função.

Exemplo 1. Exemplo odbc_fetch_into() pré 4.0.6

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$rc = odbc_fetch_into($res_id, $row, $my_array);

$rc = odbc_fetch_into($res_id, 1, $my_array);
?>

Exemplo 2. Exemplo odbc_fetch_into() 4.0.6

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$row = 1;
$rc = odbc_fetch_into($res_id, $row, $my_array);
?>

Exemplo 3. Exemplo odbc_fetch_into() 4.2.0

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$rc = odbc_fetch_into($res_id,$my_array, 2);
?>

Anterior | Principal | Próxima
odbc_fetch_array | Acima | odbc_fetch_object


odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_object -- Obtém um conjunto de resultados como um objeto

Descrição

object odbc_fetch_object ( resource result [, int rownumber])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
odbc_fetch_into | Acima | odbc_fetch_row


odbc_fetch_row

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_fetch_row -- Obtém uma linha

Descrição

bool odbc_fetch_row ( resource result_id [, int row_number])

Se odbc_fetch_row() foi bem sucedido (havia uma linha), TRUE é retornado. Se não houverem mais linhas é retornado FALSE.

odbc_fetch_row() obtém uma linha de dados que
foi retornado por odbc_do() /
odbc_exec(). Após
odbc_fetch_row() seja utilizada, os campos desta
linha podem ser acessados com odbc_result().

Se row_number não for especificado, odbc_fetch_row() irá tentar obter a próxima linha no conjunto de resultados. Chamadas para odbc_fetch_row() com ou sem row_number podem ser misturados.

Para caminhar através do conjunto de resultados mais de uma vez, você pode usar odbc_fetch_row() com row_number 1, e então continuar fazendo odbc_fetch_row() sem row_number para ver os resultados. Se um driver não suportar a obtenção de linhas por números, o parâmetro row_number é ignorado.

Anterior | Principal | Próxima
odbc_fetch_object | Acima | odbc_field_len


odbc_field_len

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_len -- Obtém o tamanho (precisão) de um campo

Descrição

int odbc_field_len ( resource result_id, int field_number)

odbc_field_len() irá retornar o tamanho do campo referido pelo número no conjunto de resultados ODBC. A numeração dos campos começa em 1.

Veja também: odbc_field_scale() para obter a precisão de um número de ponto flutuante.

Anterior | Principal | Próxima
odbc_fetch_row | Acima | odbc_field_name


odbc_field_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_name -- Obtém o nome da coluna

Descrição

string odbc_field_name ( resource result_id, int field_number)

odbc_field_name() irá retornar o nome do campo ocupando o número da coluna indicado no identificador de resultado ODBC indicado. Números de capos começam em 1. É retornado FALSE em caso de erro.

Anterior | Principal | Próxima
odbc_field_len | Acima | odbc_field_num


odbc_field_num

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_num -- Retorna o número da coluna

Descrição

int odbc_field_num ( resource result_id, string field_name)

odbc_field_num() irá retornar o número da coluna que corresponde ao campo no identificador de resultado ODBC indicado. Números de campos começam em 1. É retornado FALSE em caso de erro.

Anterior | Principal | Próxima
odbc_field_name | Acima | odbc_field_precision


odbc_field_precision

(PHP 4 , PHP 5)

odbc_field_precision -- Sinonimo para odbc_field_len()

Descrição

string odbc_field_precision ( resource result_id, int field_number)

odbc_field_precision() irá retornar a precisão do campo referenciado pelo número no conjunto de resultados ODBC indicado.

Veja também: odbc_field_scale() para obter a precisão de números de ponto flutuante.

Anterior | Principal | Próxima
odbc_field_num | Acima | odbc_field_scale


odbc_field_scale

(PHP 4 , PHP 5)

odbc_field_scale -- Obtém a precisão de um campo

Descrição

string odbc_field_scale ( resource result_id, int field_number)

odbc_field_precision() irá retornar a precisão do campo referenciado pelo número no conjunto de resultados ODBC indicado.

Anterior | Principal | Próxima
odbc_field_precision | Acima | odbc_field_type


odbc_field_type

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_type -- Tipo de dados de um campo

Descrição

string odbc_field_type ( resource result_id, int field_number)

odbc_field_type() irá retornar o tipo SQL do campo referenciado pelo número no conjunto de resultados ODBC indicado. A numeração dos campos começa em 1.

Anterior | Principal | Próxima
odbc_field_scale | Acima | odbc_foreignkeys


odbc_foreignkeys

(PHP 4 , PHP 5)

odbc_foreignkeys -- Retorna uma lista de chaves estrangeiras na tabela especificada ou uma lista de chaves estrangeiras em outras tabelas que se referem a chave primária na tabela especificada

Descrição

resource odbc_foreignkeys ( resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)

odbc_foreignkeys() obtém informações sobre as chaves estrangeiras. Retorna um conjunto de resultados ODBC FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • PKTABLE_QUALIFIER

  • PKTABLE_OWNER

  • PKTABLE_NAME

  • PKCOLUMN_NAME

  • FKTABLE_QUALIFIER

  • FKTABLE_OWNER

  • FKTABLE_NAME

  • FKCOLUMN_NAME

  • KEY_SEQ

  • UPDATE_RULE

  • DELETE_RULE

  • FK_NAME

  • PK_NAME

Se pk_table contém um nome de tabela, odbc_foreignkeys() retorna um conjunto de resultados contendo a chave primária da tabela especificada e todas as chaves estrangeiras que se referem a ela.

Se fk_table contém um nome de tabela, odbc_foreignkeys() retorna um conjunto de resultados de todas as chaves estrangeiras da tabela especificada e as chaves primárias (em outras tabelas) as quais elas se referem.

Se ambos pk_table e fk_table contiverem nomes de tabelas, odbc_foreignkeys() retorna as chaves estrangeiras na tabela especificada em fk_table que se referam a chave primária na tabela especificada em pk_table. Isto deve ser uma chave primária no máximo.

Anterior | Principal | Próxima
odbc_field_type | Acima | odbc_free_result


odbc_free_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_free_result -- Libera os recursos associados a um resultado

Descrição

bool odbc_free_result ( resource result_id)

Sempre retorna TRUE.

odbc_free_result() somente precisa ser utilizado se você esta preocupado sobre a quantidade de memória utilizada enquanto o seu escript é executado. Toda a memória será libertada ao final da execução do script. Mas, se você tem certeza que não irá precisar mais dos dados do resultado no seu script, você pode usar odbc_free_result(), e a memória associada com result_id será liberado.

Nota: Se auto-commit estiver desabilitado (veja odbc_autocommit()) e você utilizar odbc_free_result() antes de gravas, todas as transações pendentes serão desfeitas.

Anterior | Principal | Próxima
odbc_foreignkeys | Acima | odbc_gettypeinfo


odbc_gettypeinfo

(PHP 4 , PHP 5)

odbc_gettypeinfo -- Retorna um identificador de resultados contendo informações sobre os tipos de dados suportados pela fonte de dados.

Descrição

int odbc_gettypeinfo ( resource connection_id [, int data_type])

Obtém informações sobre os tipos de dados suportados pela fonte de dados. Retorna um identificador de resultados ODBC ou FALSE em caso de falha. O argumento opcional data_type pode ser utilizado para restringir a informação para um único tipo de dados.

O conjunto de resultados tem as seguintes colunas:

  • TYPE_NAME

  • DATA_TYPE

  • PRECISION

  • LITERAL_PREFIX

  • LITERAL_SUFFIX

  • CREATE_PARAMS

  • NULLABLE

  • CASE_SENSITIVE

  • SEARCHABLE

  • UNSIGNED_ATTRIBUTE

  • MONEY

  • AUTO_INCREMENT

  • LOCAL_TYPE_NAME

  • MINIMUM_SCALE

  • MAXIMUM_SCALE

O conjunto de resultados é ordenado por DATA_TYPE e TYPE_NAME.

Anterior | Principal | Próxima
odbc_free_result | Acima | odbc_longreadlen


odbc_longreadlen

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_longreadlen -- Manipulação de colunas LONG

Descrição

int odbc_longreadlen ( resource result_id, int length)

(Tipos ODBC SQL afetados: LONG, LONGVARBINARY) O número de bytes retornados para o PHP é controlado pelo parâmetro. Se for definido como 0, a coluna de dados Long é passada inteiramente para o cliente.

Nota: Manipulação de colunas LONGVARBINARY é também afetado por odbc_binmode().

Anterior | Principal | Próxima
odbc_gettypeinfo | Acima | odbc_next_result


odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_result -- Confere se resultados múltiplos estão disponíveis

Descrição

bool odbc_next_result ( resource result_id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
odbc_longreadlen | Acima | odbc_num_fields


odbc_num_fields

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_num_fields -- Número de colunas em um resultado

Descrição

int odbc_num_fields ( resource result_id)

odbc_num_fields() irá retornar o número de campos (colunas) em um resultado ODBC. Esta função irá retornar -1 em caso de erro. O argumento é um identificador de resultados válido retornado por odbc_exec().

Anterior | Principal | Próxima
odbc_next_result | Acima | odbc_num_rows


odbc_num_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_num_rows -- Número de linhas em um resultado

Descrição

int odbc_num_rows ( resource result_id)

odbc_num_rows() irá retornar o número de linas em um resultado ODBC. Esta função irá retornar -1 em caso de erro. Para comandos INSERT, UPDATE e DELETE odbc_num_rows() retorna o número de linhas afetadas. Para SELECT isto pode ser o número de linhas disponíveis.

Nota: usar odbc_num_rows() para determinar o número de linhas disponíveis após um SELECT irá retornar -1 com vários drivers.

Anterior | Principal | Próxima
odbc_num_fields | Acima | odbc_pconnect


odbc_pconnect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_pconnect -- Abre uma conexão persistente com o servidor de banco de dados

Descrição

resource odbc_pconnect ( string dsn, string user, string password [, int cursor_type])

Retorna uma id de conexão ODBC ou 0 (FALSE) em caso de erro. Esta função é muito parecida com odbc_connect(), exceto que a conexão não é realmente fechada quando o script termina. Requisições futuras com o mesma combinação de dsn, user, password (via odbc_connect() e odbc_pconnect()) podem reutilizar a conexão persistente.

Nota: Conexões persistentes não tem efeito se o PHP é utilizado como um programa CGI.

Para informações sobre o parâmetro opcional cursor_type veja a função odbc_connect(). Para maiores informações sobre as conexões persistentes, leia o FAQ PHP.

Anterior | Principal | Próxima
odbc_num_rows | Acima | odbc_prepare


odbc_prepare

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_prepare -- Prepara um comando para execução

Descrição

resource odbc_prepare ( resource connection_id, string query_string)

Retorna FALSE em caso de erro.

Retorna um identificador de resultado ODBC se o comando SQL foi preparado de modo bem sucedido. O identificador de resultado pode ser executado posteriormente para executar o comando com odbc_execute().

Anterior | Principal | Próxima
odbc_pconnect | Acima | odbc_primarykeys


odbc_primarykeys

(PHP 4 , PHP 5)

odbc_primarykeys -- Retorna um identificador de resultados que pode ser usado para obter os nomes de colunas que inclui a chave primária para a tabela

Descrição

resource odbc_primarykeys ( resource connection_id, string qualifier, string owner, string table)

Retorna os nomes de colunas que incluem a chave primaria para a tabela. Reotrna um identificador de resultados ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • COLUMN_NAME

  • KEY_SEQ

  • PK_NAME

Anterior | Principal | Próxima
odbc_prepare | Acima | odbc_procedurecolumns


odbc_procedurecolumns

(PHP 4 , PHP 5)

odbc_procedurecolumns -- Obtém informações sobre parâmetros para procedures

Descrição

resource odbc_procedurecolumns ( resource connection_id [, string qualifier [, string owner [, string proc [, string column]]]])

Retorna uma lista de parâmetros de entrada e saída, assim como as colunas que fazem parte do conjunto de resultados para os procedures especificados. Retorna um idenficador de resultado ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • COLUMN_NAME

  • COLUMN_TYPE

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

O conjunto de resultados é ordenado por PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME e COLUMN_TYPE.

Os argumentos owner, proc and column aceitam modelos de busca ('%' para buscar zero ou mais caracteres e '_' para buscar um único caractere).

Anterior | Principal | Próxima
odbc_primarykeys | Acima | odbc_procedures


odbc_procedures

(PHP 4 , PHP 5)

odbc_procedures -- Obtém a lista de procedures guadadas na fonte de dados especificada. Retorna um identificador de resultados contendo a informação.

Descrição

resource odbc_procedures ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lista todas as proceduressolicitadas. Terorna um identificador de resultado ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • NUM_INPUT_PARAMS

  • NUM_OUTPUT_PARAMS

  • NUM_RESULT_SETS

  • REMARKS

  • PROCEDURE_TYPE

Os argumentos owner e name aceitam modelos de busca ('%' para encontrar zero ou mais caracteres e '_' para encontrar um único caractere).

Anterior | Principal | Próxima
odbc_procedurecolumns | Acima | odbc_result_all


odbc_result_all

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_result_all -- Mostra o resultado como uma tabela HTML

Descrição

int odbc_result_all ( resource result_id [, string format])

Retorna o número de linhas do resultado ou FALSE em caso de erro.

odbc_result_all() irá mostrar todas as linhas de um identificador de resultados produzido por odbc_exec(). O resultado é mostrado no formato de uma tabela HTML. Com o argumento opcional format, formatação adicional de toda a tabela pode ser feita.

Anterior | Principal | Próxima
odbc_procedures | Acima | odbc_result


odbc_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_result -- Obtém dados do resultado

Descrição

string odbc_result ( resource result_id, mixed field)

Retorna o contéudo de um campo.

field pode ser um inteio contendo o número da coluna que você quer; ou pode ser uma string contendo o nome do campo. Por exemplo:

$item_3 = odbc_result ($Query_ID, 3);
$item_val = odbc_result ($Query_ID, "val");

A primeira chamada a odbc_result() retorna o valor do terceiro campo do registro atual do resultado da consulta. A segunda chamada a odbc_result() retorna o valor do campo cujo nome é "val" do registro atual do resultado da consulta. Um erro acontece se o número do campo for menor do que um ou for maior do que o número de colunas(ou campos). De modo similar, um erro acontece se o nome do campo indicado não existir na tabela que esta sendo consultada.

Índices de campo começam em 1. Para saber sobre o meio que dados binários ou uma coluna long é retornada, veja odbc_binmode() e odbc_longreadlen().

Anterior | Principal | Próxima
odbc_result_all | Acima | odbc_rollback


odbc_rollback

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_rollback -- Desfaz uma transação

Descrição

int odbc_rollback ( resource connection_id)

Desfaz todos os comandos pendentes em connection_id. Retorna TRUE em caso de sucesso, FALSE em caso de falha.

Anterior | Principal | Próxima
odbc_result | Acima | odbc_setoption


odbc_setoption

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_setoption -- Ajusta definições ODBC. Retorna FALSE se acontecer um erro, se não TRUE.

Descrição

int odbc_setoption ( resource id, int function, int option, int param)

Esta opção permite mudar opções ODBC para um conexão em particular ou o resultado de uma consulta. Foi escrita para ajudar a encontrar meios para contornar problemas com drivers ODBC caprichosos. Você provavelmente somente usar esta função se você é um programador ODBC e intender os efeitos que as várias opções terão. Você certamente vai precisar de uma boa referencia ODBC que explique todas as opções diferentes e valores que podem ser usados. Versões diferentes dos drivers suportam opções diferentes.

Devido aos efeitos variarem dependendo do driver ODBC, o uso desta função em scripts que serão tornados publicos é fortemente desencourajado. Também, algumas opções ODBC não estão disponíveis para esta função porque devem ser definidas antes de a conexão ser estabelecida ou a consulta ser preparada. Em todo o caso, se em um trabalho particular isso pode fazer o PHP funcionar e seu superior não dizer para você usar um produto comercial, isto é tudo o que importa realmente.

id é um id de conexão o o id de um resultado de uma consulta no qual será mudada as definições. Para SQLSetConnectOption(), este é um id de conexão. Para SQLSetStmtOption(), este é um id de um resultado de uma consulta.

Function é a função ODBC a ser usada. O valor deve ser 1 para SQLSetConnectOption() e 2 para SQLSetStmtOption().

O parâmetro option é a opção a ser definida.

O parâmetro param é o valor para a option indicada.

Exemplo 1. Exemplos ODBC Setoption

<?php
// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
//    Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
//    This example has the same effect as
//    odbc_autocommit($conn, true);

odbc_setoption ($conn, 1, 102, 1);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
//    This example sets the query to timeout after 30 seconds.

$result = odbc_prepare ($conn, $sql);
odbc_setoption ($result, 2, 0, 30);
odbc_execute ($result);
?>

Anterior | Principal | Próxima
odbc_rollback | Acima | odbc_specialcolumns


odbc_specialcolumns

(PHP 4 , PHP 5)

odbc_specialcolumns -- Retorna um conjunto de colunas que identificam de modo único uma linha na tabela ou as colunas que são automaticamente atualizadas quando qualquer valor na linha é atualizado por uma transação.

Descrição

resource odbc_specialcolumns ( resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)

Quando o argumento type é SQL_BEST_ROWID, odbc_specialcolumns() retorna a coluna ou colunas que identificam unicamente cada linha na tabela.

Quando o argumento type é SQL_ROWVER, odbc_specialcolumns() retorna a coluna ou conjunto de colunas que são, por obtenção dos dos valores da coluna ou colunas, permite a qualquer linha na tabela ser identificada unicamente.

Retorna um identificador de resultado ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • SCOPE

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • PSEUDO_COLUMN

O conjunto de resultados é ordenado por SCOPE.

Anterior | Principal | Próxima
odbc_setoption | Acima | odbc_statistics


odbc_statistics

(PHP 4 , PHP 5)

odbc_statistics -- Obtém estatisticas sobre uma tabela

Descrição

resource odbc_statistics ( resource connection_id, string qualifier, string owner, string table_name, int unique, int accuracy)

Pega estatisticas sobre uma tabela e seus índices. Retorna um identificador de resultado ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • NON_UNIQUE

  • INDEX_QUALIFIER

  • INDEX_NAME

  • TYPE

  • SEQ_IN_INDEX

  • COLUMN_NAME

  • COLLATION

  • CARDINALITY

  • PAGES

  • FILTER_CONDITION

O conjunto de resultados é ordenado por NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME e SEQ_IN_INDEX.

Anterior | Principal | Próxima
odbc_specialcolumns | Acima | odbc_tableprivileges


odbc_tableprivileges

(PHP 4 , PHP 5)

odbc_tableprivileges -- Lista tabelas e os privilégios associados a cada tabela

Descrição

int odbc_tableprivileges ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lista as tabelas solicitadas e os privilégios associados a cada tabela. Retorna um identificador de resultado ODBC ou FALSE em caso de falha.

O conjunto dos resultados tem as seguintes colunas:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

O conjunto dos resultados e ordenado por TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

Os argumentos owner e name aceitam caracteres de busca ('%' para buscar zero ou mais caracteres e '_' para buscar um único caractere).

Anterior | Principal | Próxima
odbc_statistics | Acima | odbc_tables


odbc_tables

(PHP 3>= 3.0.17, PHP 4 , PHP 5)

odbc_tables -- Obtém uma lista dos nomes das tabelas guardadas em um fonte de dados especifica. Retorna um identficador de resultado contendo a informação.

Descrição

int odbc_tables ( resource connection_id [, string qualifier [, string owner [, string name [, string types]]]])

Lista todas as tabelas no intervalo solicitado. Retorna um identificador de resultado ODBC ou FALSE em caso de falha.

O conjunto de resultados tem as seguintes colunas:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • TABLE_TYPE

  • REMARKS

O conjunto de resultados é ordenado por TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

Os argumentos owner e name aceitam caracteres de busca ('%' para buscar zero ou mais caracteres e '_' para buscar um único caractere).

Para suportar a enumeração de qualifiers, owners, e table types, a seguinte semantica especial para qualifier, owner, name, e table_type esta disponível:

  • Se qualifier é um único caractere de porcentagem (%) e owner e name são strings vazias, então o conjunto de resultados contém uma lista dos qualifiers válidos para a fonte de dados. (Todas as colunas exceto a coluna TABLE_QUALIFIER contém NULLs.)

  • Se owner é um único caractere de porcentagem (%) e qualifier e name são strings vazias, então o conjunto de resultados contém uma lista dos owners válidos para a fonte de dados. (Todas as colunas exceto a coluna TABLE_OWNER contém NULLs.)

  • Se table_type é um único caractere de porcentagem (%) e qualifier, owner e name são strings vazias, então o conjunto de resultados contém uma lista de table types válido para a fonte de dados. (Todas as colunas exceto a coluna TABLE_TYPE contém NULLs.)

Se table_type não for uma string vazia, deve conter uma lista de valores separados por vírgula para os tipos que interessem, cada valor pode estar entre aspas simples (') ou sem aspas. Poe exemplo, "'TABLE','VIEW'" ou "TABLE, VIEW". Se a fonte de dados não suportar o tipo de tabela especificado, odbc_tables() não retorna nenhum resultado para este tipo.

Veja também odbc_tableprivileges() para obter os privilégios associados.

Anterior | Principal | Próxima
odbc_tableprivileges | Acima | Object Aggregation/Composition Functions


Object Aggregation/Composition Functions

Manual do PHP
Anterior Próxima

LXXIII. Object Aggregation/Composition Functions

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Introdução

In Object Oriented Programming, it is common to see the composition of simple classes (and/or instances) into a more complex one. This is a flexible strategy for building complicated objects and object hierarchies and can function as a dynamic alternative to multiple inheritance. There are two ways to perform class (and/or object) composition depending on the relationship between the composed elements: Association and Aggregation.

An Association is a composition of independently constructed and externally visible parts. When we associate classes or objects, each one keeps a reference to the ones it is associated with. When we associate classes statically, one class will contain a reference to an instance of the other class. For example:

Exemplo 1. Class association

<?php
class DateTime {

   function DateTime()
   {
       // empty constructor
   }

   function now()
   {
       return date("Y-m-d H:i:s");
   }
}

class Report {
   var $_dt;
   // more properties ...

   function Report()
   {
       $this->_dt = new DateTime();
       // initialization code ...
   }

   function generateReport()
   {
       $dateTime = $_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
?>
We can also associate instances at runtime by passing a reference in a constructor (or any other method), which allow us to dynamically change the association relationship between objects. We will modify the example above to illustrate this point:

Exemplo 2. Object association

<?php
class DateTime {
   // same as previous example
}

class DateTimePlus {
   var $_format;

   function DateTimePlus($format="Y-m-d H:i:s")
   {
       $this->_format = $format;
   }

   function now()
   {
       return date($this->_format);
   }
}

class Report {
   var $_dt;    // we'll keep the reference to DateTime here
   // more properties ...

   function Report()
   {
       // do some initialization
   }

   function setDateTime(&$dt)
   {
       $this->_dt =& $dt;
   }

   function generateReport()
   {
       $dateTime = $this->_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
$dt = new DateTime();
$dtp = new DateTimePlus("l, F j, Y (h:i:s a, T)");

// generate report with simple date for web display
$rep->setDateTime(&$dt);
echo $rep->generateReport();

// later on in the code ...

// generate report with fancy date
$rep->setDateTime(&$dtp);
$output = $rep->generateReport();
// save $output in database
// ... etc ...
?>

Aggregation, on the other hand, implies encapsulation (hidding) of the parts of the composition. We can aggregate classes by using a (static) inner class (PHP does not yet support inner classes), in this case the aggregated class definition is not accessible, except through the class that contains it. The aggregation of instances (object aggregation) involves the dynamic creation of subobjects inside an object, in the process, expanding the properties and methods of that object.

Object aggregation is a natural way of representing a whole-part relationship, (for example, molecules are aggregates of atoms), or can be used to obtain an effect equivalent to multiple inheritance, without having to permanently bind a subclass to two or more parent classes and their interfaces. In fact object aggregation can be more flexible, in which we can select what methods or properties to "inherit" in the aggregated object.

Exemplos

We define 3 classes, each implementing a different storage method:

Exemplo 3. storage_classes.inc

<?php
class FileStorage {
    var $data;

    function FileStorage($data)
    {
        $this->data = $data;
    }

    function write($name)
    {
        $fp = fopen(name, "w");
        fwrite($fp, $this->data);
        fclose($data);
    }
}

class WDDXStorage {
    var $data;
    var $version = "1.0";
    var $_id; // "private" variable

    function WDDXStorage($data)
    {
        $this->data = $data;
        $this->_id = $this->_genID();
    }

    function store()
    {
        if ($this->_id) {
            $pid = wddx_packet_start($this->_id);
            wddx_add_vars($pid, "this->data");
            $packet = wddx_packet_end($pid);
        } else {
            $packet = wddx_serialize_value($this->data);
        }
        $dbh = dba_open("varstore", "w", "gdbm");
        dba_insert(md5(uniqid("", true)), $packet, $dbh);
        dba_close($dbh);
    }

    // a private method
    function _genID()
    {
        return md5(uniqid(rand(), true));
    }
}

class DBStorage {
    var $data;
    var $dbtype = "mysql";

    function DBStorage($data)
    {
        $this->data = $data;
    }

    function save()
    {
        $dbh = mysql_connect();
        mysql_select_db("storage", $dbh);
        $serdata = serialize($this->data);
        mysql_query("insert into vars ('$serdata',now())", $dbh);
        mysql_close($dbh);
    }
}

?>

We then instantiate a couple of objects from the defined classes, and perform some aggregations and deaggregations, printing some object information along the way:

Exemplo 4. test_aggregation.php

<?php
include "storageclasses.inc";

// some utilty functions

function p_arr($arr)
{
    foreach ($arr as $k => $v)
        $out[] = "\t$k => $v";
    return implode("\n", $out);
}

function object_info($obj)
{
    $out[] = "Class: " . get_class($obj);
    foreach (get_object_vars($obj) as $var=>$val) {
        if (is_array($val)) {
            $out[] = "property: $var (array)\n" . p_arr($val);
        } else {
            $out[] = "property: $var = $val";
        }
    }
    foreach (get_class_methods($obj) as $method) {
        $out[] = "method: $method";
    }
    return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// we create some basic objects
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// print information on the objects
echo "\$fs object\n";
echo object_info($fs) . "\n";
echo "\n\$ws object\n";
echo object_info($ws) . "\n";

// do some aggregation

echo "\nLet's aggregate \$fs to the WDDXStorage class\n";
aggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nNow let us aggregate it to the DBStorage class\n";
aggregate($fs, "DBStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nAnd finally deaggregate WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

?>

We will now consider the output to understand some of the side-effects and limitation of object aggregation in PHP. First, the newly created $fs and $ws objects give the expected output (according to their respective class declaration). Note that for the purposes of object aggregation, private elements of a class/object begin with an underscore character ("_"), even though there is not real distinction between public and private class/object elements in PHP.

$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
method: filestorage
method: write

$ws object
Class: wddxstorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: _id = ID::9bb2b640764d4370eb04808af8b076a5
method: wddxstorage
method: store
method: _genid

We then aggregate $fs with the WDDXStorage class, and print out the object information. We can see now that even though nominally the $fs object is still of FileStorage, it now has the property $version, and the method store(), both defined in WDDXStorage. One important thing to note is that it has not aggregated the private elements defined in the class, which are present in the $ws object. Also absent is the constructor from WDDXStorage, which will not be logical to aggegate.

Let's aggregate $fs to the WDDXStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
method: filestorage
method: write
method: store

The proccess of aggregation is cummulative, so when we aggregate $fs with the class DBStorage, generating an object that can use the storage methods of all the defined classes.

Now let us aggregate it to the DBStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: dbtype = mysql
method: filestorage
method: write
method: store
method: save

Finally, the same way we aggregated properties and methods dynamically, we can also deaggregate them from the object. So, if we deaggregate the class WDDXStorage from $fs, we will obtain:

And deaggregate the WDDXStorage methods and properties
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: dbtype = mysql
method: filestorage
method: write
method: save

One point that we have not mentioned above, is that the process of aggregation will not override existing properties or methods in the objects. For example, the class FileStorage defines a $data property, and the class WDDXStorage also defines a similar property which will not override the one in the object acquired during instantiation from the class FileStorage.

Índice
aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object.
aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object
aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression
aggregate_methods -- Dynamic class and object aggregation of methods
aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object
aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression
aggregate_properties -- Dynamic aggregation of class properties to an object
aggregate -- Dynamic class and object aggregation of methods and properties
aggregation_info -- Alias of aggregate_info()
deaggregate -- Removes the aggregated methods and properties from an object

Anterior | Principal | Próxima
odbc_tables | Acima | aggregate_info


aggregate_info

(no version information, might be only in CVS)

aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object.

Description

array aggregate_info ( object object)

Will return the aggregation information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

Exemplo 1. Using aggregate_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts)
    {
        echo "Doing some simple slicing\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degrees

    function Dicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts)
    {
        echo "Cutting in one direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some cutting
        }
        $this->rotate($this->rotation_angle);
        echo "Cutting in a second direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some more cutting
        }
    }

    function rotate($deg)
    {
        echo "Now rotating {$this->vegetable} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts)
    {
        // so secret we cannot show you ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

Will produce the output

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method _secret_super_dicing

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Principal | Próxima
Object Aggregation/Composition Functions | Acima | aggregate_methods_by_list


aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object

Description

void aggregate_methods_by_list ( object object, string class_name, array methods_list [, bool exclude])

Aggregates methods from a class to an existing object using a list of method names. The optional paramater exclude is used to decide whether the list contains the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Principal | Próxima
aggregate_info | Acima | aggregate_methods_by_regexp


aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression

Description

void aggregate_methods_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates methods from a class to an existing object using a regular expresion to match method names. The optional paramater exclude is used to decide whether the regular expression will select the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Principal | Próxima
aggregate_methods_by_list | Acima | aggregate_methods


aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods -- Dynamic class and object aggregation of methods

Description

void aggregate_methods ( object object, string class_name)

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_info(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Principal | Próxima
aggregate_methods_by_regexp | Acima | aggregate_properties_by_list


aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object

Description

void aggregate_properties_by_list ( object object, string class_name, array properties_list [, bool exclude])

Aggregates properties from a class to an existing object using a list of property names. The optional paramater exclude is used to decide whether the list contains the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Anterior | Principal | Próxima
aggregate_methods | Acima | aggregate_properties_by_regexp


aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression

Description

void aggregate_properties_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates properties from a class to an existing object using a regular expresion to match their names. The optional paramater exclude is used to decide whether the regular expression will select the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_info(),
deaggregate()

Anterior | Principal | Próxima
aggregate_properties_by_list | Acima | aggregate_properties


aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties -- Dynamic aggregation of class properties to an object

Description

void aggregate_properties ( object object, string class_name)

Aggregates all properties defined in a class to an existing object, except for properties whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Anterior | Principal | Próxima
aggregate_properties_by_regexp | Acima | aggregate


aggregate

(PHP 4 >= 4.2.0)

aggregate -- Dynamic class and object aggregation of methods and properties

Description

void aggregate ( object object, string class_name)

Aggregates methods and properties defined in a class to an existing object. Methods and properties with names starting with an underscore character (_) are considered private to the aggregated class and are not used, constructors are also excluded from the aggregation procedure.

See also
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Principal | Próxima
aggregate_properties | Acima | aggregation_info


aggregation_info

aggregation_info -- Alias of aggregate_info()

Description

This function is an alias of aggregate_info().

Anterior | Principal | Próxima
aggregate | Acima | deaggregate


deaggregate

(PHP 4 >= 4.2.0)

deaggregate -- Removes the aggregated methods and properties from an object

Description

void deaggregate ( object object [, string class_name])

Removes the methods and properties from classes that were aggregated to an object. If the optional class_name parameters is passed, only those methods and properties defined in that class are removed, otherwise all aggregated methods and properties are eliminated.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info()

Anterior | Principal | Próxima
aggregation_info | Acima | Funções do Oracle 8


Funções do Oracle 8

Manual do PHP
Anterior Próxima

LXXIV. Funções do Oracle 8

Introdução

Essas funções permitem que você acesse Banco de Dados Oracle8 and Oracle7. Elas usam uma interface de comunicação para Oracle8 chamada (OCI8)

Essa extensão é mais flexível do que a extensão standard Oracle. Ela tem suporte para passar variáveis PHP locais e globais para o "Oracle placeholders", tem suporte completo à LOB, FILE e ROWID e permite que você use variáveis definidas pelo usuário.

Requisitos

Você irá precisar de bibliotecas do cliente Oracle8 para usar esta extensão. Usuários Windows irão precisar das últimas versões do Oracle 8.1 para usar a php_oci8.dll dll.

Antes de usar esta extensão, tenha certeza de que você tem setado sua variável de ambiente Oracle corretamente para seu usuário Oracle, bem como para seu usuário do seu web daemon. As variáveis que você pode precisar setar são as seguintes:

  • ORACLE_HOME

  • ORACLE_SID

  • LD_PRELOAD

  • LD_LIBRARY_PATH

  • NLS_LANG

  • ORA_NLS33

Após setá-las para seu usuário de webserver, tenha certeza também de adicionar seu usuário do webserver (nobody, www) para o grupo oracle.

Se seu servidor web não iniciar ou colidir ao iniciar: Verifique que o Apache está "linkado" com a biblioteca pthread:

# ldd /www/apache/bin/httpd
    libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
    libm.so.6 => /lib/libm.so.6 (0x4002f000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
    libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
    libc.so.6 => /lib/libc.so.6 (0x4007e000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Se a libpthread não estiver listada você terá de recompilar o Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Por favor note que em alguns sistemas como UnixWare isto é libthread ao invés de libpthread. PHP e Apache estão configurados com EXTRA_LIBS=-lthread.

Instalação

Você tem que compilar o PHP com a opção --with-oci8[=DIR], onde DIR é a variável de ambiente ORACLE_HOME.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

OCI_DEFAULT (integer)

Statement execution mode. Statement is not committed automatically when using this mode.

OCI_DESCRIBE_ONLY (integer)

Statement execution mode. Use this mode if you don't want to really execute query, but only get select-list description.

OCI_COMMIT_ON_SUCCESS (integer)

Statement execution mode. Statement is automatically commited after oci_execute() call.

OCI_EXACT_FETCH (integer)

Statement fetch mode. Used when the application knows in advance exactly how many rows it will be fetching. This mode turns prefetching off for Oracle release 8 or later mode. Cursor is cancelled after the desired rows are fetched and may result in reduced server-side resource usage.

OCI_SYSDATE (integer)

OCI_B_BFILE (integer)

Used with oci_bind_by_name() when binding BFILEs.

OCI_B_CFILEE (integer)

Used with oci_bind_by_name() when binding CFILEs.

OCI_B_CLOB (integer)

Used with oci_bind_by_name() when binding CLOBs.

OCI_B_BLOB (integer)

Used with oci_bind_by_name() when binding BLOBs.

OCI_B_ROWID (integer)

Used with oci_bind_by_name() when binding ROWIDs.

OCI_B_CURSOR (integer)

Used with oci_bind_by_name() when binding cursors, previously allocated with oci_new_descriptor().

OCI_B_NTY (integer)

Used with oci_bind_by_name() when binding named data types.

OCI_B_BIN (integer)

SQLT_BFILEE (integer)

The same as OCI_B_BFILE.

SQLT_CFILEE (integer)

The same as OCI_B_CFILEE.

SQLT_CLOB (integer)

The same as OCI_B_CLOB.

SQLT_BLOB (integer)

The same as OCI_B_BLOB.

SQLT_RDD (integer)

The same as OCI_B_ROWID.

SQLT_NTY (integer)

The same as OCI_B_NTY.

OCI_FETCHSTATEMENT_BY_COLUMN (integer)

Default mode of oci_fetch_all().

OCI_FETCHSTATEMENT_BY_ROW (integer)

Alternative mode of oci_fetch_all().

OCI_ASSOC (integer)

Used with oci_fetch_all() and oci_fetch_array() to get an associative array as a result.

OCI_NUM (integer)

Used with oci_fetch_all() and oci_fetch_array() to get an enumerated array as a result.

OCI_BOTH (integer)

Used with oci_fetch_all() and oci_fetch_array() to get an array with both associative and number indices.

OCI_RETURN_NULLS (integer)

Used with oci_fetch_array() to get empty array elements if field's value is NULL.

OCI_RETURN_LOBS (integer)

Used with oci_fetch_array() to get value of LOB instead of the descriptor.

OCI_DTYPE_FILE (integer)

This flag tells oci_new_descriptor() to initialize new FILE descriptor.

OCI_DTYPE_LOB (integer)

This flag tells oci_new_descriptor() to initialize new LOB descriptor.

OCI_DTYPE_ROWID (integer)

This flag tells oci_new_descriptor() to initialize new ROWID descriptor.

OCI_D_FILE (integer)

The same as OCI_DTYPE_FILE.

OCI_D_LOB (integer)

The same as OCI_DTYPE_LOB.

OCI_D_ROWID (integer)

The same as OCI_DTYPE_ROWID.

Exemplos

Exemplo 1. OCI Hints

<?php
// by sergo@bacup.ru

// Use a opção: OCI_DEFAULT para executar comandos para atrasar a execução
OCIExecute($stmt, OCI_DEFAULT);

// use isto para retornar dados (após o fetch):

$result = OCIResult($stmt, $n);
if (is_object ($result)) $result = $result->load();

// Para comandos INSERT ou UPDATE use:

$sql = "insert into table (field1, field2) values (field1 = 'value',
 field2 = empty_clob()) returning field2 into :field2";
OCIParse($conn, $sql);
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName ($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_DEFAULT);
$clob->save ("some text");
OCICommit($conn);

?>

Você pode facilmente acessar stored procedures da mesma forma como você faz em linha de comando.

Exemplo 2. Usando Stored Procedures

<?php
// by webmaster@remoterealty.com
$sth = OCIParse ( $dbh, "begin sp_newaddress( :address_id, '$firstname',
 '$lastname', '$company', '$address1', '$address2', '$city', '$state',
 '$postalcode', '$country', :error_code );end;" );

// Essa chamada stored procedure sp_newaddress, com :address_id being uma
// variável in/out e :error_code sendo uma variável de saída.
// Então você faz a passagem

   OCIBindByName ( $sth, ":address_id", $addr_id, 10 );
   OCIBindByName ( $sth, ":error_code", $errorcode, 10 );
   OCIExecute ( $sth );

?>

Índice
oci_bind_by_name -- Binds the PHP variable to the Oracle placeholder
oci_cancel -- Cancels reading from cursor
oci_close -- Closes Oracle connection
collection->append -- Appends an object to the collection
collection->assign -- Assigns a value to the collection from another existing collection
collection->assignElem -- Assigns a value to the element of the collection
collection->getElem -- Returns value of the element
collection->max -- Gets the maximum number of elements in the collection
collection->size -- Returns size of the collection
collection->trim -- Trims elements from the end of the collection
oci_commit -- Commits outstanding statements
oci_connect -- Establishes a connection to Oracle server
oci_define_by_name -- Uses a PHP variable for the define-step during a SELECT
oci_error -- Returns the last error found
oci_execute -- Executes a statement
oci_fetch_all -- Fetches all rows of result data into an array
oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both
oci_fetch_assoc -- Returns the next row from the result data as an associative array
oci_fetch_object -- Returns the next row from the result data as an object
oci_fetch_row -- Returns the next row from the result data as a numeric array
oci_fetch -- Fetches the next row into result-buffer
oci_field_is_null -- Checks if the field is NULL
oci_field_name -- Returns the name of a field from the statement
oci_field_precision -- Tell the precision of a field
oci_field_scale -- Tell the scale of the field
oci_field_size -- Returns field's size
oci_field_type_raw -- Tell the raw Oracle data type of the field
oci_field_type -- Returns field's data type
collection->free -- Frees resources associated with collection object
descriptor->free -- Frees resources associated with descriptor
oci_free_statement -- Frees all resources associated with statement or cursor
oci_internal_debug -- Enables or disables internal debug output
lob->append -- Appends data from the large object to another large object
lob->close -- Closes LOB descriptor
oci_lob_copy -- Copies large object
lob->eof -- Tests for end-of-file on a large object's descriptor
lob->erase -- Erases a specified portion of the internal LOB data
lob->export -- Exports LOB's contents to a file
lob->flush -- Flushes/writes buffer of the LOB to the server
lob->import -- Imports file data to the LOB
oci_lob_is_equal -- Compares two LOB/FILE locators for equality
lob->load -- Returns large object's contents
lob->read -- Reads part of large object
lob->rewind -- Moves the internal pointer to the beginning of the large object
lob->save -- Saves data to the large object
lob->seek -- Sets the internal pointer of the large object
lob->size -- Returns size of large object
lob->tell -- Returns current position of internal pointer of large object
lob->truncate -- Truncates large object
lob->writeTemporary -- Writes temporary large object
lob->write -- Writes data to the large object
oci_new_collection -- Allocates new collection object
oci_new_connect -- Establishes a new connection to the Oracle server
oci_new_cursor -- Allocates and returns a new cursor (statement handle)
oci_new_descriptor -- Initializes a new empty LOB or FILE descriptor
oci_num_fields -- Returns the number of result columns in a statement
oci_num_rows -- Returns number of rows affected during statement execution
oci_parse -- Prepares Oracle statement for execution
oci_password_change -- Changes password of Oracle's user
oci_pconnect -- Connect to an Oracle database using a persistent connection
oci_result -- Returns field's value from the fetched row
oci_rollback -- Rolls back outstanding transaction
oci_server_version -- Returns server version
oci_set_prefetch -- Sets number of rows to be prefetched
oci_statement_type -- Returns the type of an OCI statement
ocibindbyname -- Passa variáveis PHP para um ambiente de armazenamento do Oracle
ocicancel -- Cancela leitura de um cursor
ocicloselob -- Fecha um lob
ocicollappend -- Insere um objeto em uma coleção
ocicollassign -- Fixa uma coleção para outra coleção existente
ocicollassignelem -- Fixa elementos val para coleções em index ndx
ocicollgetelem -- Retorna o valor contido em coleção index ndx
ocicollmax -- Retorna o valor máximo de uma coleção. Para um array este é o comprimento máximo de um array
ocicollsize -- Retorna o tamanho de uma coleção
ocicolltrim -- Corta um número de elementos do final de uma coleção
ocicolumnisnull -- Testa se o resultado de uma coluna é NULL
ocicolumnname -- Retorna o nome de uma coluna
ocicolumnprecision -- Diz a precisão de uma coluna
ocicolumnscale -- Diz a escala de uma coluna
ocicolumnsize -- Retorna o tamanho de uma coluna
ocicolumntype -- Retorna o tipo de dados de uma coluna
ocicolumntyperaw -- Diz um tipo de dados indefinido de uma coluna Oracle
ocicommit -- Valida uma transação pendente
ocidefinebyname -- Usa uma variável PHP para a definição de passos durante um SELECT
ocierror -- Retorna o último erro de stmt|conn|global
ociexecute -- Executa um bloco de comando
ocifetch -- Traz a próximo linha em um result-buffer
ocifetchinto -- Traz a poxima linha em um array
ocifetchstatement -- Traz todas as linhas de um tipo de dados em um array
ocifreecollection -- Deleta uma coleção de objeto
ocifreecursor -- Libera todos os recursos associados à um cursor
ocifreedesc -- Deleta um grande objeto de descrição
ocifreestatement -- Libera todos os recursos associados à uma declaração
lob->getBuffering -- Returns current state of buffering for large object
ociinternaldebug -- Habilita ou desabilita o sistema interno de debug
ociloadlob -- Carrega um objeto grande
ocilogoff -- Disconecta de um servidor Oracle
ocilogon -- Estabiliza uma conexão com o Oracle
ocinewcollection -- Inicializa uma nova coleção
ocinewcursor -- Retorna um novo cursor (Statement-Handle)
ocinewdescriptor -- Inicializa um novo descritor LOB ou FILE vazios
ocinlogon -- Estabiliza uma nova conexão com o Oracle
ocinumcols -- Retorna o número de colunas encontradas em uma instrução
ociparse -- Interpreta uma query e retorna uma declaração Oracle
ociplogon -- Conecta no Oracle usando uma conexão persistente
ociresult -- Retorna valores de colunas trazidas por uma linha
ocirollback -- Volta uma transação
ocirowcount -- Retorna o número de linhas afetadas
ocisavelob -- Salva o alargamento do objeto
ocisavelobfile -- Salva o alargamento de objeto para um arquivo
ociserverversion -- Retorna uma string contendo informações da versão do servidor
lob->setBuffering -- Changes current state of buffering for large object
ocisetprefetch -- Seta o número de linhas a serem trazidas
ocistatementtype -- Retorna o tipo de uma declaração OCI
ociwritelobtofile -- Salva um grande objeto para arquivo
ociwritetemporarylob -- Escreve um blob temporário

Anterior | Principal | Próxima
deaggregate | Acima | oci_bind_by_name


oci_bind_by_name

(PHP 5)

oci_bind_by_name -- Binds the PHP variable to the Oracle placeholder

Description

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]])

oci_bind_by_name() binds the PHP variable variable to the Oracle placeholder ph_name. Whether it will be used for input or output will be determined at run-time and the necessary storage space will be allocated. The length parameter sets the maximum length for the bind. If you set length to -1 oci_bind_by_name() will use the current length of variable to set the maximum length.

If you need to bind an abstract datatype (LOB/ROWID/BFILE) you need to allocate it first using the oci_new_descriptor() function. The length is not used for abstract datatypes and should be set to -1. The type parameter tells Oracle which descriptor is used. Possible values are:

  • OCI_B_FILE - for BFILEs;

  • OCI_B_CFILE - for CFILEs;

  • OCI_B_CLOB - for CLOBs;

  • OCI_B_BLOB - for BLOBs;

  • OCI_B_ROWID - for ROWIDs;

  • OCI_B_NTY - for named datatypes;

  • OCI_B_CURSOR - for cursors, that were created before with oci_new_cursor().

Exemplo 1. oci_bind_by_name()example

<?php
/* oci_bind_by_name example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                                              VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         ");

$data = array(
              1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim"
             );

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

oci_bind_by_name($stmt, ":empno", $empno, 32);
oci_bind_by_name($stmt, ":ename", $ename, 32);
oci_bind_by_name($stmt, ":rid",   $rowid, -1, OCI_B_ROWID);

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             ");
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

while (list($empno, $ename) = each($data)) {
    oci_execute($stmt);
 oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              ");
oci_execute($stmt);

while ($row = oci_fetch_assoc($stmt)) {
    var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   ");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

Remember, that this function strips trailing whitespace. See the following example:

Exemplo 2. oci_bind_by_name() example

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, :text)";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
    oci_execute($statement);
    /*
     This code will insert into DB string 'trailing spaces follow', without
     trailing spaces
    */
?>

Exemplo 3. oci_bind_by_name() example

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_execute($statement);
    /*
     And this code will add 'trailing spaces follow      ', preserving
     trailing whitespaces
    */
?>

Atenção

Do not use magic_quotes_gpc or addslashes() and oci_bind_by_name() simultaneously as no quoting is needed and any magically applied quotes will be written into your database as oci_bind_by_name() is not able to distinguish magically added quotings from those added intentionally.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocibindbyname() instead. This name still can be used, it was left as alias of oci_bind_by_name() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
Funções do Oracle 8 | Acima | oci_cancel


oci_cancel

(PHP 5)

oci_cancel -- Cancels reading from cursor

Description

bool oci_cancel ( resource stmt)

oci_cancel() invalidates a cursor, freeing all associated resources and cancels the ability to read from it.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

In PHP versions before 5.0.0 you must use ocicancel() instead. This name still can be used, it was left as alias of oci_cancel() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_bind_by_name | Acima | oci_close


oci_close

(PHP 5)

oci_close -- Closes Oracle connection

Description

bool oci_close ( resource connection)

oci_close() closes the Oracle connection connection.

Nota: As non-persistent links are closed automatically at the end of script execution, calling this function is not required. Because of this and the method the extension uses to handle connection resources, oci_close() currently provides no actual functionality.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ociclose() instead. This name still can be used, it was left as alias of oci_close() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_cancel | Acima | collection->append


collection->append

(no version information, might be only in CVS)

collection->append -- Appends an object to the collection

Description

bool collection->append ( mixed value)

Appends an object to the end of the collection. Parameter value can be a string or a number.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
oci_close | Acima | collection->assign


collection->assign

(no version information, might be only in CVS)

collection->assign -- Assigns a value to the collection from another existing collection

Description

bool collection->assign ( object from)

Assigns a value to the collection from another, previously created collection. Both collections must be created with oci_new_collection() prior to using them.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
collection->append | Acima | collection->assignElem


collection->assignElem

(no version information, might be only in CVS)

collection->assignElem -- Assigns a value to the element of the collection

Description

bool collection->assignElem ( int index, mixed value)

Assigns a value to the element with index index. Parameter value can be a string or a number.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
collection->assign | Acima | collection->getElem


collection->getElem

(no version information, might be only in CVS)

collection->getElem -- Returns value of the element

Description

mixed collection->getElem ( int index)

Method collection->getElem() returns value of the element with index index (1-based).

collection->getElem() will return FALSE if such element doesn't exist; NULL if element is NULL; string if element is column of a string datatype or number if element is numeric field.

collection->getElem() will return FALSE in case of error.

Anterior | Principal | Próxima
collection->assignElem | Acima | collection->max


collection->max

(no version information, might be only in CVS)

collection->max -- Gets the maximum number of elements in the collection

Description

int collection->max ( void )

Returns the maximum number of elements in the collection. If the returned value is 0, then the number of elements is not limited. collection->max() returns FALSE in case of error.

See also oci_collection_size().

Anterior | Principal | Próxima
collection->getElem | Acima | collection->size


collection->size

(no version information, might be only in CVS)

collection->size -- Returns size of the collection

Description

int collection->size ( void )

Returns the number of elements in the collection.

See also oci_collection_max().

Anterior | Principal | Próxima
collection->max | Acima | collection->trim


collection->trim

(no version information, might be only in CVS)

collection->trim -- Trims elements from the end of the collection

Description

bool collection->trim ( int num)

Trims num of elements from the end of the collection.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also oci_collection_size().

Anterior | Principal | Próxima
collection->size | Acima | oci_commit


oci_commit

(PHP 5)

oci_commit -- Commits outstanding statements

Description

bool oci_commit ( resource connection)

oci_commit() commits all outstanding statements for the active transaction on the Oracle connection connection.

Exemplo 1. oci_commit() example

<?php
    // Login to Oracle server
    $conn = oci_connect('scott', 'tiger');

    // Parse SQL
    $stmt = oci_parse($conn, "
                              INSERT INTO
                                         employees (name, surname)
                                   VALUES
                                         ('Maxim', 'Maletsky')
                             ");

    /* Execute statement
       OCI_DEFAULT tells oci_execute()
       not to commit statement immediately */
    oci_execute($stmt, OCI_DEFAULT);

    /*
    ....
    Parsing and executing other statements here ...
    ....
    */

    // Commit transaction
    $committed = oci_commit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocicommit() instead. This name still can be used, it was left as alias of oci_commit() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_rollback() and oci_execute().

Anterior | Principal | Próxima
collection->trim | Acima | oci_connect


oci_connect

(PHP 5)

oci_connect -- Establishes a connection to Oracle server

Description

resource oci_connect ( string username, string password [, string db])

oci_connect() returns a connection identifier needed for most other OCI calls. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora to which you want to connect. If the optional third parameter is not specified, PHP uses the environment variables ORACLE_SID (Oracle instance) or TWO_TASK (tnsnames.ora) to determine which database to connect to.

Nota: oci_connect() does not reestablish the connection, if a connection with such parameters was established before. In this case, oci_connect() will return identifier of previously opened connection. This means, that you cannot use this function to separate transactions. To establish a distinctly new connection, use oci_new_connect().

Exemplo 1. oci_connect() example

<?php
echo "<pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
echo "</pre>";
?>

oci_connect() returns FALSE if an error occured.

Nota: In PHP versions before 5.0.0 you must use ocilogon() instead. This name still can be used, it was left as alias of oci_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_pconnect() and oci_new_connect().

Anterior | Principal | Próxima
oci_commit | Acima | oci_define_by_name


oci_define_by_name

(PHP 5)

oci_define_by_name -- Uses a PHP variable for the define-step during a SELECT

Description

bool oci_define_by_name ( resource statement, string column_name, mixed &variable [, int type])

oci_define_by_name() defines PHP variables for fetches of SQL-Columns. Be careful that Oracle uses ALL-UPPERCASE column names, whereby in your select you can also write lowercase. oci_define_by_name() expects the column_name to be in uppercase. If you define a variable that doesn't exists in your select statement, no error will issued.

If you need to define an abstract datatype (LOB/ROWID/BFILE) you must allocate it first using oci_new_descriptor(). See also the oci_bind_by_name() function.

Exemplo 1. oci_define_by_name() example

<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");

/* the define MUST be done BEFORE oci_execute! */

oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Nota: In PHP versions before 5.0.0 you must use ocidefinebyname() instead. This name still can be used, it was left as alias of oci_define_by_name() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_connect | Acima | oci_error


oci_error

(PHP 5)

oci_error -- Returns the last error found

Description

array ocierror ( [resource source])

oci_error() returns the last error found. If the optional source is not provided, the last error encountered is returned. You can use connection or statement resources as value of parameter source. If no error is found, oci_error() returns FALSE. oci_error() returns the error as an associative array. In this array, code consists the oracle error code and message the oracle error string.

As of PHP 4.3: offset and sqltext will also be included in the return array to indicate the location of the error and the original SQL text which caused it.

Nota: In PHP versions before 5.0.0 you must use ocierror() instead. This name still can be used, it was left as alias of oci_error() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_define_by_name | Acima | oci_execute


oci_execute

(PHP 5)

oci_execute -- Executes a statement

Description

bool oci_execute ( resource stmt [, int mode])

oci_execute() executes a previously parsed statement (see oci_parse()). The optional mode allows you to specify the execution mode (default is OCI_COMMIT_ON_SUCCESS). If you don't want statements to be committed automatically, you should specify OCI_DEFAULT as your mode.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ociexecute() instead. This name still can be used, it was left as alias of oci_execute() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_error | Acima | oci_fetch_all


oci_fetch_all

(PHP 5)

oci_fetch_all -- Fetches all rows of result data into an array

Description

int oci_fetch_all ( resource statement, array &output [, int skip [, int maxrows [, int flags]]])

oci_fetch_all() fetches all the rows from a result into a user-defined array. oci_fetch_all() returns the number of rows fetched or FALSE in case of error. skip is the number of initial rows to ignore when fetching the result (default value of 0, to start at the first line). maxrows is the number of rows to read, starting at the skipth row (default to -1, meaning all the rows).

Parameter flags can be any combination of the following:

OCI_FETCHSTATEMENT_BY_ROW
OCI_FETCHSTATEMENT_BY_COLUMN (default value)
OCI_NUM
OCI_ASSOC

Exemplo 1. oci_fetch_all() example

<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
   echo "<table border=\"1\">\n";
   echo "<tr>\n";
   while (list($key, $val) = each($results)) {
      echo "<th>$key</th>\n";
   }
   echo "</tr>\n";

   for ($i = 0; $i < $nrows; $i++) {
      reset($results);
      echo "<tr>\n";
      while ($column = each($results)) {
         $data = $column['value'];
         echo "<td>$data[$i]</td>\n";
      }
      echo "</tr>\n";
   }
   echo "</table>\n";
} else {
   echo "No data found<br />\n";
}
echo "$nrows Records Selected<br />\n";

oci_free_statement($stmt);
oci_close($conn);
?>

oci_fetch_all() returns FALSE in case of error.

Nota: In PHP versions before 5.0.0 you must use ocifetchstatement() instead. This name still can be used, it was left as alias of oci_fetch_all() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_execute | Acima | oci_fetch_array


oci_fetch_array

(PHP 5)

oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both

Description

array oci_fetch_array ( resource statement [, int mode])

Returns an array, which corresponds to the next result row or FALSE in case of error or there is no more rows in the result.

oci_fetch_array() returns an array with both associative and numeric indices.

Optional second paramater can be any combination of the following constants:

OCI_BOTH - return an array with both associative and numeric indices (the same as OCI_ASSOC + OCI_NUM). This is the default behavior.
OCI_ASSOC - return an associative array (as oci_fetch_assoc() works).
OCI_NUM - return a numeric array, (as oci_fetch_row() works).
OCI_RETURN_NULLS - create empty elements for the NULL fields.
OCI_RETURN_LOBS - return the value of a LOB of the descriptor.

Default mode is OCI_BOTH.

It should be mentioned here, that oci_fetch_array() is insignificantly slower, than oci_fetch_row(), but much more handy.

Nota: Don't forget, that Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

Exemplo 1. oci_fetch_array() with OCI_BOTH example

<?php
$connection = oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0]." and ".$row['ID']." is the same<br>";
    echo $row[1]." and ".$row['NAME']." is the same<br>";
}
?>

Exemplo 2. oci_fetch_array() with OCI_NUM example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row[2]->read(100)."<br>";  //this will output first 100 bytes from LOB
}
?>

Exemplo 3. oci_fetch_array() with OCI_ASSOC example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row['ID']."<br>";
    echo $row['NAME']."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output "Object id #1"
}
?>

Exemplo 4. oci_fetch_array() with OCI_RETURN_LOBS example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output LOB's content
}
?>

See also oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Anterior | Principal | Próxima
oci_fetch_all | Acima | oci_fetch_assoc


oci_fetch_assoc

(PHP 5)

oci_fetch_assoc -- Returns the next row from the result data as an associative array

Description

array oci_fetch_assoc ( resource statement)

oci_fetch_assoc() returns the next row from the result data as an associative array (identical to oci_fetch_array() call with OCI_ASSOC flag).

Subsequent call to oci_fetch_assoc() will return next row or FALSE if there is no more rows.

Nota: Don't forget, that Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

See also oci_fetch_array(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Anterior | Principal | Próxima
oci_fetch_array | Acima | oci_fetch_object


oci_fetch_object

(PHP 5)

oci_fetch_object -- Returns the next row from the result data as an object

Description

object oci_fetch_object ( resource statement)

oci_fetch_object() returns the next row from the result data as an object, which attributes correspond to fields in statement.

Subsequent calls to oci_fetch_object() will return the next row from the result or FALSE if there is no more rows.

Nota: Don't forget, that Oracle returns all field names in uppercase and attributes' names in the result object will be in uppercase as well.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_row() and
oci_fetch_all().

Anterior | Principal | Próxima
oci_fetch_assoc | Acima | oci_fetch_row


oci_fetch_row

(PHP 5)

oci_fetch_row -- Returns the next row from the result data as a numeric array

Description

array oci_fetch_row ( resource statement)

Calling oci_fetch_row() is identical to oci_fetch_array() with OCI_NUM flag and returns the next row from the result data as a numeric array.

Subsequent calls to oci_fetch_row() will return the next row from the result data or FALSE if there is no more rows.

See also oci_fetch_array(),
oci_fetch_object(),
oci_fetch_assoc() and
oci_fetch_all().

Anterior | Principal | Próxima
oci_fetch_object | Acima | oci_fetch


oci_fetch

(PHP 5)

oci_fetch -- Fetches the next row into result-buffer

Description

bool oci_fetch ( resource statement)

oci_fetch() fetches the next row (for SELECT statements) into the internal result-buffer.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocifetch() instead. This name still can be used, it was left as alias of oci_fetch() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_fetch_row | Acima | oci_field_is_null


oci_field_is_null

(PHP 5)

oci_field_is_null -- Checks if the field is NULL

Description

bool oci_field_is_null ( resource stmt, mixed field)

oci_field_is_null() returns TRUE if field field from the statement is NULL. Parameter field could be a field's index or a field's name (uppercased).

Nota: In PHP versions before 5.0.0 you must use ocicolumnisnull() instead. This name still can be used, it was left as alias of oci_field_is_null() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_fetch | Acima | oci_field_name


oci_field_name

(PHP 5)

oci_field_name -- Returns the name of a field from the statement

Description

string oci_field_name ( resource statement, int field)

oci_field_name() returns the name of the field corresponding to the field number (1-based).

Exemplo 1. oci_field_name() example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>

Nota: In PHP versions before 5.0.0 you must use ocicolumnname() instead. This name still can be used, it was left as alias of oci_field_name() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields(),
oci_field_type(),
and oci_field_size().

Anterior | Principal | Próxima
oci_field_is_null | Acima | oci_field_precision


oci_field_precision

(PHP 5)

oci_field_precision -- Tell the precision of a field

Description

int oci_field_precision ( resource statement, int field)

Returns precision of the field with field index (1-based).

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Nota: In PHP versions before 5.0.0 you must use ocicolumnprecision() instead. This name still can be used, it was left as alias of oci_field_precision() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_field_scale() and oci_field_type().

Anterior | Principal | Próxima
oci_field_name | Acima | oci_field_scale


oci_field_scale

(PHP 5)

oci_field_scale -- Tell the scale of the field

Description

int oci_field_scale ( resource statement, int field)

Returns scale of the column with field index (1-based) or FALSE if there is no such field.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Nota: In PHP versions before 5.0.0 you must use ocicolumnscale() instead. This name still can be used, it was left as alias of oci_field_scale() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_field_precision() and oci_field_type().

Anterior | Principal | Próxima
oci_field_precision | Acima | oci_field_size


oci_field_size

(PHP 5)

oci_field_size -- Returns field's size

Description

int oci_field_size ( resource stmt, mixed field)

oci_field_size() returns the size of a field in bytes. Value of field parameter can be the field's index (1-based) or it's name.

Exemplo 1. oci_field_size()example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Nota: In PHP versions before 5.0.0 you must use ocicolumnsize() instead. This name still can be used, it was left as alias of oci_field_size() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields() and oci_field_name().

Anterior | Principal | Próxima
oci_field_scale | Acima | oci_field_type_raw


oci_field_type_raw

(PHP 5)

oci_field_type_raw -- Tell the raw Oracle data type of the field

Description

int oci_field_type_raw ( resource statement, int field)

oci_field_type_raw() returns Oracle's raw data type of the field.

Nota: In PHP versions before 5.0.0 you must use ocicolumntyperaw() instead. This name still can be used, it was left as alias of oci_field_type_raw() for downwards compatability. This, however, is deprecated and not recommended.

However, if you want to get field's type, then oci_field_type() will suit you better. See oci_field_type() for additional information.

Anterior | Principal | Próxima
oci_field_size | Acima | oci_field_type


oci_field_type

(PHP 5)

oci_field_type -- Returns field's data type

Description

mixed ocicolumntype ( resource stmt, int field)

oci_field_type() returns a field's data type. Parameter field is an index of the field in the statement (1-based).

Exemplo 1. oci_field_type() example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Nota: In PHP versions before 5.0.0 you must use ocicolumntype() instead. This name still can be used, it was left as alias of oci_field_type() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields(),
oci_field_name(),
and oci_field_size().

Anterior | Principal | Próxima
oci_field_type_raw | Acima | collection->free


collection->free

(no version information, might be only in CVS)

collection->free -- Frees resources associated with collection object

Description

bool collection->free ( void )

Frees resources associated with collection object.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
oci_field_type | Acima | descriptor->free


descriptor->free

(no version information, might be only in CVS)

descriptor->free -- Frees resources associated with descriptor

Description

bool descriptor->free ( void )

descriptor->free() frees resources associated with descriptor, previously allocated with oci_new_descriptor().

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
collection->free | Acima | oci_free_statement


oci_free_statement

(PHP 5)

oci_free_statement -- Frees all resources associated with statement or cursor

Description

bool oci_free_statement ( resource statement)

oci_free_statement() frees resources associated with Oracle's cursor or statement, which was received from as a result of oci_parse() or obtained from Oracle.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
descriptor->free | Acima | oci_internal_debug


oci_internal_debug

(PHP 5)

oci_internal_debug -- Enables or disables internal debug output

Description

void oci_internal_debug ( int onoff)

oci_internal_debug() enables or disables internal debug output. Set onoff to 0 to turn debug output off or 1 to turn it on.

Nota: In PHP versions before 5.0.0 you must use ociinternaldebug() instead. This name still can be used, it was left as alias of oci_internal_debug() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_free_statement | Acima | lob->append


lob->append

(no version information, might be only in CVS)

lob->append -- Appends data from the large object to another large object

Description

bool lob->append ( object lob_from)

Appends data from the large object to the end of another large object.

Writing to the large object with lob->append() will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with oci_lob_flush() before disabling buffering.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also oci_lob_flush(),
ocisetbufferinglob() and
ocigetbufferinglob().

Anterior | Principal | Próxima
oci_internal_debug | Acima | lob->close


lob->close

(no version information, might be only in CVS)

lob->close -- Closes LOB descriptor

Description

bool lob->close ( void )

lob->close() closes descriptor of LOB or FILE. This function should be used only with lob->writeTemporary().

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocicloselob() instead. This name still can be used, it was left as alias of oci_lob_close() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_write_temporary().

Anterior | Principal | Próxima
lob->append | Acima | oci_lob_copy


oci_lob_copy

(PHP 5)

oci_lob_copy -- Copies large object

Description

bool oci_lob_copy ( [int length])

Copies large object or a part of large object to another large object. Parameter length indicates the length of data to be copied. Old data of LOB-recipient will be overwritten.

If you need to copy a particular part of LOB to a particular position of LOB, you can use oci_lob_seek() to move internal pointers of LOBs.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
lob->close | Acima | lob->eof


lob->eof

(no version information, might be only in CVS)

lob->eof -- Tests for end-of-file on a large object's descriptor

Description

bool lob->eof ( void )

Returns TRUE if internal pointer of large object is at the end of LOB. Otherwise returns FALSE.

See also oci_lob_size().

Anterior | Principal | Próxima
oci_lob_copy | Acima | lob->erase


lob->erase

(no version information, might be only in CVS)

lob->erase -- Erases a specified portion of the internal LOB data

Description

int lob->erase ( [int offset [, int length]])

Erases a specified portion of the internal LOB data starting at a specified offset. Parameters length and offset are optional. lob->erase() erases all LOB data by default.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

lob->erase() returns the actual number of characters/bytes erased or FALSE in case of error.

Anterior | Principal | Próxima
lob->eof | Acima | lob->export


lob->export

(no version information, might be only in CVS)

lob->export -- Exports LOB's contents to a file

Description

bool ociwritelobtofile ( string filename [, int start [, int length]])

Exports LOB's contents to a file, which name is given in parameter filename. Optional parameter start indicates from what position to start export and parameter length - length of data to be exported.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
lob->erase | Acima | lob->flush


lob->flush

(no version information, might be only in CVS)

lob->flush -- Flushes/writes buffer of the LOB to the server

Description

bool lob->flush ( [int flag])

lob->flush() actually writes data to the server. By default, resources are not freed, but using flag OCI_LOB_BUFFER_FREE you can do it explicitly. Be sure you know what you're doing - next read/write operation to the same part of LOB will involve a round-trip to the server and initialize new buffer resources. Tt is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

lob->flush() returns FALSE if buffering was not enabled or an error occurred.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
lob->export | Acima | lob->import


lob->import

(no version information, might be only in CVS)

lob->import -- Imports file data to the LOB

Description

bool lob->import ( string filename)

Writes data from filename in to the current position of large object.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocisavelobfile() instead. This name still can be used, it was left as alias of oci_lob_import() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
lob->flush | Acima | oci_lob_is_equal


oci_lob_is_equal

(PHP 5)

oci_lob_is_equal -- Compares two LOB/FILE locators for equality

Description

bool oci_lob_is_equal ( object lob1, object lob2)

Compares two LOB/FILE locators. Returns TRUE if these objects are equal and FALSE otherwise.

Anterior | Principal | Próxima
lob->import | Acima | lob->load


lob->load

(no version information, might be only in CVS)

lob->load -- Returns large object's contents

Description

string lob->load ( void )

Returns large object's contents. As script execution is terminated when the memory_limit is reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use oci_lob_read() instead. In case of error lob->load() returns FALSE.

Nota: In PHP versions before 5.0.0 you must use ociloadlob() instead. This name still can be used, it was left as alias of oci_lob_load() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_lob_is_equal | Acima | lob->read


lob->read

(no version information, might be only in CVS)

lob->read -- Reads part of large object

Description

string lob->read ( int length)

Reads length bytes from the current position of LOB's internal pointer. Reading stops when length bytes have been read or end of large object is reached. Internal pointer of large object will be shifted on the amount of bytes read.

Returns FALSE in case of error.

See also oci_lob_eof(),
oci_lob_seek(),
oci_lob_tell() and
oci_lob_write().

Anterior | Principal | Próxima
lob->load | Acima | lob->rewind


lob->rewind

(no version information, might be only in CVS)

lob->rewind -- Moves the internal pointer to the beginning of the large object

Description

bool lob->rewind ( void )

Sets the internal pointer to the beginning of the large object.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also oci_lob_seek() and oci_lob_tell().

Anterior | Principal | Próxima
lob->read | Acima | lob->save


lob->save

(no version information, might be only in CVS)

lob->save -- Saves data to the large object

Description

bool lob->save ( string data [, int offset])

Saves data to the large object. Parameter offset can be used to indicate offset from the beginning of the large object.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocisavelob() instead. This name still can be used, it was left as alias of oci_lob_save() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_write() and oci_lob_import().

Anterior | Principal | Próxima
lob->rewind | Acima | lob->seek


lob->seek

(no version information, might be only in CVS)

lob->seek -- Sets the internal pointer of the large object

Description

bool lob->seek ( int offset [, int whence])

Sets the internal pointer of the large object. Parameter offset indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence:

OCI_SEEK_SET - sets the position equal to offset
OCI_SEEK_CUR - adds offset bytes to the current position
OCI_SEEK_END - adds offset bytes to the end of large object (use negative value to move to a position before the end of large object)

See also oci_lob_rewind() and oci_lob_tell().

Anterior | Principal | Próxima
lob->save | Acima | lob->size


lob->size

(no version information, might be only in CVS)

lob->size -- Returns size of large object

Description

int lob->size ( void )

Returns length of large object value or FALSE in case of error. Empty objects have zero length.

Anterior | Principal | Próxima
lob->seek | Acima | lob->tell


lob->tell

(no version information, might be only in CVS)

lob->tell -- Returns current position of internal pointer of large object

Description

int lob->tell ( void )

Returns current position of a LOB's internal pointer or FALSE if an error occured.

See also oci_lob_size() and oci_lob_eof().

Anterior | Principal | Próxima
lob->size | Acima | lob->truncate


lob->truncate

(no version information, might be only in CVS)

lob->truncate -- Truncates large object

Description

bool lob->truncate ( [int length])

If parameter length is given, lob->truncate() truncates large object to length bytes. Otherwise, lob->truncate() will purge the LOB completely.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also oci_lob_erase().

Anterior | Principal | Próxima
lob->tell | Acima | lob->writeTemporary


lob->writeTemporary

(no version information, might be only in CVS)

lob->writeTemporary -- Writes temporary large object

Description

bool lob->writeTemporary ( string data [, int lob_type])

Creates a temporary large object and writes data to it.

Parameter lob_type can be one of the following:

OCI_TEMP_BLOB is used to create temporary BLOBs
OCI_TEMP_CLOB is used to create temporary CLOBs

lob->writeTemporary() creates a CLOB by default.

You should use oci_lob_close() when the work with the object is over.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ociwritetemporarylob() instead. This name still can be used, it was left as alias of oci_lob_write_temporary() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_close().

Anterior | Principal | Próxima
lob->truncate | Acima | lob->write


lob->write

(no version information, might be only in CVS)

lob->write -- Writes data to the large object

Description

int lob->write ( string data [, int length])

Writes data from the parameter data into the current position of LOB's internal pointer. If the parameter length is given, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

lob->write() returns the number of bytes written or FALSE in case of error.

See also oci_lob_read().

Anterior | Principal | Próxima
lob->writeTemporary | Acima | oci_new_collection


oci_new_collection

(PHP 5)

oci_new_collection -- Allocates new collection object

Description

object oci_new_collection ( resource connection, string tdo [, string schema])

Allocates new collection object. Parameter tdo should be a valid named type (uppercased). Third, optional parameter schema should point to the scheme, where the named type was created. oci_new_collection() uses name of the current user as default value of schema.

oci_new_collection() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocinewcollection() instead. This name still can be used, it was left as alias of oci_new_collection() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
lob->write | Acima | oci_new_connect


oci_new_connect

(PHP 5)

oci_new_connect -- Establishes a new connection to the Oracle server

Description

resource oci_new_connect ( string username, string password [, string db])

oci_new_connect() creates a new connection to an Oracle server and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of tnsnames.ora accordingly.

oci_new_connect() forces the creation of a new connection. This should be used if you need to isolate a set of transactions. By default, connections are shared and subsequent calls to oci_connect() will return the same connection identifier.

The following demonstrates how you can separate connections.

Exemplo 1. oci_new_connect() example

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

oci_new_connect() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocinlogon() instead. This name still can be used, it was left as alias of oci_new_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_pconnect().

Anterior | Principal | Próxima
oci_new_collection | Acima | oci_new_cursor


oci_new_cursor

(PHP 5)

oci_new_cursor -- Allocates and returns a new cursor (statement handle)

Description

resource oci_new_cursor ( resource connection)

oci_new_cursor() allocates a new statement handle on the specified connection.

Exemplo 1. Using REF CURSOR in an Oracle's stored procedure

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");

oci_bind_by_name($stmt, "data", &$curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_row($curs)) {
    var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Exemplo 2. Using REF CURSOR in an Oracle's select statement

<?php
echo "<html><body>";
$conn = oci_connect("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = oci_parse($conn, "select deptno,dname,$count_cursor");

oci_execute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while ($data = oci_fetch_assoc($stmt)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    oci_execute($data["EMPCNT"]);
    while ($subdata = oci_fetch_assoc($data["EMPCNT"])) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

oci_new_cursor() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocinewcursor() instead. This name still can be used, it was left as alias of oci_new_cursor() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_new_connect | Acima | oci_new_descriptor


oci_new_descriptor

(PHP 5)

oci_new_descriptor -- Initializes a new empty LOB or FILE descriptor

Description

object oci_new_descriptor ( resource connection [, int type])

oci_new_descriptor() allocates resources to hold descriptor or LOB locator. Valid values for type are: OCI_D_FILE, OCI_D_LOB and OCI_D_ROWID.

Exemplo 1. oci_new_descriptor() example

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "select rowid from $table $where");
    $rowid = oci_new_descriptor($conn, OCI_D_ROWID);
    oci_define_by_name($stmt, "ROWID", $rowid);
    oci_execute($stmt);
    while (oci_fetch($stmt)) {
       $nrows = oci_num_rows($stmt);
       $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
       oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
       oci_execute($delete);
       echo "$nrows\n";
       if (($nrows % $commitsize) == 0) {
           oci_commit($conn);
       }
    }
    $nrows = oci_num_rows($stmt);
    echo "$nrows deleted...\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload" />
     * ...
     */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_execute($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     oci_free_descriptor($lob);
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Exemplo 2. oci_new_descriptor() example

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
    $clob = oci_new_descriptor($conn, OCI_D_LOB);
    oci_bind_by_name($stmt, ':key', $key);
    oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
    $clob->write($data);
    oci_execute($stmt, OCI_DEFAULT);
    oci_commit($conn);
    $clob->free();
    oci_free_statement($stmt);
?>

oci_new_descriptor() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocinewdescriptor() instead. This name still can be used, it was left as alias of oci_new_descriptor() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_new_cursor | Acima | oci_num_fields


oci_num_fields

(PHP 5)

oci_num_fields -- Returns the number of result columns in a statement

Description

int oci_num_fields ( resource statement)

oci_num_fields() returns the number of columns in the statement.

Exemplo 1. oci_num_fields() example

<?php
    echo "<pre>\n";
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "select * from emp");

    oci_execute($stmt);

    while (oci_fetch($stmt)) {
        echo "\n";
        $ncols = oci_num_fields($stmt);
        for ($i = 1; $i <= $ncols; $i++) {
            $column_name  = oci_field_name($stmt, $i);
            $column_value = oci_result($stmt, $i);
            echo $column_name . ': ' . $column_value . "\n";
        }
        echo "\n";
    }

    oci_free_statement($stmt);
    oci_close($conn);

    echo "</pre>";
?>

oci_num_fields() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocinumcols() instead. This name still can be used, it was left as alias of oci_num_fields() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_new_descriptor | Acima | oci_num_rows


oci_num_rows

(PHP 5)

oci_num_rows -- Returns number of rows affected during statement execution

Description

int oci_num_rows ( resource stmt)

oci_num_rows() returns number of rows affected during statement execution.

Nota: This function does not return number of rows selected! For SELECT statements this function will return the number of rows, that were fetched to the buffer with oci_fetch*() functions.

Exemplo 1. oci_num_rows() example

<?php
    echo "<pre>";
    $conn = oci_connect("scott", "tiger");

    $stmt = oci_parse($conn, "create table emp2 as select * from emp");
    oci_execute($stmt);
    echo oci_num_rows($stmt) . " rows inserted.<br />";
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "delete from emp2");
    oci_execute($stmt, OCI_DEFAULT);
    echo oci_num_rows($stmt) . " rows deleted.<br />";
    oci_commit($conn);
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "drop table emp2");
    oci_execute($stmt);
    oci_free_statement($stmt);

    oci_close($conn);
    echo "</pre>";
?>

oci_num_rows() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocirowcount() instead. This name still can be used, it was left as alias of oci_num_rows() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_num_fields | Acima | oci_parse


oci_parse

(PHP 5)

oci_parse -- Prepares Oracle statement for execution

Description

resource oci_parse ( resource connection, string query)

oci_parse() prepares the query using connection and returns the statement identifier, which can be used with oci_bind_by_name(), oci_execute() and other functions.

Nota: This function does not validate query. The only way to find out if query is valid SQL or PL/SQL statement - is to execute it.

oci_parse() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ociparse() instead. This name still can be used, it was left as alias of oci_parse() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_num_rows | Acima | oci_password_change


oci_password_change

(PHP 5)

oci_password_change -- Changes password of Oracle's user

Description

bool oci_password_change ( resource connection, string username, string old_password, string new_password)

Changes password for user with username. Parameters old_password and new_password should indicate old and new passwords respectively.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocipasswordchange() instead. This name still can be used, it was left as alias of oci_password_change() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_parse | Acima | oci_pconnect


oci_pconnect

(PHP 5)

oci_pconnect -- Connect to an Oracle database using a persistent connection

Description

resource oci_pconnect ( string username, string password [, string db])

oci_pconnect() creates a new persistent connection to an Oracle server and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of tnsnames.ora accordingly.

oci_pconnect() returns connection identifier or FALSE on error.

Nota: Note, that these kind of links only work if you are using a module version of PHP. See the Persistent Database Connections section for more information.

Nota: In PHP versions before 5.0.0 you must use ociplogon() instead. This name still can be used, it was left as alias of oci_pconnect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_new_connect().

Anterior | Principal | Próxima
oci_password_change | Acima | oci_result


oci_result

(PHP 5)

oci_result -- Returns field's value from the fetched row

Description

mixed oci_result ( resource statement, mixed field)

oci_result() returns the data from the field field in the current row, fetched by oci_fetch(). oci_result() returns everything as strings except for abstract types (ROWIDs, LOBs and FILEs). oci_result() returns FALSE on error.

You can either use the column number (1-based) or the column name (in uppercase) for the field() parameter.

Nota: In PHP versions before 5.0.0 you must use ociresult() instead. This name still can be used, it was left as alias of oci_result() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Anterior | Principal | Próxima
oci_pconnect | Acima | oci_rollback


oci_rollback

(PHP 5)

oci_rollback -- Rolls back outstanding transaction

Description

bool oci_rollback ( resource connection)

oci_rollback() rolls back all outstanding statements for Oracle connection connection.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: In PHP versions before 5.0.0 you must use ocirollback() instead. This name still can be used, it was left as alias of oci_rollback() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_commit().

Anterior | Principal | Próxima
oci_result | Acima | oci_server_version


oci_server_version

(PHP 5)

oci_server_version -- Returns server version

Description

string oci_server_version ( resource connection)

Returns a string with version information of the Oracle server, which uses connection connection or returns FALSE on error.

Exemplo 1. oci_server_version() example

<?php
    $conn = oci_connect("scott", "tiger");
    echo "Server Version: " . oci_server_version($conn);
    oci_close($conn);
?>

Nota: In PHP versions before 5.0.0 you must use ociserverversion() instead. This name still can be used, it was left as alias of oci_server_version() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_rollback | Acima | oci_set_prefetch


oci_set_prefetch

(PHP 5)

oci_set_prefetch -- Sets number of rows to be prefetched

Description

bool oci_set_prefetch ( resource statement [, int rows])

Sets the number of rows to be prefetched after successful call to oci_execute(). The default value for rows is 1.

Nota: In PHP versions before 5.0.0 you must use ocisetprefetch() instead. This name still can be used, it was left as alias of oci_set_prefetch() for downwards compatability. This, however, is deprecated and not recommended.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
oci_server_version | Acima | oci_statement_type


oci_statement_type

(PHP 5)

oci_statement_type -- Returns the type of an OCI statement

Description

string oci_statement_type ( resource statement)

oci_statement_type() returns the query type of statement statement as one of the following values:

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. UNKNOWN

Parameter statement is a valid OCI statement identifier, returned from oci_parse().

Exemplo 1. oci_statement_type() example

<?php
    $conn = oci_connect("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = oci_parse($conn, $sql);
    if (oci_statement_type($stmt) == "DELETE") {
        die("You are not allowed to delete from this table<br />");
    }

    oci_close($conn);
?>

oci_statement_type() returns FALSE on error.

Nota: In PHP versions before 5.0.0 you must use ocistatementtype() instead. This name still can be used, it was left as alias of oci_statement_type() for downwards compatability. This, however, is deprecated and not recommended.

Anterior | Principal | Próxima
oci_set_prefetch | Acima | ocibindbyname


ocibindbyname

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocibindbyname -- Passa variáveis PHP para um ambiente de armazenamento do Oracle

Descrição

bool ocibindbyname ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]])

ocibindbyname() passa uma variável PHP variable para um ambiente de armazenamento no Oracle ph_name. Se isso for usado para entrada ou saída de dados irá ser determinado "run-time", e o espaço necessário para armazenagem será alocado. O parâmetro length seta o comprimento máximo para passar. Se você setar length como -1 ocibindbyname() irá usar o comprimento atual da variable para setar o comprimento máximo.

Se você precisar passar um tipo de dados abstrato (LOB/ROWID/BFILE) você precisa alocar isso primeiro usando a função ocinewdescriptor(). O length não é usado para tipo de dados abstratos e deve ser setado como -1. A variável type diz ao Oracle, qual classificação nós queremos usar. Valores possíveis são: OCI_B_FILE (Binary-File), OCI_B_CFILE (Character-File), OCI_B_CLOB (Character-LOB), OCI_B_BLOB (Binary-LOB) e OCI_B_ROWID (ROWID).

Exemplo 1. ocibindbyname() example

<?php
/* OCIBindByPos example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"insert into emp (empno, ename) ".
                       "values (:empno,:ename) ".
                       "returning ROWID into :rid");

$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");

$rowid = OCINewDescriptor($conn,OCI_D_ROWID);

OCIBindByName($stmt,":empno",&$empno,32);
OCIBindByName($stmt,":ename",&$ename,32);
OCIBindByName($stmt,":rid",&$rowid,-1,OCI_B_ROWID);

$update = OCIParse($conn,"update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update,":rid",&$rowid,-1,OCI_B_ROWID);
OCIBindByName($update,":sal",&$sal,32);

$sal = 10000;

while (list($empno,$ename) = each($data)) {
    OCIExecute($stmt);
    OCIExecute($update);
}

$rowid->free();

OCIFreeStatement($update);
OCIFreeStatement($stmt);

$stmt = OCIParse($conn,"select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (OCIFetchInto($stmt,&$arr,OCI_ASSOC)) {
    var_dump($arr);
}
OCIFreeStatement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = OCIParse($conn,"delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);

OCILogoff($conn);
?>

Atenção

É uma má idéia usar magic quotes e ocibindbyname() simultâneamente, nenhuma aspas são necessárias em variáveis que já possuem e alguma aspas magicamente aplicadas irão ser escritas dentro do seu database como ocibindbyname() não está habilitada para distinguir aspas magicamente adicionadas para estas adicionadas intencionalmente.

Anterior | Principal | Próxima
oci_statement_type | Acima | ocicancel


ocicancel

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocicancel -- Cancela leitura de um cursor

Descrição

bool ocicancel ( resource stmt)

Se você não quer ler mais dados de um cursor, então chame ocicancel().

Anterior | Principal | Próxima
ocibindbyname | Acima | ocicloselob


ocicloselob

(no version information, might be only in CVS)

ocicloselob -- Fecha um lob

Descrição

bool ocicloselob ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicancel | Acima | ocicollappend


ocicollappend

(PHP 4 >= 4.0.6, PHP 5)

ocicollappend -- Insere um objeto em uma coleção

Descrição

bool ocicollappend ( string value)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicloselob | Acima | ocicollassign


ocicollassign

(PHP 4 >= 4.0.6)

ocicollassign -- Fixa uma coleção para outra coleção existente

Descrição

bool ocicollassign ( object from)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicollappend | Acima | ocicollassignelem


ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollassignelem -- Fixa elementos val para coleções em index ndx

Descrição

bool ocicollassignelem ( int ndx, string val)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicollassign | Acima | ocicollgetelem


ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollgetelem -- Retorna o valor contido em coleção index ndx

Descrição

string ocicollgetelem ( int ndx)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicollassignelem | Acima | ocicollmax


ocicollmax

(PHP 4 >= 4.0.6, PHP 5)

ocicollmax -- Retorna o valor máximo de uma coleção. Para um array este é o comprimento máximo de um array

Descrição

int ocicollmax ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicollgetelem | Acima | ocicollsize


ocicollsize

(PHP 4 >= 4.0.6, PHP 5)

ocicollsize -- Retorna o tamanho de uma coleção

Descrição

int ocicollsize ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicollmax | Acima | ocicolltrim


ocicolltrim

(PHP 4 >= 4.0.6, PHP 5)

ocicolltrim -- Corta um número de elementos do final de uma coleção

Descrição

bool ocicolltrim ( int num)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicollsize | Acima | ocicolumnisnull


ocicolumnisnull

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnisnull -- Testa se o resultado de uma coluna é NULL

Descrição

bool ocicolumnisnull ( resource stmt, mixed col)

ocicolumnisnull() retorna TRUE se a coluna retornada em column no resultado de uma declaração stmt for NULL. Você pode usar o número da coluna se quiser (1-Based) ou o nome da coluna, em maiúscula, para o parâmetro col.

Anterior | Principal | Próxima
ocicolltrim | Acima | ocicolumnname


ocicolumnname

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnname -- Retorna o nome de uma coluna

Descrição

string ocicolumnname ( resource stmt, int col)

ocicolumnname() retorna o nome de uma coluna correspondente ao número de coluna passado em (1-based).

Exemplo 1. ocicolumnname() example

<?php
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    print "</TABLE>\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>

Veja também ocinumcols(),
ocicolumntype(),
e ocicolumnsize().

Anterior | Principal | Próxima
ocicolumnisnull | Acima | ocicolumnprecision


ocicolumnprecision

(PHP 4 , PHP 5)

ocicolumnprecision -- Diz a precisão de uma coluna

Descrição

int ocicolumnprecision ( resource stmt, int col)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicolumnname | Acima | ocicolumnscale


ocicolumnscale

(PHP 4 , PHP 5)

ocicolumnscale -- Diz a escala de uma coluna

Descrição

int ocicolumnscale ( resource stmt, int col)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicolumnprecision | Acima | ocicolumnsize


ocicolumnsize

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnsize -- Retorna o tamanho de uma coluna

Descrição

int ocicolumnsize ( resource stmt, mixed column)

ocicolumnsize() retorna o tamanho da coluna como dado pelo Oracle. Você pode usar o número de coluna (1-Based) ou o nome da coluna pelo parâmetro column.

Exemplo 1. ocicolumnsize() example

<?php
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    print "</TABLE>";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>

Veja também ocinumcols() e ocicolumnname().

Anterior | Principal | Próxima
ocicolumnscale | Acima | ocicolumntype


ocicolumntype

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumntype -- Retorna o tipo de dados de uma coluna

Descrição

mixed ocicolumntype ( resource stmt, int col)

ocicolumntype() retorna o tipo de dados de uma coluna correspondente ao número de coluna (1-based) que é passado nele.

Exemplo 1. ocicolumntype() example

<?php
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    print "</TABLE>\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>

Veja também ocinumcols(),
ocicolumnname(),
e ocicolumnsize().

Anterior | Principal | Próxima
ocicolumnsize | Acima | ocicolumntyperaw


ocicolumntyperaw

(PHP 4 , PHP 5)

ocicolumntyperaw -- Diz um tipo de dados indefinido de uma coluna Oracle

Descrição

mixed ocicolumntyperaw ( resource stmt, int col)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocicolumntype | Acima | ocicommit


ocicommit

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocicommit -- Valida uma transação pendente

Descrição

bool ocicommit ( resource connection)

ocicommit() valida todas as declarações pendentes para as transações ativas na conexão Oracle connection.

Esse exemplo demonstra como ocicommit() é usado.

Exemplo 1. ocicommit() example

<?php
    // Login to Oracle server
    $conn = OCILogon('scott', 'tiger');

    // Parse SQL
    $stmt = OCIParse($conn, "INSERT INTO employees (name, surname) VALUES ('Maxim', 'Maletsky')");

    // Execute statement
    OCIExecute($stmt);

    // Commit transaction
    $committed = OCICommit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if(!$committed) {
        $error = OCIError($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

    // Close connection
    OCILogoff($conn);
?>

Veja também ocirollback().

Anterior | Principal | Próxima
ocicolumntyperaw | Acima | ocidefinebyname


ocidefinebyname

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocidefinebyname -- Usa uma variável PHP para a definição de passos durante um SELECT

Descrição

bool ocidefinebyname ( resource stmt, string column_name, mixed &variable [, int type])

ocidefinebyname() passa variáveis PHP para colunas selecionadas de um SQL. Tome cuidado pois o Oracle usa todos os nomes de colunas em MAIÚSCULA, pelo qual no seu select você pode também escrever em minúscula. ocidefinebyname() espera que o column_name esteja em maiúscula. Se você definir uma variável que não existe em sua declaração select, nenhum erro será retornado!

Se você precisar definir um tipo de dado abstrato (LOB/ROWID/BFILE) você precisa alocar isso primeiro usando ocinewdescriptor(). Veja também a função ocibindbyname().

Exemplo 1. ocidefinebyname() example

<?php
/* OCIDefineByName example - thies at thieso dot net (980219) */

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select empno, ename from emp");

/* the define MUST be done BEFORE ociexecute! */

OCIDefineByName($stmt,"EMPNO",$empno);
OCIDefineByName($stmt,"ENAME",$ename);

OCIExecute($stmt);

while (OCIFetch($stmt)) {
    echo "empno:".$empno."\n";
    echo "ename:".$ename."\n";
}

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Anterior | Principal | Próxima
ocicommit | Acima | ocierror


ocierror

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocierror -- Retorna o último erro de stmt|conn|global

Descrição

array ocierror ( [resource stmt|conn|global])

ocierror() retorna o último erro encontrado. Se o parâmetro opcional stmt|conn|global não for fornecido, o último erro encontrado é retornado. Se nenhum erro for encontrado, ocierror() retorna FALSE. ocierror()retorna o erro como um array associativo. Nesse array, code consiste o código de erro Oracle e message a string de erro do Oracle.

Quando PHP 4.3: offset e sqltext irão também ser incluídos no array retornado para indicar a localização do erro e a string SQL que o causou.

Anterior | Principal | Próxima
ocidefinebyname | Acima | ociexecute


ociexecute

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociexecute -- Executa um bloco de comando

Descrição

bool ociexecute ( resource stmt [, int mode])

ociexecute() executa um bloco de comando previamente verificado. (veja ociparse()). O parâmetro opcional mode permite que você especifique o modo de execução (o padrão é OCI_COMMIT_ON_SUCCESS). Se você não quiser que seus blocos de comando sejam executados automaticamente especifique OCI_DEFAULT como seu modo.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ocierror | Acima | ocifetch


ocifetch

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocifetch -- Traz a próximo linha em um result-buffer

Descrição

bool ocifetch ( resource stmt)

ocifetch() traz a próxima linha (para uma declaração SELECT) em um result-buffer interno. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ociexecute | Acima | ocifetchinto


ocifetchinto

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocifetchinto -- Traz a poxima linha em um array

Descrição

int ocifetchinto ( resource stmt, array &result [, int mode])

ocifetchinto() traz a próxima linha (para uma declaração SELECT) no array result. ocifetchinto() irá sobreescrever o conteúdo prévio contido em result. Por padrão result irá conter um array zerado de todas as colunas que não são NULL.

O parâmetro mode permite você alterar o comportamento padrão. Você pode especificar mais do que uma flag simplesmente adicionando um sinal positivo (ex.: OCI_ASSOC+OCI_RETURN_NULLS). As flags conhecidas são:

OCI_ASSOC Retorna um array associativo.
OCI_NUM Retorna um array indexado iniciando em zero. (DEFAULT)
OCI_RETURN_NULLS Retorna colunas vazias.
OCI_RETURN_LOBS Retorna o valor de um LOB ao invés da descrição.

Exemplo 1. A simple ocifetchinto() example

<?php
$conn = ocilogon("username","password");

$query = "SELECT apples FROM oranges";

$statement = OCIParse ($conn, $query);
OCIExecute ($statement);

while (OCIFetchInto ($statement, $row, OCI_ASSOC)) {
    print $row['apples'];
}
?>

Veja também ocifetch() e ociexecute().

Anterior | Principal | Próxima
ocifetch | Acima | ocifetchstatement


ocifetchstatement

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocifetchstatement -- Traz todas as linhas de um tipo de dados em um array

Descrição

int ocifetchstatement ( resource stmt, array &output [, int skip [, int maxrows [, int flags]]])

ocifetchstatement() traz todas as linhas de um resultado em um array definido pelo usuário. ocifetchstatement() retorna o número de linhas trazidas. skip é o número de linhas iniciais ignoradas quando o resultado é trazido (valor padrão é de 0, até o início da primeira linha). maxrows é o número de linhas para ler, iniciando na linha skip (padrão é -1, percorrendo todas as linhas).

flags representa as opções disponíveis para, que pode ser uma das combinações a seguir :

OCI_FETCHSTATEMENT_BY_ROW
OCI_FETCHSTATEMENT_BY_COLUMN (valor padrão)
OCI_NUM
OCI_ASSOC

Exemplo 1. ocifetchstatement() example

<?php
/* OCIFetchStatement example mbritton at verinet dot com (990624) */

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select * from emp");

OCIExecute($stmt);

$nrows = OCIFetchStatement($stmt,$results);
if ( $nrows > 0 ) {
   print "<TABLE BORDER=\"1\">\n";
   print "<TR>\n";
   while ( list( $key, $val ) = each( $results ) ) {
      print "<TH>$key</TH>\n";
   }
   print "</TR>\n";

   for ( $i = 0; $i < $nrows; $i++ ) {
      reset($results);
      print "<TR>\n";
      while ( $column = each($results) ) {
         $data = $column['value'];
         print "<TD>$data[$i]</TD>\n";
      }
      print "</TR>\n";
   }
   print "</TABLE>\n";
} else {
   echo "No data found<BR>\n";
}
print "$nrows Records Selected<BR>\n";

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Anterior | Principal | Próxima
ocifetchinto | Acima | ocifreecollection


ocifreecollection

(PHP 4 >= 4.1.0, PHP 5)

ocifreecollection -- Deleta uma coleção de objeto

Descrição

bool ocifreecollection ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocifetchstatement | Acima | ocifreecursor


ocifreecursor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocifreecursor -- Libera todos os recursos associados à um cursor

Descrição

bool ocifreecursor ( resource stmt)

ocifreecursor() libera todos os recursos associados ao cursor stmt. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ocifreecollection | Acima | ocifreedesc


ocifreedesc

(PHP 4 , PHP 5)

ocifreedesc -- Deleta um grande objeto de descrição

Descrição

bool ocifreedesc ( void )

ocifreedesc() deleta um grande objeto de descrição. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ocifreecursor | Acima | ocifreestatement


ocifreestatement

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

ocifreestatement -- Libera todos os recursos associados à uma declaração

Descrição

bool ocifreestatement ( resource stmt)

ocifreestatement() libera todos os recursos associados à uma declaração stmt. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ocifreedesc | Acima | lob->getBuffering


lob->getBuffering

(no version information, might be only in CVS)

lob->getBuffering -- Returns current state of buffering for large object

Description

bool lob->getBuffering ( void )

Returns FALSE if buffering for the large object is off and TRUE if buffering is used.

See also ocisetbufferinglob().

Anterior | Principal | Próxima
ocifreestatement | Acima | ociinternaldebug


ociinternaldebug

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociinternaldebug -- Habilita ou desabilita o sistema interno de debug

Descrição

void ociinternaldebug ( int onoff)

ociinternaldebug() habilita saída interna de debug. Seta onoff como 0 para colocar o debug como off, 1 para colocá-lo como on.

Anterior | Principal | Próxima
lob->getBuffering | Acima | ociloadlob


ociloadlob

(PHP 4 , PHP 5)

ociloadlob -- Carrega um objeto grande

Descrição

string ociloadlob ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ociinternaldebug | Acima | ocilogoff


ocilogoff

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogoff -- Disconecta de um servidor Oracle

Descrição

bool ocilogoff ( resource connection)

ocilogoff() fecha uma conexão Oracle connection.

Usando ocilogoff() não é usualmente necessário, quando conexões não persistentes esao abertas são automaticamente fechadas no final da execução de um script. Veja também freeing resources.

Anterior | Principal | Próxima
ociloadlob | Acima | ocilogon


ocilogon

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogon -- Estabiliza uma conexão com o Oracle

Descrição

resource ocilogon ( string username, string password [, string db])

ocilogon() retorna um identificador de conexão necessária para a grande maioria das outras funções OCI. O terceiro parâmetro opcional pode conter cada nome local de uma instância Oracle ou o nome colocado no arquivo tnsnames.ora para cada qual onde você queira conectar. Se o terceiro parâmetro não for especificado, PHP usará o nome definido na variável ORACLE_SID (instância Oracle) ou TWO_TASK (tnsnames.ora) para determinar em qual database ele irá conectar.

Conexões são compartilhadas por nível de página quando usando ocilogon(). Isto significa que commits e rollbacks serão aplicados para todas as transações abertas na página, sempre que você tiver que criado múltiplas conexões.

Esse exemplo demonstra como conexões são compartilhadas.

Exemplo 1. ocilogon() example

<?php
print "<PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocilogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." committed\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." [".ociresult($stmt,"TEST")."]\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
print "</PRE>";
?>

Veja também ociplogon() e ocinlogon().

Anterior | Principal | Próxima
ocilogoff | Acima | ocinewcollection


ocinewcollection

(PHP 4 >= 4.0.6, PHP 5)

ocinewcollection -- Inicializa uma nova coleção

Descrição

object ocinewcollection ( resource connection, string tdo [, string schema])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocilogon | Acima | ocinewcursor


ocinewcursor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocinewcursor -- Retorna um novo cursor (Statement-Handle)

Descrição

resource ocinewcursor ( resource conn)

ocinewcursor() destina uma nova manipulação de declaração na conexão especificada.

Exemplo 1. Usando um REF CURSOR para stored procedure no Oracle

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = OCILogon("scott","tiger");
$curs = OCINewCursor($conn);
$stmt = OCIParse($conn,"begin info.output(:data); end;");

ocibindbyname($stmt,"data",&$curs,-1,OCI_B_CURSOR);
ociexecute($stmt);
ociexecute($curs);

while (OCIFetchInto($curs,&$data)) {
    var_dump($data);
}

OCIFreeStatement($stmt);
OCIFreeCursor($curs);
OCILogoff($conn);
?>

Exemplo 2. Usando um REF CURSOR em um comando select no Oracle

<?php
print "<HTML><BODY>";
$conn = OCILogon("scott","tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = OCIParse($conn,"select deptno,dname,$count_cursor");

ociexecute($stmt);
print "<TABLE BORDER=\"1\">";
print "<TR>";
print "<TH>DEPT NAME</TH>";
print "<TH>DEPT #</TH>";
print "<TH># EMPLOYEES</TH>";
print "</TR>";

while (OCIFetchInto($stmt,&$data,OCI_ASSOC)) {
    print "<TR>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    print "<TD>$dname</TD>";
    print "<TD>$deptno</TD>";
    ociexecute($data["EMPCNT"]);
    while (OCIFetchInto($data["EMPCNT"],&$subdata,OCI_ASSOC)) {
        $num_emps = $subdata["NUM_EMPS"];
        print  "<TD>$num_emps</TD>";
    }
    print "</TR>";
}
print "</TABLE>";
print "</BODY></HTML>";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Anterior | Principal | Próxima
ocinewcollection | Acima | ocinewdescriptor


ocinewdescriptor

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocinewdescriptor -- Inicializa um novo descritor LOB ou FILE vazios

Descrição

object ocinewdescriptor ( resource connection [, int type])

ocinewdescriptor() destina armazenagem para segurar descritores ou LOB localizador. Valores válidos para type são OCI_D_FILE, OCI_D_LOB and OCI_D_ROWID. Para LOB descritores, os métodos para carregar, salvar, e salvar arquivo são associados com o descritor, para BFILE somente o método de carregamento existe. Veja o segundo exemplo usando hints.

Exemplo 1. ocinewdescriptor() example

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = OCILogon($user, $password);
    $stmt = OCIParse($conn,"select rowid from $table $where");
    $rowid = OCINewDescriptor($conn,OCI_D_ROWID);
    OCIDefineByName($stmt,"ROWID",&$rowid);
    OCIExecute($stmt);
    while ( OCIFetch($stmt) ) {
       $nrows = OCIRowCount($stmt);
       $delete = OCIParse($conn,"delete from $table where ROWID = :rid");
       OCIBindByName($delete,":rid",&$rowid,-1,OCI_B_ROWID);
       OCIExecute($delete);
       print "$nrows\n";
       if ( ($nrows % $commitsize) == 0 ) {
           OCICommit($conn);
       }
    }
    $nrows = OCIRowCount($stmt);
    print "$nrows deleted...\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php" method="POST" enctype="multipart/form-data">
     * <input type="file" name="lob_upload">
     * ...
     */
  if(!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="POST" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload"><br>
<input type="submit" value="Upload"> - <input type="reset">
</form>
<?php
  } else {

     // $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads

     $conn = OCILogon($user, $password);
     $lob = OCINewDescriptor($conn, OCI_D_LOB);
     $stmt = OCIParse($conn,"insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     OCIBindByName($stmt, ':the_blob', &$lob, -1, OCI_B_BLOB);
     OCIExecute($stmt, OCI_DEFAULT);
     if($lob->savefile($lob_upload)){
        OCICommit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     OCIFreeDesc($lob);
     OCIFreeStatement($stmt);
     OCILogoff($conn);
  }
?>

Exemplo 2. ocinewdescriptor() second example

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    $conn = OCILogon($user, $password);
    $stmt = OCIParse($conn, "begin save_data(:key, :data); end;");
    $clob = OCINewDescriptor($conn, OCI_D_LOB);
    OCIBindByName($stmt, ':key', $key);
    OCIBindByName($stmt, ':data', $clob, -1, OCI_B_CLOB);
    $clob->WriteTemporary($data);
    OCIExecute($stmt, OCI_DEFAULT);
    OCICommit($conn);
    $clob->close();
    $clob->free();
    OCIFreeStatement($stmt);
?>

Anterior | Principal | Próxima
ocinewcursor | Acima | ocinlogon


ocinlogon

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocinlogon -- Estabiliza uma nova conexão com o Oracle

Descrição

resource ocinlogon ( string username, string password [, string db])

ocinlogon() cria uma nova conexão com um Banco de Dados Oracle 8 e loga isso. O terceiro parâmetro opcional pode conter cada nome de um instância Oracle local ou o nome colocado no arquivo tnsnames.ora para o qual você queira conectar. Se o terceiro parâmetro não for especificado, PHP usará a variável de ambiente ORACLE_SID (instância Oracle) ou TWO_TASK (tnsnames.ora) para determinar em qual database irá conectar.

ocinlogon() força uma nova conexão. Isso deve ser usado se você precisar isolar algumas transações. Por padrão, conexões são compartilhadas por página se usando ocilogon() ou em um processo do servidor web Se usando ociplogon(). Se você tem múltiplas conexões abertas usando ocinlogon(), todos os commits e rollbacks serão aplicados especificamente para uma conexão somente.

Este exemplo demonstra como fazer conexões separadamente.

Exemplo 1. ocinlogon() example

<?php
print "<HTML><PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocinlogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test
varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." committed\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
print "</PRE></HTML>";
?>

Veja também ocilogon() e ociplogon().

Anterior | Principal | Próxima
ocinewdescriptor | Acima | ocinumcols


ocinumcols

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocinumcols -- Retorna o número de colunas encontradas em uma instrução

Descrição

int ocinumcols ( resource stmt)

ocinumcols() retorna o número de colunas em uma declaração stmt.

Exemplo 1. ocinumcols() example

<?php
    print "<PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    while ( OCIFetch($stmt) ) {
        print "\n";
        $ncols = OCINumCols($stmt);
        for ( $i = 1; $i <= $ncols; $i++ ) {
            $column_name  = OCIColumnName($stmt,$i);
            $column_value = OCIResult($stmt,$i);
            print $column_name . ': ' . $column_value . "\n";
        }
        print "\n";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
?>

Anterior | Principal | Próxima
ocinlogon | Acima | ociparse


ociparse

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociparse -- Interpreta uma query e retorna uma declaração Oracle

Descrição

resource ociparse ( resource conn, string query)

ociparse() interpreta a query query usando conn. Identifica se a declaração retornada na query é válida, FALSE ou não. O parâmetro query pode ser algum comando SQL válido ou uma declaração ou ainda um bloco PL/SQL.

Anterior | Principal | Próxima
ocinumcols | Acima | ociplogon


ociplogon

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ociplogon -- Conecta no Oracle usando uma conexão persistente

Descrição

resource ociplogon ( string username, string password [, string db])

ociplogon() cria uma conexão persistente com um Banco de Dados Oracle 8 e loga isso. O terceiro parâmetro opcional pode conter cada nome de uma instância Oracle local ou o nome colocado no arquivo tnsnames.ora para cada qual você queira conectar. Se o terceiro parâmetro não for especificado, PHP usará a variável de ambiente ORACLE_SID (instância Oracle) ou TWO_TASK (tnsnames.ora) para determinar em qual database irá conectar.

Veja também ocilogon() e ocinlogon().

Anterior | Principal | Próxima
ociparse | Acima | ociresult


ociresult

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociresult -- Retorna valores de colunas trazidas por uma linha

Descrição

mixed ociresult ( resource statement, mixed col)

ociresult() retorna o tipo de dados de uma coluna column na linha atual (veja ocifetch()). ociresult() irá retornar tudo com exceção de strings de tipo abstrato (ROWIDs, LOBs e FILEs).

Você pode usar o número de coluna (1-Based) ou o nome da coluna, em maiúscula, para o parâmetro col.

Anterior | Principal | Próxima
ociplogon | Acima | ocirollback


ocirollback

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocirollback -- Volta uma transação

Descrição

bool ocirollback ( resource connection)

ocirollback() retorna todas os blocos de comando pendentes em uma conexão Oracle connection. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ocicommit().

Anterior | Principal | Próxima
ociresult | Acima | ocirowcount


ocirowcount

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocirowcount -- Retorna o número de linhas afetadas

Descrição

int ocirowcount ( resource stmt)

ocirowcount() retorna o número de linhas afetadas por exemplo em um update. Essa função não irá dizer o número de linhas que um select irá retornar!

Exemplo 1. ocirowcount() example

<?php
    print "<PRE>";
    $conn = OCILogon("scott","tiger");
    $stmt = OCIParse($conn,"create table emp2 as select * from emp");
    OCIExecute($stmt);
    print OCIRowCount($stmt) . " rows inserted.<BR>";
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn,"delete from emp2");
    OCIExecute($stmt);
    print OCIRowCount($stmt) . " rows deleted.<BR>";
    OCICommit($conn);
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn,"drop table emp2");
    OCIExecute($stmt);
    OCIFreeStatement($stmt);
    OCILogOff($conn);
    print "</PRE>";
?>

Anterior | Principal | Próxima
ocirollback | Acima | ocisavelob


ocisavelob

(PHP 4 , PHP 5)

ocisavelob -- Salva o alargamento do objeto

Descrição

bool ocisavelob ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocirowcount | Acima | ocisavelobfile


ocisavelobfile

(PHP 4 , PHP 5)

ocisavelobfile -- Salva o alargamento de objeto para um arquivo

Descrição

bool ocisavelobfile ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocisavelob | Acima | ociserverversion


ociserverversion

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociserverversion -- Retorna uma string contendo informações da versão do servidor

Descrição

string ociserverversion ( resource conn)

Exemplo 1. ociserverversion() example

<?php
   $conn = OCILogon("scott","tiger");
   print "Server Version: " . OCIServerVersion($conn);
   OCILogOff($conn);
?>

Anterior | Principal | Próxima
ocisavelobfile | Acima | lob->setBuffering


lob->setBuffering

(no version information, might be only in CVS)

lob->setBuffering -- Changes current state of buffering for large object

Description

bool lob->setBuffering ( bool on_off)

lob->setBuffering() sets the buffering for the large object, depending on the value of the on_off parameter. Repeated calls to lob->setBuffering() with the same flag will return TRUE. The values for on_off are: TRUE for on and FALSE for off.

Use of this function may provide perfomance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. oci_lob_flush() should be used to flush buffers, when you have finished working with the large object.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also ocigetbufferinglob().

Anterior | Principal | Próxima
ociserverversion | Acima | ocisetprefetch


ocisetprefetch

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ocisetprefetch -- Seta o número de linhas a serem trazidas

Descrição

bool ocisetprefetch ( resource stmt, int rows)

Seta o número de nível de linhas a serem trazidas para rows. O valor padrão para rows é 1 linha.

Anterior | Principal | Próxima
lob->setBuffering | Acima | ocistatementtype


ocistatementtype

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

ocistatementtype -- Retorna o tipo de uma declaração OCI

Descrição

string ocistatementtype ( resource stmt)

Sets ocistatementtype() retorna um dos seguintes valores:

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. UNKNOWN

Exemplo 1. ocistatementtype() examples

<?php
    print "<PRE>";
    $conn = OCILogon("scott","tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = OCIParse($conn,$sql);
    if ( OCIStatementType($stmt) == "DELETE" ) {
        die "You are not allowed to delete from this table<BR>";
    }

    OCILogoff($conn);
    print "</PRE>";
?>

Anterior | Principal | Próxima
ocisetprefetch | Acima | ociwritelobtofile


ociwritelobtofile

(PHP 4 , PHP 5)

ociwritelobtofile -- Salva um grande objeto para arquivo

Descrição

bool ociwritelobtofile ( [string filename [, int start [, int length]]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ocistatementtype | Acima | ociwritetemporarylob


ociwritetemporarylob

(no version information, might be only in CVS)

ociwritetemporarylob -- Escreve um blob temporário

Descrição

bool ociwritetemporarylob ( string var [, int lob_type])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ociwritelobtofile | Acima | OpenSSL Functions


OpenSSL Functions

Manual do PHP
Anterior Próxima

LXXV. OpenSSL Functions

Introdução

This module uses the functions of OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. OpenSSL offers many features that this module currently doesn't support. Some of these may be added in the future.

Requisitos

In order to use the OpenSSL functions you need to install the OpenSSL package. PHP-4.0.4pl1 requires OpenSSL >= 0.9.6, but PHP-4.0.5 and greater will also work with OpenSSL >= 0.9.5.

Instalação

To use PHP's OpenSSL support you must also compile PHP --with-openssl[=DIR].

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy libeay32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid openssl.cnf on your system. As of PHP 4.3.0, we include a sample configuration file in the openssl folder of our win32 binary distribution. If you are using PHP 4.2.0 or later and are missing the file, you can obtain it from the OpenSSL home page or by downloading the PHP 4.3.0 release and using the configuration file from there.

Note to Win32 Users: PHP will search for the openssl.cnf using the following logic:

  • the OPENSSL_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.

  • the SSLEAY_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.

  • The file openssl.cnf will be assumed to be found in the default certificate area, as configured at the time that the openssl DLL was compiled. This is usually means that the default filename is c:\usr\local\ssl\openssl.cnf.

In your installation, you need to decide whether to install the configuration file at c:\usr\local\ssl\openssl.cnf or whether to install it someplace else and use environmental variables (possibly on a per-virtual-host basis) to locate the configuration file. Note that it is possible to override the default path from the script using the configargs of the functions that require a configuration file.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Key/Certificate parameters

Quite a few of the openssl functions require a key or a certificate parameter. PHP 4.0.5 and earlier have to use a key or certificate resource returned by one of the openssl_get_xxx functions. Later versions may use one of the following methods:

  • Certificates

    1. An X.509 resource returned from openssl_x509_read()

    2. A string having the format file://path/to/cert.pem; the named file must contain a PEM encoded certificate

    3. A string containing the content of a certificate, PEM encoded

  • Public/Private Keys

    1. A key resource returned from openssl_get_publickey() or openssl_get_privatekey()

    2. For public keys only: an X.509 resource

    3. A string having the format file://path/to/file.pem - the named file must contain a PEM encoded certificate/private key (it may contain both)

    4. A string containing the content of a certificate/key, PEM encoded

    5. For private keys, you may also use the syntax array($key, $passphrase) where $key represents a key specified using the file:// or textual content notation above, and $passphrase represents a string containing the passphrase for that private key

Certificate Verification

When calling a function that will verify a signature/certificate, the cainfo parameter is an array containing file and directory names that specify the locations of trusted CA files. If a directory is specified, then it must be a correctly formed hashed directory as the openssl command would use.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Purpose checking flags

X509_PURPOSE_SSL_CLIENT (integer)

X509_PURPOSE_SSL_SERVER (integer)

X509_PURPOSE_NS_SSL_SERVER (integer)

X509_PURPOSE_SMIME_SIGN (integer)

X509_PURPOSE_SMIME_ENCRYPT (integer)

X509_PURPOSE_CRL_SIGN (integer)

X509_PURPOSE_ANY (integer)

Padding flags

OPENSSL_PKCS1_PADDING (integer)

OPENSSL_SSLV23_PADDING (integer)

OPENSSL_NO_PADDING (integer)

OPENSSL_PKCS1_OAEP_PADDING (integer)

Key types

OPENSSL_KEYTYPE_RSA (integer)

OPENSSL_KEYTYPE_DSA (integer)

OPENSSL_KEYTYPE_DH (integer)

PKCS7 Flags/Constants

The S/MIME functions make use of flags which are specified using a bitfield which can include one or more of the following values:

Tabela 1. PKCS7 CONSTANTS

Constant | Description
PKCS7_TEXT | Adds text/plain content type headers to encrypted/signed message. If decrypting or verifying, it strips those headers from the output - if the decrypted or verified message is not of MIME type text/plain then an error will occur.
PKCS7_BINARY | Normally the input message is converted to "canonical" format which is effectively using CR and LF as end of line: as required by the S/MIME specification. When this options is present, no translation occurs. This is useful when handling binary data which may not be in MIME format.
PKCS7_NOINTERN | When verifying a message, certificates (if any) included in the message are normally searched for the signing certificate. With this option only the certificates specified in the extracerts parameter of openssl_pkcs7_verify() are used. The supplied certificates can still be used as untrusted CAs however.
PKCS7_NOVERIFY | Do not verify the signers certificate of a signed message.
PKCS7_NOCHAIN | Do not chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs.
PKCS7_NOCERTS | When signing a message the signer's certificate is normally included - with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the extracerts to openssl_pkcs7_verify() for example).
PKCS7_NOATTR | Normally when a message is signed, a set of attributes are included which include the signing time and the supported symmetric algorithms. With this option they are not included.
PKCS7_DETACHED | When signing a message, use cleartext signing with the MIME type multipart/signed. This is the default if you do not specify any flags to openssl_pkcs7_sign(). If you turn this option off, the message will be signed using opaque signing, which is more resistant to translation by mail relays but cannot be read by mail agents that do not support S/MIME.
PKCS7_NOSIGS | Don't try and verify the signatures on a message

Nota: These constants were added in 4.0.6.

Índice
openssl_csr_export_to_file -- Exports a CSR to a file
openssl_csr_export -- Exports a CSR as a string
openssl_csr_new -- Generates a CSR
openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate
openssl_error_string -- Return openSSL error message
openssl_free_key -- Free key resource
openssl_get_privatekey -- Get a private key
openssl_get_publickey -- Extract public key from certificate and prepare it for use
openssl_open -- Open sealed data
openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message
openssl_pkcs7_encrypt -- Encrypt an S/MIME message
openssl_pkcs7_sign -- sign an S/MIME message
openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message
openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file
openssl_pkey_export -- Gets an exportable representation of a key into a string
openssl_pkey_get_private -- Get a private key
openssl_pkey_get_public -- Extract public key from certificate and prepare it for use
openssl_pkey_new -- Generates a new private key
openssl_private_decrypt -- Decrypts data with private key
openssl_private_encrypt -- Encrypts data with private key
openssl_public_decrypt -- Decrypts data with public key
openssl_public_encrypt -- Encrypts data with public key
openssl_seal -- Seal (encrypt) data
openssl_sign -- Generate signature
openssl_verify -- Verify signature
openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate
openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose
openssl_x509_export_to_file -- Exports a certificate to file
openssl_x509_export -- Exports a certificate as a string
openssl_x509_free -- Free certificate resource
openssl_x509_parse -- Parse an X509 certificate and return the information as an array
openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Anterior | Principal | Próxima
ociwritetemporarylob | Acima | openssl_csr_export_to_file


openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_file -- Exports a CSR to a file

Description

bool openssl_csr_export_to_file ( resource csr, string outfilename [, bool notext])

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it as ascii-armoured text into the file named by outfilename.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also openssl_csr_export(),
openssl_csr_new() and
openssl_csr_sign().

Anterior | Principal | Próxima
OpenSSL Functions | Acima | openssl_csr_export


openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export -- Exports a CSR as a string

Description

bool openssl_csr_export ( resource csr, string &out [, bool notext])

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it as ascii-armoured text into out, which is passed by reference.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also openssl_csr_export_to_file(),
openssl_csr_new() and
openssl_csr_sign().

Anterior | Principal | Próxima
openssl_csr_export_to_file | Acima | openssl_csr_new


openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_new -- Generates a CSR

Description

bool openssl_csr_new ( array dn, resource privkey [, array configargs [, array extraattribs]])

openssl_csr_new() generates a new CSR (Certificate Signing Request) based on the information provided by dn, which represents the Distinguished Name to be used in the certificate.

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

extraattribs is used to specify additional configuration options for the CSR. Both dn and extraattribs are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

By default, the information in your system openssl.conf is used to initialize the request; you can specify a configuration file section by setting the config_section_section key of configargs. You can also specify an alternative openssl configuration file by setting the value of the config key to the path of the file you want to use. The following keys, if present in configargs behave as their equivalents in the openssl.conf, as listed in the table below.

Tabela 1. Configuration overrides

configargs key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Selects which digest method to use
x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509 certificate
req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR
private_key_bits | string | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | integer | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH or OPENSSL_KEYTYPE_RSA. The default value is OPENSSL_KEYTYPE_RSA which is currently the only supported key type.
encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted?

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. openssl_csr_new() example - creating a self-signed-certificate

<?php
// Fill in data for the distinguished name to be used in the cert
// You must change the values of these keys to match your name and
// company, or more precisely, the name and company of the person/site
// that you are generating the certificate for.
// For SSL certificates, the commonName is usually the domain name of
// that will be using the certificate, but for S/MIME certificates,
// the commonName will be the name of the individual who will use the
// certificate.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey);

// You will usually want to create a self-signed certificate at this
// point until your CA fulfills your request.
// This creates a self-signed cert that is valid for 365 days
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Now you will want to preserve your private key, CSR and self-signed
// cert so that they can be installed into your web server, mail server
// or mail client (depending on the intended use of the certificate).
// This example shows how to get those things into variables, but you
// can also store them directly into files.
// Typically, you will send the CSR on to your CA who will then issue
// you with the "real" certificate.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Anterior | Principal | Próxima
openssl_csr_export | Acima | openssl_csr_sign


openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate

Description

resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]])

openssl_csr_sign() generates an x509 certificate resource from the csr previously generated by openssl_csr_new(), but it can also be the path to a PEM encoded CSR when specified as file://path/to/csr or an exported string generated by openssl_csr_export(). The generated certificate will be signed by cacert. If cacert is NULL, the generated certificate will be a self-signed certificate. priv_key is the private key that corresponds to cacert. days specifies the length of time for which the generated certificate will be valid, in days. You can finetune the CSR signing by configargs. See openssl_csr_new() for more information about configargs. Since PHP 4.3.3 you can specify the serial number of issued certificate by serial. In earlier versions, it was always 0.

Returns an x509 certificate resource on success, FALSE on failure.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Exemplo 1. openssl_csr_sign() example - signing a CSR (how to implement your own CA)

<?php
// Let's assume that this script is set to receive a CSR that has
// been pasted into a textarea from another page
$csrdata = $_POST["CSR"];

// We will sign the request using our own "certificate authority"
// certificate.  You can use any certificate to sign another, but
// the process is worthless unless the signing certificate is trusted
// by the software/users that will deal with the newly signed certificate

// We need our CA cert and its private key
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Now display the generated certificate so that the user can
// copy and paste it into their local configuration (such as a file
// to hold the certificate for their SSL server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Anterior | Principal | Próxima
openssl_csr_new | Acima | openssl_error_string


openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_string -- Return openSSL error message

Description

mixed openssl_error_string ( void )

Returns an error message string, or FALSE if there are no more error messages to return.

openssl_error_string() returns the last error from the openSSL library. Error messages are stacked, so this function should be called multiple times to collect all of the information.

Exemplo 1. openssl_error_string() example

<?php
// lets assume you just called an openssl function that failed
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>

Anterior | Principal | Próxima
openssl_csr_sign | Acima | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_key -- Free key resource

Description

void openssl_free_key ( resource key_identifier)

openssl_free_key() frees the key associated with the specified key_identifier from memory.

Anterior | Principal | Próxima
openssl_error_string | Acima | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekey -- Get a private key

Description

resource openssl_get_privatekey ( mixed key [, string passphrase])

This is an alias for openssl_pkey_get_private().

Anterior | Principal | Próxima
openssl_free_key | Acima | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickey -- Extract public key from certificate and prepare it for use

Description

resource openssl_get_publickey ( mixed certificate)

This is an alias for openssl_pkey_get_public().

Anterior | Principal | Próxima
openssl_get_privatekey | Acima | openssl_open


openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_open -- Open sealed data

Description

bool openssl_open ( string sealed_data, string &open_data, string env_key, mixed priv_key_id)

Retorna TRUE em caso de sucesso ou FALSE em falhas. If successful the opened data is returned in open_data.

openssl_open() opens (decrypts) sealed_data using the private key associated with the key identifier priv_key_id and the envelope key env_key, and fills open_data with the decrypted data. The envelope key is generated when the data are sealed and can only be used by one specific private key. See openssl_seal() for more information.

Exemplo 1. openssl_open() example

<?php
// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "here is the opened data: ", $open;
} else {
    echo "failed to open data";
}

// free the private key from memory
openssl_free_key($pkeyid);
?>

See also openssl_seal().

Anterior | Principal | Próxima
openssl_get_publickey | Acima | openssl_pkcs7_decrypt


openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message

Description

bool openssl_pkcs7_decrypt ( string infilename, string outfilename, mixed recipcert [, mixed recipkey])

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and its associated private key specified by recipcert and recipkey.

The decrypted message is output to the file specified by outfilename

Exemplo 1. openssl_pkcs7_decrypt() example

<?php
// $cert and $key are assumed to contain your personal certificate and private
// key pair, and that you are the recipient of an S/MIME message
$infilename = "encrypted.msg";  // this file holds your encrypted message
$outfilename = "decrypted.msg"; // make sure you can write to this file

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "decrypted!";
} else {
    echo "failed to decrypt!";
}
?>

Anterior | Principal | Próxima
openssl_open | Acima | openssl_pkcs7_encrypt


openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Encrypt an S/MIME message

Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags])

openssl_pkcs7_encrypt() takes the contents of the file named infile and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by recipcerts, which is either a lone X.509 certificate, or an array of X.509 certificates. headers is an array of headers that will be prepended to the data after it has been encrypted. flags can be used to specify options that affect the encoding process - see PKCS7 constants. headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

Exemplo 1. openssl_pkcs7_encrypt() example

<?php
// the message you want to encrypt and send to your secret agent
// in the field, known as nighthawk.  You have his certificate
// in the file nighthawk.pem
$data = <<<EOD
Nighthawk,

Top secret, for your eyes only!

The enemy is closing in! Meet me at the cafe at 8.30am
to collect your forged passport!

HQ
EOD;

// load key
$key = file_get_contents("nighthawk.pem");

// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// encrypt it
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Eyes only"))) {
    // message encrypted - send it!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

Anterior | Principal | Próxima
openssl_pkcs7_decrypt | Acima | openssl_pkcs7_sign


openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign -- sign an S/MIME message

Description

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, int flags [, string extracerts]])

openssl_pkcs7_sign() takes the contents of the file named infilename and signs them using the certificate and its matching private key specified by signcert and privkey parameters.

headers is an array of headers that will be prepended to the data after it has been signed (see openssl_pkcs7_encrypt() for more information about the format of this parameter.

flags can be used to alter the output - see PKCS7 constants - if not specified, it defaults to PKCS7_DETACHED.

extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.

Exemplo 1. openssl_pkcs7_sign() example

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From" => "HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

Anterior | Principal | Próxima
openssl_pkcs7_encrypt | Acima | openssl_pkcs7_verify


openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message

Description

bool openssl_pkcs7_verify ( string filename, int flags [, string outfilename [, array cainfo [, string extracerts]]])

openssl_pkcs7_verify() reads the S/MIME message contained in the filename specified by filename and examines the digital signature. It returns TRUE if the signature is verified, FALSE if it is not correct (the message has been tampered with, or the signing certificate is invalid), or -1 on error.

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

If the outfilename is specified, it should be a string holding the name of a file into which the certificates of the persons that signed the messages will be stored in PEM format.

If the cainfo is specified, it should hold information about the trusted CA certificates to use in the verification process - see certificate verification for more information about this parameter.

If the extracerts is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

Anterior | Principal | Próxima
openssl_pkcs7_sign | Acima | openssl_pkey_export_to_file


openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file

Description

bool openssl_pkey_export_to_file ( mixed key, string outfilename [, string passphrase [, array configargs]])

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by outfilename. The key can be optionally protected by a passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Anterior | Principal | Próxima
openssl_pkcs7_verify | Acima | openssl_pkey_export


openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export -- Gets an exportable representation of a key into a string

Description

bool openssl_pkey_export ( mixed key, string &out [, string passphrase [, array configargs]])

openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference). The key is optionally protected by passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Anterior | Principal | Próxima
openssl_pkey_export_to_file | Acima | openssl_pkey_get_private


openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_private -- Get a private key

Description

resource openssl_get_privatekey ( mixed key [, string passphrase])

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_privatekey() parses key and prepares it for use by other functions. key can be one of the following:

  1. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  2. A PEM formatted private key.

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Anterior | Principal | Próxima
openssl_pkey_export | Acima | openssl_pkey_get_public


openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_public -- Extract public key from certificate and prepare it for use

Description

resource openssl_pkey_get_public ( mixed certificate)

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_publickey() extracts the public key from certificate and prepares it for use by other functions. certificate can be one of the following:

  1. an X.509 certificate resource

  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  3. A PEM formatted private key.

Anterior | Principal | Próxima
openssl_pkey_get_private | Acima | openssl_pkey_new


openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_new -- Generates a new private key

Description

resource openssl_pkey_new ( [array configargs])

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public(). You can finetune the key generation (such as specifying the number of bits) using configargs. See openssl_csr_new() for more information about configargs.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Anterior | Principal | Próxima
openssl_pkey_get_public | Acima | openssl_private_decrypt


openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt -- Decrypts data with private key

Description

bool openssl_private_decrypt ( string data, string &decrypted, mixed key [, int padding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

openssl_private_decrypt() decrypts data that was previous encrypted via openssl_public_encrypt() and stores the result into decrypted. key must be the private key corresponding that was used to encrypt the data. padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

You can use this function e.g. to decrypt data which were supposed only to you.

See also openssl_public_encrypt() and openssl_public_decrypt().

Anterior | Principal | Próxima
openssl_pkey_new | Acima | openssl_private_encrypt


openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encrypt -- Encrypts data with private key

Description

bool openssl_private_encrypt ( string data, string &crypted, mixed key [, int padding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

openssl_private_encrypt() encrypts data with private key and stores the result into crypted. Encrypted data can be decrypted via openssl_public_decrypt. padding defaults to OPENSSL_PKCS1_PADDING, but can also be OPENSSL_NO_PADDING.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function can be used e.g. to sign data (or its hash) to prove that it is not written by someone else.

See also openssl_public_decrypt() and openssl_public_encrypt().

Anterior | Principal | Próxima
openssl_private_decrypt | Acima | openssl_public_decrypt


openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decrypt -- Decrypts data with public key

Description

bool openssl_public_decrypt ( string data, string &decrypted, mixed key [, int padding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

openssl_public_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted. key must be the public key corresponding that was used to encrypt the data. padding defaults to OPENSSL_PKCS1_PADDING, but can also be OPENSSL_NO_PADDING.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

You can use this function e.g. to check if the message was written by the owner of the private key.

See also openssl_private_encrypt() and openssl_private_decrypt().

Anterior | Principal | Próxima
openssl_private_encrypt | Acima | openssl_public_encrypt


openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encrypt -- Encrypts data with public key

Description

bool openssl_public_encrypt ( string data, string &crypted, mixed key [, int padding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

openssl_public_encrypt() encrypts data with public key and stores the result into crypted. Encrypted data can be decrypted via openssl_private_decrypt. padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function can be used e.g. to encrypt message which can be then read only by owner of the private key. It can be also used to store secure data in database.

See also openssl_private_decrypt() and openssl_private_encrypt().

Anterior | Principal | Próxima
openssl_public_decrypt | Acima | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_seal -- Seal (encrypt) data

Description

int openssl_seal ( string data, string &sealed_data, array &env_keys, array pub_key_ids)

Returns the length of the sealed data on success, or FALSE on error. If successful the sealed data is returned in sealed_data, and the envelope keys in env_keys.

openssl_seal() seals (encrypts) data by using RC4 with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in pub_key_ids and each encrypted key is returned in env_keys. This means that one can send sealed data to multiple recipients (provided one has obtained their public keys). Each recipient must receive both the sealed data and the envelope key that was encrypted with the recipient's public key.

Exemplo 1. openssl_seal() example

<?php
// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Repeat for second recipient
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

See also openssl_open().

Anterior | Principal | Próxima
openssl_public_encrypt | Acima | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_sign -- Generate signature

Description

bool openssl_sign ( string data, string signature, mixed priv_key_id)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Retorna TRUE em caso de sucesso ou FALSE em falhas. If successful the signature is returned in signature.

openssl_sign() computes a signature for the specified data by using SHA1 for hashing followed by encryption using the private key associated with priv_key_id. Note that the data itself is not encrypted.

Exemplo 1. openssl_sign() example

<?php
// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);
?>

See also openssl_verify().

Anterior | Principal | Próxima
openssl_seal | Acima | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify -- Verify signature

Description

int openssl_verify ( string data, string signature, mixed pub_key_id)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id. This must be the public key corresponding to the private key used for signing.

Exemplo 1. openssl_verify() example

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "good";
} elseif ($ok == 0) {
    echo "bad";
} else {
    echo "ugly, error checking signature";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>

See also openssl_sign().

Anterior | Principal | Próxima
openssl_sign | Acima | openssl_x509_check_private_key


openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate

Description

bool openssl_x509_check_private_key ( mixed cert, mixed key)

openssl_x509_check_private_key() returns TRUE if key is the private key that corresponds to cert, or FALSE otherwise.

Anterior | Principal | Próxima
openssl_verify | Acima | openssl_x509_checkpurpose


openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose

Description

bool openssl_x509_checkpurpose ( mixed x509cert, int purpose, array cainfo [, string untrustedfile])

Returns TRUE if the certificate can be used for the intended purpose, FALSE if it cannot, or -1 on error.

openssl_x509_checkpurpose() examines the certificate specified by x509cert to see if it can be used for the purpose specified by purpose.

cainfo should be an array of trusted CA files/dirs as described in Certificate Verification.

untrustedfile, if specified, is the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust in placed in the certificates that come from that file.

Tabela 1. openssl_x509_checkpurpose() purposes

Constant | Description
X509_PURPOSE_SSL_CLIENT | Can the certificate be used for the client side of an SSL connection?
X509_PURPOSE_SSL_SERVER | Can the certificate be used for the server side of an SSL connection?
X509_PURPOSE_NS_SSL_SERVER | Can the cert be used for Netscape SSL server?
X509_PURPOSE_SMIME_SIGN | Can the cert be used to sign S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Can the cert be used to encrypt S/MIME email?
X509_PURPOSE_CRL_SIGN | Can the cert be used to sign a certificate revocation list (CRL)?
X509_PURPOSE_ANY | Can the cert be used for Any/All purposes?
These options are not bitfields - you may specify one only!

Anterior | Principal | Próxima
openssl_x509_check_private_key | Acima | openssl_x509_export_to_file


openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_file -- Exports a certificate to file

Description

bool openssl_x509_export_to_file ( mixed x509, string outfilename [, bool notext])

openssl_x509_export_to_file() stores x509 into a file named by outfilename in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
openssl_x509_checkpurpose | Acima | openssl_x509_export


openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export -- Exports a certificate as a string

Description

bool openssl_x509_export ( mixed x509, string &output [, bool notext])

openssl_x509_export() stores x509 into a string named by output in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
openssl_x509_export_to_file | Acima | openssl_x509_free


openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_free -- Free certificate resource

Description

void openssl_x509_free ( resource x509cert)

openssl_x509_free() frees the certificate associated with the specified x509cert resource from memory.

Anterior | Principal | Próxima
openssl_x509_export | Acima | openssl_x509_parse


openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parse -- Parse an X509 certificate and return the information as an array

Description

array openssl_x509_parse ( mixed x509cert [, bool shortnames])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

openssl_x509_parse() returns information about the supplied x509cert, including fields such as subject name, issuer name, purposes, valid from and valid to dates etc. shortnames controls how the data is indexed in the array - if shortnames is TRUE (the default) then fields will be indexed with the short name form, otherwise, the long name form will be used - e.g.: CN is the shortname form of commonName.

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.

Anterior | Principal | Próxima
openssl_x509_free | Acima | openssl_x509_read


openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Description

resource openssl_x509_read ( mixed x509certdata)

openssl_x509_read() parses the certificate supplied by x509certdata and returns a resource identifier for it.

Anterior | Principal | Próxima
openssl_x509_parse | Acima | Oracle


Oracle

Manual do PHP
Anterior Próxima

LXXVI. Oracle

Introdução

Essa extensão adiciona suporte ao Banco de Dados Oracle. Veja também a extensão OCI8.

Instalação

Você tem que compilar o PHP com a oppção --with-oracle[=DIR], onde DIR é a variável de ambiente ORACLE_HOME.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

ORA_BIND_INOUT (integer)

ORA_BIND_IN (integer)

ORA_BIND_OUT (integer)

ORA_FETCHINTO_ASSOC (integer)

ORA_FETCHINTO_NULLS (integer)

Índice
ora_bind -- Passa uma variável PHP para um parâmetro do Oracle
ora_close -- Fecha um cursor Oracle
ora_columnname -- Pega o nome de uma coluna do Oracle
ora_columnsize -- Retorna o tamanho de uma coluna no Oracle
ora_columntype -- Pega o tipo de uma coluna no Oracle
ora_commit -- Valida uma transação Oracle.
ora_commitoff -- Desabilita automaticamente o commit
ora_commiton -- Habilita automaticamente o commit
ora_do -- Combinação das funções Parse, Exec, Fetch
ora_error -- Retorna uma mensagem de erro do Oracle
ora_errorcode -- Retorna um código de erro do Oracle
ora_exec -- Executa um bloco de comando ou um cursor Oracle
ora_fetch_into -- Retorna linhas de dados especificados em array
ora_fetch -- Retorna linha de dados de um cursor
ora_getcolumn -- Retorna dados de uma coluna selecionada
ora_logoff -- Fecha uma conexão com o Oracle
ora_logon -- Abre uma conexão com o Oracle
ora_numcols -- Retorna o número de colunas
ora_numrows -- Retorna o número de linhas
ora_open -- Abre um Cursor no Oracle
ora_parse -- Verifica um bloco de comando SQL com o Oracle
ora_plogon -- Abre uma conexão persistente com o Oracle
ora_rollback -- Desfaz uma transação

Anterior | Principal | Próxima
openssl_x509_read | Acima | ora_bind


ora_bind

(PHP 3, PHP 4 , PHP 5)

ora_bind -- Passa uma variável PHP para um parâmetro do Oracle

Descrição

bool ora_bind ( resource cursor, string PHP_variable_name, string SQL_parameter_name, int length [, int type])

Essa função passa variáveis nomeadas do PHP com um parâmetro SQL. O parâmetro SQL deve ser no formato ":name". Com o parâmetro type opcional, você pode definir se o parâmetro SQL são in/out (0, default), in (1) ou out (2). Usando PHP 3.0.1, você pode usar as constantes ORA_BIND_INOUT, ORA_BIND_IN e ORA_BIND_OUT ao invés dos números.

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre erros podem ser retornados usando as funções ora_error() e ora_errorcode().

ora_bind() deve ser chamado após ora_parse() e antes de ora_exec(). Dados inseridos podem ser dados por tarefa para variáveis PHP, após chamada de ora_exec() as variáveis PHP irão conter os valores se disponíveis.

Exemplo 1. Exemplo ora_bind()

<?php
  ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
  ora_bind($curs, "result", ":x", $len, 2);
  ora_bind($curs, "input", ":in", 5, 1);
  ora_bind($curs, "output", ":out", 5, 2);
  $input = 765;
  ora_exec($curs);
  echo "Result: $result<BR>Out: $output<BR>In: $input";
?>

Anterior | Principal | Próxima
Oracle | Acima | ora_close


ora_close

(PHP 3, PHP 4 , PHP 5)

ora_close -- Fecha um cursor Oracle

Descrição

bool ora_close ( resource cursor)

Esta função fecha um cursor aberto pela função ora_open().

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre este erro podem ser retornados usando a função ora_error() e ora_errorcode().

Anterior | Principal | Próxima
ora_bind | Acima | ora_columnname


ora_columnname

(PHP 3, PHP 4 , PHP 5)

ora_columnname -- Pega o nome de uma coluna do Oracle

Descrição

string ora_columnname ( resource cursor, int column)

Retorna o nome de um campo/coluna column no cursor cursor. O nome retornado em todos os casos estão em letra maisúcula. A coluna 0 é a primeira coluna.

Anterior | Principal | Próxima
ora_close | Acima | ora_columnsize


ora_columnsize

(PHP 3, PHP 4 , PHP 5)

ora_columnsize -- Retorna o tamanho de uma coluna no Oracle

Descrição

int ora_columnsize ( resource cursor, int column)

Retorna o tamanho de uma coluna no Oracle column no cursor cursor. A Coluna 0 é a primeira coluna.

Anterior | Principal | Próxima
ora_columnname | Acima | ora_columntype


ora_columntype

(PHP 3, PHP 4 , PHP 5)

ora_columntype -- Pega o tipo de uma coluna no Oracle

Descrição

string ora_columntype ( resource cursor, int column)

Retorna o nome do tipo de campo/coluna column no cursor cursor. A coluna 0 é a primeira coluna. O tipo retornado irá ser um dos seguintes:

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Anterior | Principal | Próxima
ora_columnsize | Acima | ora_commit


ora_commit

(PHP 3, PHP 4 , PHP 5)

ora_commit -- Valida uma transação Oracle.

Descrição

bool ora_commit ( resource conn)

Essa função valida uma transação Oracle. A transação é definido como todas as alterações efetuadas desde o último commit/rollback executados, autocommit foi desabilitado ou quando a conexão foi estabelecida.

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre estes erros podem ser retornados usando as funções ora_error() e ora_errorcode().

Veja também ora_commiton() e ora_commitoff().

Anterior | Principal | Próxima
ora_columntype | Acima | ora_commitoff


ora_commitoff

(PHP 3, PHP 4 , PHP 5)

ora_commitoff -- Desabilita automaticamente o commit

Descrição

bool ora_commitoff ( resource conn)

Essa função desabilita automaticamente o commit após cada ora_exec() na conexão especificada.

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre esse erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Veja também ora_commiton() e ora_commit().

Anterior | Principal | Próxima
ora_commit | Acima | ora_commiton


ora_commiton

(PHP 3, PHP 4 , PHP 5)

ora_commiton -- Habilita automaticamente o commit

Descrição

bool ora_commiton ( resource conn)

Essa função habilita automaticamente o commit após cada ora_exec() dentro da conexão atual.

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre este erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Veja também ora_commitoff() e ora_commit().

Anterior | Principal | Próxima
ora_commitoff | Acima | ora_do


ora_do

(PHP 3, PHP 4 , PHP 5)

ora_do -- Combinação das funções Parse, Exec, Fetch

Descrição

resource ora_do ( resource conn, string query)

ora_do() é uma combinação rápida das funções ora_parse(), ora_exec() e ora_fetch(). Isso irá verificar e executar um bloco de comando,então selecionar a primeira linha de resultado.

Essa função retorna um cursor index ou FALSE em caso de falhas. Detalhes sobre este erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Veja também ora_parse(),ora_exec() e ora_fetch().

Anterior | Principal | Próxima
ora_commiton | Acima | ora_error


ora_error

(PHP 3, PHP 4 , PHP 5)

ora_error -- Retorna uma mensagem de erro do Oracle

Descrição

string ora_error ( resource cursor_or_connection)

Retorna uma mensagem de erro no formato XXX-NNNNN onde XXX é onde ocorreu o erro e NNNNN identifica a mensagem de erro.

Nota: Suporte para conexão ids foi adicionado na versão 3.0.4.

Em versões UNIX do Oracle, você pode procurar detalhes sobre uma mensagem de erro como essa: $ oerr ora 00001 00001, 00000, "unique constraint (%s.%s) violated" // *Cause: An update or insert statement attempted to insert a duplicate key // For Trusted ORACLE configured in DBMS MAC mode, you may see // this message if a duplicate entry exists at a different level. // *Action: Either remove the unique restriction or do not insert the key

Anterior | Principal | Próxima
ora_do | Acima | ora_errorcode


ora_errorcode

(PHP 3, PHP 4 , PHP 5)

ora_errorcode -- Retorna um código de erro do Oracle

Descrição

int ora_errorcode ( resource cursor_or_connection)

Retorna um número de erro do último comando executado especificado de um cursor ou de uma conexão.

Nota: Suporte para conexão ids foi adidicionado na versão 3.0.4.

Anterior | Principal | Próxima
ora_error | Acima | ora_exec


ora_exec

(PHP 3, PHP 4 , PHP 5)

ora_exec -- Executa um bloco de comando ou um cursor Oracle

Descrição

bool ora_exec ( resource cursor)

ora_exec() executa um bloco de comando ou um cursor, já verificado por ora_parse().

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre este erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Veja também ora_parse(), ora_fetch(), e ora_do().

Anterior | Principal | Próxima
ora_errorcode | Acima | ora_fetch_into


ora_fetch_into

(PHP 3, PHP 4 , PHP 5)

ora_fetch_into -- Retorna linhas de dados especificados em array

Descrição

int ora_fetch_into ( resource cursor, array result [, int flags])

Traz uma linha de dados dentro de uma array. O flags tem dois valores: se o ORA_FETCHINTO_NULLS flag está setado, colunas com valores NULL são setadas no array; e se o ORA_FETCHINTO_ASSOC flag está setado, um array associativo é criado.

Retorna o número de colunas selecionadas.

Exemplo 1. ora_fetch_into()

<?php
$results = array();
ora_fetch_into($cursor, $results);
echo $results[0];
echo $results[1];
$results = array();
ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo $results['MyColumn'];
?>

Veja também ora_parse(),ora_exec(), ora_fetch(), e ora_do().

Anterior | Principal | Próxima
ora_exec | Acima | ora_fetch


ora_fetch

(PHP 3, PHP 4 , PHP 5)

ora_fetch -- Retorna linha de dados de um cursor

Descrição

bool ora_fetch ( resource cursor)

Retorna uma linha de dados especificados no cursor.

Retorna TRUE (uma linha foi selecionada) ou FALSE (sem linhas, ou um erro ocorreu).
Se um erro ocorreu, detalhes podem drt retornados
usando as funções ora_error() e
ora_errorcode(). Se não houve erros,
ora_errorcode() irá retornar 0.

Veja também ora_parse(),ora_exec(), e ora_do().

Anterior | Principal | Próxima
ora_fetch_into | Acima | ora_getcolumn


ora_getcolumn

(PHP 3, PHP 4 , PHP 5)

ora_getcolumn -- Retorna dados de uma coluna selecionada

Descrição

mixed ora_getcolumn ( resource cursor, int column)

Traz dados de uma coluna ou resultados de uma função.

Retorna dados de uma coluna. Se um erro ocorrer, FALSE retorna e ora_errorcode() irá retornar um valor diferente de zero. Note que, de qualquer modo, um teste para FALSE nos resultados para esta função podem ser TRUE em casos onde não há erro assim como (NULL resultados, strings vazias, o número 0, a string "0").

Anterior | Principal | Próxima
ora_fetch | Acima | ora_logoff


ora_logoff

(PHP 3, PHP 4 , PHP 5)

ora_logoff -- Fecha uma conexão com o Oracle

Descrição

bool ora_logoff ( resource connection)

Fecha a conexão do usuário e desconecta do servidor Oracle.

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre este erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Veja também ora_logon().

Anterior | Principal | Próxima
ora_getcolumn | Acima | ora_logon


ora_logon

(PHP 3, PHP 4 , PHP 5)

ora_logon -- Abre uma conexão com o Oracle

Descrição

resource ora_logon ( string user, string password)

Estabiliza uma conexão entre PHP e um Banco de Dados Oracle com o usuário especificado por user e senha especificada por password.

Conexões podem ser feitas usandoSQL*Net fornecendo o TNS name para user como isso:

<?php
$conn = Ora_Logon("user@TNSNAME", "pass");
?>

Se você tem dados com caracteres non-ASCII, você deve estar certo que a variável do Oracle NLS_LANG está setada. Você deve setar está variável de ambiente no servidor antes de inicializar o servidor.

Retorna uma conexão index em caso de sucesso, ou FALSE em caso de falha. Detalhes sobre este erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Anterior | Principal | Próxima
ora_logoff | Acima | ora_numcols


ora_numcols

(PHP 3, PHP 4 , PHP 5)

ora_numcols -- Retorna o número de colunas

Descrição

int ora_numcols ( resource cursor)

ora_numcols() retorna o número de colunas em um bloco SQL. Somente retorna valores significativos após uma sequência parse/exec/fetch.

Veja também ora_parse(),ora_exec(), ora_fetch(), e ora_do().

Anterior | Principal | Próxima
ora_logon | Acima | ora_numrows


ora_numrows

(PHP 3, PHP 4 , PHP 5)

ora_numrows -- Retorna o número de linhas

Descrição

int ora_numrows ( resource cursor)

ora_numrows() retorna o número de linhas de um resultado.

Anterior | Principal | Próxima
ora_numcols | Acima | ora_open


ora_open

(PHP 3, PHP 4 , PHP 5)

ora_open -- Abre um Cursor no Oracle

Descrição

resource ora_open ( resource connection)

Abre um cursor Oracle associado com a conexão aberta.

Retorna um cursor index ou false, caso falhar. Detalhes sobre estes erros podem ser retornads usando a função ora_error() e com a função ora_errorcode().

Anterior | Principal | Próxima
ora_numrows | Acima | ora_parse


ora_parse

(PHP 3, PHP 4 , PHP 5)

ora_parse -- Verifica um bloco de comando SQL com o Oracle

Descrição

bool ora_parse ( resource cursor, string sql_statement, int defer)

Essa função verifica um bloco de comando SQL ou um PL/SQL e associa-o à um cursor.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também ora_exec(), ora_fetch(), e ora_do().

Anterior | Principal | Próxima
ora_open | Acima | ora_plogon


ora_plogon

(PHP 3, PHP 4 , PHP 5)

ora_plogon -- Abre uma conexão persistente com o Oracle

Descrição

resource ora_plogon ( string user, string password)

Estabiliza uma conexão persistente entre o PHP e um Banco de Dados Oracle com o usuário especificado por user e senha especificada por password.

Veja também ora_logon().

Anterior | Principal | Próxima
ora_parse | Acima | ora_rollback


ora_rollback

(PHP 3, PHP 4 , PHP 5)

ora_rollback -- Desfaz uma transação

Descrição

bool ora_rollback ( resource connection)

Essa função desfaz uma transação Oracle. (Veja ora_commit() para obter a definição de transações.)

Retorna TRUE em caso de sucesso ou FALSE em falhas. Detalhes sobre este erro podem ser retornados usando as funções ora_error() e ora_errorcode().

Anterior | Principal | Próxima
ora_plogon | Acima | Ovrimos SQL Functions


Ovrimos SQL Functions

Manual do PHP
Anterior Próxima

LXXVII. Ovrimos SQL Functions

Introdução

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

Instalação

To enable Ovrimos support in PHP just compile PHP with the --with-ovrimos[=DIR] parameter to your configure line. DIR is the Ovrimos' libsqlcli install directory.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Exemplos

Exemplo 1. Connect to Ovrimos SQL Server and select from a system table

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will just connect to an Ovrimos SQL server.

Índice
ovrimos_close -- Closes the connection to ovrimos
ovrimos_commit -- Commits the transaction
ovrimos_connect -- Connect to the specified database
ovrimos_cursor -- Returns the name of the cursor
ovrimos_exec -- Executes an SQL statement
ovrimos_execute -- Executes a prepared SQL statement
ovrimos_fetch_into -- Fetches a row from the result set
ovrimos_fetch_row -- Fetches a row from the result set
ovrimos_field_len -- Returns the length of the output column
ovrimos_field_name -- Returns the output column name
ovrimos_field_num -- Returns the (1-based) index of the output column
ovrimos_field_type -- Returns the (numeric) type of the output column
ovrimos_free_result -- Frees the specified result_id
ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes
ovrimos_num_fields -- Returns the number of columns
ovrimos_num_rows -- Returns the number of rows affected by update operations
ovrimos_prepare -- Prepares an SQL statement
ovrimos_result_all -- Prints the whole result set as an HTML table
ovrimos_result -- Retrieves the output column
ovrimos_rollback -- Rolls back the transaction

Anterior | Principal | Próxima
ora_rollback | Acima | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_close -- Closes the connection to ovrimos

Description

void ovrimos_close ( int connection)

ovrimos_close() is used to close the specified connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

Anterior | Principal | Próxima
Ovrimos SQL Functions | Acima | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_commit -- Commits the transaction

Description

bool ovrimos_commit ( int connection_id)

ovrimos_commit() is used to commit the transaction. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ovrimos_close | Acima | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_connect -- Connect to the specified database

Description

int ovrimos_connect ( string host, string db, string user, string password)

ovrimos_connect() is used to connect to the specified database.

ovrimos_connect() returns a connection id (greater than 0) or 0 for failure. The meaning of host and db are those used everywhere in Ovrimos APIs. host is a host name or IP address and db is either a database name, or a string containing the port number.

Exemplo 1. ovrimos_connect() Example

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
The above example will connect to the database and print out the specified table.

Anterior | Principal | Próxima
ovrimos_commit | Acima | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_cursor -- Returns the name of the cursor

Description

string ovrimos_cursor ( int result_id)

ovrimos_cursor() returns the name of the cursor. Useful when wishing to perform positioned updates or deletes.

Anterior | Principal | Próxima
ovrimos_connect | Acima | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_exec -- Executes an SQL statement

Description

int ovrimos_exec ( int connection_id, string query)

ovrimos_exec() executes an SQL statement (query or update) and returns a result_id or FALSE. Evidently, the SQL statement should not contain parameters.

Anterior | Principal | Próxima
ovrimos_cursor | Acima | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_execute -- Executes a prepared SQL statement

Description

bool ovrimos_execute ( int result_id [, array parameters_array])

ovrimos_execute() executes a prepared statement. Retorna TRUE em caso de sucesso ou FALSE em falhas. If the prepared statement contained parameters (question marks in the statement), the correct number of parameters should be passed in an array. Notice that I don't follow the PHP convention of placing just the name of the optional parameter inside square brackets. I couldn't bring myself on liking it.

Anterior | Principal | Próxima
ovrimos_exec | Acima | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_into -- Fetches a row from the result set

Description

bool ovrimos_fetch_into ( int result_id, array result_array [, string how [, int rownumber]])

ovrimos_fetch_into() fetches a row from the result set into result_array, which should be passed by reference. Which row is fetched is determined by the two last parameters. how is one of Next (default), Prev, First, Last, Absolute, corresponding to forward direction from current position, backward direction from current position, forward direction from the start, backward direction from the end and absolute position from the start (essentially equivalent to 'first' but needs 'rownumber'). Case is not significant. rownumber is optional except for absolute positioning. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. A fetch into example

<?php
$conn=ovrimos_connect("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_into($res, &$row)) {
            list($table_id, $table_name) = $row;
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_into($res, &$row)) {
                list($table_id, $table_name) = $row;
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This example will fetch a row.

Anterior | Principal | Próxima
ovrimos_execute | Acima | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_row -- Fetches a row from the result set

Description

bool ovrimos_fetch_row ( int result_id [, int how [, int row_number]])

ovrimos_fetch_row() fetches a row from the result set. Column values should be retrieved with other calls. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. A fetch row example

<?php
$conn = ovrimos_connect("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_row($res, "First")) {
            $table_id = ovrimos_result($res, 1);
            $table_name = ovrimos_result($res, 2);
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_row($res, "Next")) {
                $table_id = ovrimos_result($res, "table_id");
                $table_name = ovrimos_result($res, "table_name");
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will fetch a row and print the result.

Anterior | Principal | Próxima
ovrimos_fetch_into | Acima | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_len -- Returns the length of the output column

Description

int ovrimos_field_len ( int result_id, int field_number)

ovrimos_field_len() is used to get the length of the output column with number field_number (1-based), in result result_id.

Anterior | Principal | Próxima
ovrimos_fetch_row | Acima | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_name -- Returns the output column name

Description

string ovrimos_field_name ( int result_id, int field_number)

ovrimos_field_name() returns the output column name at the (1-based) index specified.

Anterior | Principal | Próxima
ovrimos_field_len | Acima | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_num -- Returns the (1-based) index of the output column

Description

int ovrimos_field_num ( int result_id, string field_name)

ovrimos_field_num() returns the (1-based) index of the output column specified by field_name, or FALSE.

Anterior | Principal | Próxima
ovrimos_field_name | Acima | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_type -- Returns the (numeric) type of the output column

Description

int ovrimos_field_type ( int result_id, int field_number)

ovrimos_field_type() returns the (numeric) type of the output column at the (1-based) index specified by field_number.

Anterior | Principal | Próxima
ovrimos_field_num | Acima | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_free_result -- Frees the specified result_id

Description

bool ovrimos_free_result ( int result_id)

ovrimos_free_result() frees the specified result_id. Returns TRUE.

Anterior | Principal | Próxima
ovrimos_field_type | Acima | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes

Description

bool ovrimos_longreadlen ( int result_id, int length)

ovrimos_longreadlen() specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary). Default is zero. It currently sets this parameter the specified result set. Returns TRUE.

Anterior | Principal | Próxima
ovrimos_free_result | Acima | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_fields -- Returns the number of columns

Description

int ovrimos_num_fields ( int result_id)

ovrimos_num_fields() returns the number of columns in a result_id resulting from a query.

Anterior | Principal | Próxima
ovrimos_longreadlen | Acima | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_rows -- Returns the number of rows affected by update operations

Description

int ovrimos_num_rows ( int result_id)

ovrimos_num_rows() returns the number of rows affected by update operations.

Anterior | Principal | Próxima
ovrimos_num_fields | Acima | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_prepare -- Prepares an SQL statement

Description

int ovrimos_prepare ( int connection_id, string query)

ovrimos_prepare() prepares an SQL statement and returns a result_id (or FALSE on failure).

Exemplo 1. Connect to Ovrimos SQL Server and prepare a statement

<?php
$conn=ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_prepare($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res)) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will connect to Ovrimos SQL Server, prepare a statement and the execute it.

Anterior | Principal | Próxima
ovrimos_num_rows | Acima | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result_all -- Prints the whole result set as an HTML table

Description

int ovrimos_result_all ( int result_id [, string format])

ovrimos_result_all() prints the whole result set as an HTML table. Returns the number of rows in the generated table.

Exemplo 1. Prepare a statement, execute, and view the result

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_prepare($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res, array(3))) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will execute an SQL statement and print the result in an HTML table.

Exemplo 2. ovrimos_result_all() with meta-information

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1");
    if ($res != 0) {
        echo "Statement ok! cursor=" . ovrimos_cursor($res) . "\n";
        $colnb = ovrimos_num_fields($res);
        echo "Output columns=" . $colnb . "\n";
        for ($i=1; $i <= $colnb; $i++) {
            $name = ovrimos_field_name($res, $i);
            $type = ovrimos_field_type($res, $i);
            $len = ovrimos_field_len($res, $i);
            echo "Column " . $i . " name=" . $name . " type=" . $type . " len=" . $len . "\n";
        }
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Exemplo 3. ovrimos_result_all() example

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "update test set i=5");
    if ($res != 0) {
        echo "Statement ok!";
        echo ovrimos_num_rows($res)." rows affected\n";
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Anterior | Principal | Próxima
ovrimos_prepare | Acima | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result -- Retrieves the output column

Description

string ovrimos_result ( int result_id, mixed field)

ovrimos_result() retrieves the output column specified by field, either as a string or as an 1-based index. Returns FALSE on failure.

Anterior | Principal | Próxima
ovrimos_result_all | Acima | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_rollback -- Rolls back the transaction

Description

bool ovrimos_rollback ( int connection_id)

ovrimos_rollback() is used to roll back the transaction. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
ovrimos_result | Acima | Output Control(Controle de Saída)


Output Control(Controle de Saída)

Manual do PHP
Anterior Próxima

LXXVIII. Output Control(Controle de Saída)

Introdução

As funções de Controle de Saída permitem a você controlar quando a saída é enviada do script. Isto pode ser util em várias situações diversas, especialmente se você precisa enviar cabeçalhos para o browser depois que seu script começou a enviar dados. As funções de controle de saída não afetam os cabeçalhos enviados usando header() ou setcookie(), somente funções como echo() e dados entre blocos de código PHP.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração de controle de saída

Nome | Padrão | Modificavel
output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM
implicit_flush | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
Para maiores detalhes e definiç~es das constantes do PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

output_buffering boolean/integer

Você pode ativar o buffer de saída para todos os arquivos definindo esta dretiva para 'On'. Se você quiser limitar o tamanho do buffer para um certo limite - você pode usar um número máximo de bytes ao invés de 'On', como valor para esta diretiva (ex., output_buffering=4096).

output_handler string

Você pode redirecionar toda a saída do seu script para uma função. Por exemplo, se você definir set output_handler para mb_output_handler(), a codificação dos caracteres será transparentemente convertida para a codificação especificada. Definindo qualquer função para gerenciar a saída ativa o buffer de saída.

Nota:
      Você não pode usar mb_output_handler() com
      ob_inconv_handler() e você não pode usar
      ob_gzhandler() e
      zlib.output_compression.

implicit_flush boolean

FALSE por padrão. Mudando isto para TRUE diz ao PHP para dizer para a camada de saída descarregar a si mesma automaticamente a cada bloco de saída. Isto é equivalente a utilizar a função do PHP flush() a cada print() ou echo() e a cada bloco de HTML.

Quando estiver usando o PHP em um ambiente web, ativando esta opção tem uma séria implicação na performance e geralmente é recomendada apenas para debug. O valor padrão é TRUE quando operando sobre CLI SAPI.

Veja também ob_implicit_flush().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Exemplo 1. Exemplo de Controle de saída

<?php

ob_start();
echo "Hello\n";

setcookie ("cookiename", "cookiedata");

ob_end_flush();

?>

No exmplo acima, a saída de echo() será guardada no bffer de saída até que ob_end_flush() seja chamada. Em quanto isto, a chamada para setcookie() guadará o cookie sem causar um erro. (Normalmente você não pode enviar cabeçalhos para o browser depois que dados já foram enviados.)

Nota: Quando atualizando a partir do PHP 4.1 (e 4.2) para 4.3 note que devido a um bug nas versões anteriores, você deve ter certeza que implict_flush esta em OFF no seu php.ini, se não qualquer saída com ob_start() não será escondida da saída.

Veja Também

Veja também header() e setcookie().

Índice
flush -- Descarrega o buffer de saída
ob_clean -- Limpa (apaga) o buffer de saída
ob_end_clean -- Limpa (apaga) o buffer de saída e desativa o buffer de saída
ob_end_flush -- Descarrega (envia) o buffer de saída e desativa o buffer de saída
ob_flush -- Descarrega (envia) o conteúdo do buffer de saída
ob_get_clean -- Obtém o conteudo do buffer e exclui o buffer de saída atual
ob_get_contents -- Retorna o conteúdo do buffer de saída
ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering
ob_get_length -- Retorna o tamanho do buffer de saída
ob_get_level -- Retorna o nível do mecanismo de buffer de saída
ob_get_status -- Obtém a situação dos buffers de saída
ob_gzhandler -- Função de callback para ob_start para compactar com gzip o buffer de saída
ob_implicit_flush -- Ativa ou desativa o descarregar implicito
ob_list_handlers -- List all output handlers in use
ob_start -- Ativa o buffer de saída
output_add_rewrite_var -- Add URL rewriter values
output_reset_rewrite_vars -- Reset URL rewriter values

Anterior | Principal | Próxima
ovrimos_rollback | Acima | flush


flush

(PHP 3, PHP 4 , PHP 5)

flush -- Descarrega o buffer de saída

Descrição

void flush ( void )

Descarrega os buffers de saída do PHP e qualquer backend que o PHP esteja usando (CGI, um servidor web, etc). Isto efetivamente tenta empurrar toda a saída até aqui para o browser do usuário.

flush() não tem efeito no funcionamento de buffer do seu servior ou do browser do cliente.

Vários servidores, especialmente no Win32, irão continuar colocando a saída do script em buffer até que ele termine antes de enviar os resultados para o browser.

Módulos de servidor para o Apache como o mod_gzip podem fazer buffer por si o que fará com que flush() não resulte em os dados serem enviados imediatamente para o cliente.

mesmo o browser pode fazer buffer antes de mostrar o conteúdo. Netscape, por exemplo, guarda o texto em buffer até que receba um end-of-line ou o inicio de uma tag, e não irá mostrar tabelas até que a tag </table> da tabela mais de fora seja vista.

Algumas versões do Microsoft Internet Explorer somente começaram a mostrar dados depois de terem recebido 256 bytes de saída, então você vai precisar enviar espaço em branco antes de descarregar para os browser para mostrar a página.

Anterior | Principal | Próxima
Output Control(Controle de Saída) | Acima | ob_clean


ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_clean -- Limpa (apaga) o buffer de saída

Descrição

void ob_clean ( void )

Esta função descarta o conteúdo do buffer de saída.

Esta função não destroi o buffer de saída como a função ob_end_clean() faz.

Veja também ob_flush(),
ob_end_flush() e
ob_end_clean().

Anterior | Principal | Próxima
flush | Acima | ob_end_clean


ob_end_clean

(PHP 4 , PHP 5)

ob_end_clean -- Limpa (apaga) o buffer de saída e desativa o buffer de saída

Descrição

bool ob_end_clean ( void )

Esta função descarta o conteúdo do buffer mais em cima e desativa o buffer de saída. Se você quiser processar o conteúdo do buffer, você deve utilizar a função ob_get_contents() antes de ob_end_clean() já que o conteúdo do buffer é descartado quando a função ob_end_flush() é chamada. A função retorna TRUE quando foi bem sucedida em discartar o buffer, FALSE se não. Razões para falhar é primeiro que você utilizou a função sem um buffer ativo ou por algum motivo o buffer não pode ser excluído (possivelmente por um buffer especial).

O exemplo a seguir mostra como eliminar todos os buffers de saída:

Exemplo 1. Exemplo ob_end_clean()

<?php
while (@ob_end_clean());
?>

Nota: Se a função falhar gera um E_NOTICE.

O valor booleano de rtorno foi adicionado no PHP 4.2.0.

Veja também ob_start(),
ob_get_contents() e
ob_flush().

Anterior | Principal | Próxima
ob_clean | Acima | ob_end_flush


ob_end_flush

(PHP 4 , PHP 5)

ob_end_flush -- Descarrega (envia) o buffer de saída e desativa o buffer de saída

Descrição

bool ob_end_flush ( void )

Esta função irá enviar o conteúdo do buffer mais em cima (se existir algum) e desativar o buffer de saída. Se você quiser processar o conteúdo do buffer você deverá utilizar ob_get_contents() antes de ob_end_flush() já que o conteúdo do buffer é discartado após ob_end_flush(). A função retorna TRUE quando é bem sucedida em discartar um buffer, FALSE se não. Razões para falhar é primeiro que você utilizou a função sem um buffer ativo ou por algum motivo o buffer não pode ser excluído (possivelmente por um buffer especial).

O exemplo a seguir mostra como descarregar e terminar com todos os buffers de saída:

Exemplo 1. Exemplo ob_end_flush()

<?php
  while (@ob_end_flush());
?>

Nota: Se a função falhar gera um E_NOTICE.

O valor booleano de rtorno foi adicionado no PHP 4.2.0.

Veja também ob_start(),
ob_get_contents(),
ob_flush() e
ob_end_clean().

Anterior | Principal | Próxima
ob_end_clean | Acima | ob_flush


ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flush -- Descarrega (envia) o conteúdo do buffer de saída

Descrição

void ob_flush ( void )

Esta função irá enviar o conteúdo do buffer de saída (se existir algum). Se você quiser processar o conteúdo do buffer você deverá utlizar ob_get_contents() antes de ob_flush() já que o conteúdo do buffer é discartado após ob_flush().

Esta função não destroi o buffer de saída como a função ob_end_flush() faz.

Veja também ob_get_contents(),
ob_clean(),
ob_end_flush() e
ob_end_clean().

Anterior | Principal | Próxima
ob_end_flush | Acima | ob_get_clean


ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_clean -- Obtém o conteudo do buffer e exclui o buffer de saída atual

Descrição

string ob_get_clean ( void )

Esta função irá retornar o conteúdo do buffer de saída e terminar com o buffer de saída. Se o buffer de saída não estiver ativo então será retornado FALSE. ob_get_clean() essencialmente executa ambas ob_get_contents() e ob_end_clean().

Exemplo 1. Um exemplo simples de ob_get_clean()

<?php

ob_start();

print "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);

/* Nosso exemplo irá mostrar:

string(11) "hello world"

*/
?>

Veja também ob_start() e ob_get_contents().

Anterior | Principal | Próxima
ob_flush | Acima | ob_get_contents


ob_get_contents

(PHP 4 , PHP 5)

ob_get_contents -- Retorna o conteúdo do buffer de saída

Descrição

string ob_get_contents ( void )

Esta função retorna o conteúdo do buffer de saída ou FALSE, se o buffer de saída não estiver ativo.

Veja também ob_start() e ob_get_length().

Anterior | Principal | Próxima
ob_get_clean | Acima | ob_get_flush


ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering

Description

string ob_get_flush ( void )

ob_get_flush() flushs the output buffer, return it as a string and turns off output buffering. ob_get_flush() returns FALSE if no buffering is active.

Nota: This function is similar to ob_end_flush(), except that this function returns the buffer as a string.

Exemplo 1. ob_get_flush() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());

//save buffer in a file
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

The above example will output:

Array
(
    [0] => default output handler
)
Array
(
)

See also ob_end_clean(),
ob_end_flush() and
ob_list_handlers().

Anterior | Principal | Próxima
ob_get_contents | Acima | ob_get_length


ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_length -- Retorna o tamanho do buffer de saída

Descrição

int ob_get_length ( void )

Este irá retonar o tamanho do conteúdo do buffer de saída ou FALSE, se o buffer de saída não estiver ativo.

Veja também ob_start() e ob_get_contents().

Anterior | Principal | Próxima
ob_get_flush | Acima | ob_get_level


ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level -- Retorna o nível do mecanismo de buffer de saída

Descrição

int ob_get_level ( void )

Retorna o nivel do mecanismo de saída.

Veja também ob_start() e ob_get_contents().

Anterior | Principal | Próxima
ob_get_length | Acima | ob_get_status


ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_status -- Obtém a situação dos buffers de saída

Descrição

array ob_get_status ( [bool full_status])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Esta função retorna o estado atual dos buffers de saída. Retorna uma matriz que contém o estado dos buffers ou FALSE em caso de erro.

Veja também ob_get_level().

Anterior | Principal | Próxima
ob_get_level | Acima | ob_gzhandler


ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler -- Função de callback para ob_start para compactar com gzip o buffer de saída

Descrição

string ob_gzhandler ( string buffer [, int mode])

Nota: mode foi adicionado no PHP 4.0.5.

ob_gzhandler() é intencionado para ser usado como uma função de callback para ob_start() para facilitar o envio de dados gz-encoded para browsers que suportam páginas comprimidas. Antes de ob_gzhandler() enviar dados comprimidos, ela determina qual o tipo de códificação de conteúdo que o browser irá aceitar ("gzip", "deflate" ou nenhum) e irá retornar a sua saída de acordo. Todos os browsers são suportados já que é dever do browser enviar o cabeçalho correto indicando que ele aceita paginas comprimidas.

Exemplo 1. Exemplo ob_gzhandler()

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.
</html>
<body>

Veja também ob_start() e ob_end_flush().

Nota: Você não pode usar ambas ob_gzhandler() e ini.zlib.output_compression. Também note que usar ini.zlib.output_compression é preferrível do que ob_gzhandler().

Anterior | Principal | Próxima
ob_get_status | Acima | ob_implicit_flush


ob_implicit_flush

(PHP 4 , PHP 5)

ob_implicit_flush -- Ativa ou desativa o descarregar implicito

Descrição

void ob_implicit_flush ( [int flag])

ob_implicit_flush() irá ativar ou desativar o descarregar implicito (se não for indicado flag, o padrão é on). O descarregar implicito fará com que o buffer seja descarregado a cada operação de saída, então não será mais necessário utilizar flush().

Ativando o descarregar automatico irá desabilitar o buffer de saída. Os buffers de saída atuais serão enviados como se ob_end_flush() fosse utilizada.

Veja também flush(),
ob_start(), e
ob_end_flush().

Anterior | Principal | Próxima
ob_gzhandler | Acima | ob_list_handlers


ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlers -- List all output handlers in use

Description

array ob_list_handlers ( void )

This will return an array with the output handlers in use (if any). If output_buffering is enabled, ob_list_handlers() will return "default output handler".

Exemplo 1. ob_list_handlers() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();
?>

The above example will output:

Array
(
    [0] => default output handler
)
Array
(
    [0] => ob_gzhandler
)

See also ob_end_clean(),
ob_end_flush(),
ob_get_flush(), and ob_start().

Anterior | Principal | Próxima
ob_implicit_flush | Acima | ob_start


ob_start

(PHP 4 , PHP 5)

ob_start -- Ativa o buffer de saída

Descrição

bool ob_start ( [callback output_callback])

Esta função irá ativar o buffer de saída. Enquanto o buffer de saída estiver ativo, não é enviada a saída do script (outros que não sejam cabeçalhos), ao invés a saída é guardada em um buffer interno.

O conteúdo deste buffer interno pode ser copiado em uma variável usando ob_get_contents(). Para enviar o que esta no buffer interno, use ob_end_flush(). Alternativamente, ob_end_clean() irá silenciosamente descartar o conteúdo do buffer.

Uma função de callback opcional output_callback também pode ser especificada. Esta função leva uma string coo parâmetro e deve retornar uma string. Esta função será chamada quando ob_end_flush() for chamada, ou quando o buffer de saída for descarregado ao final do script. Quando output_callback for chamada, ela irá receber o conteúdo do buffer como seu parâmetro e é esperado que ela retorne um novo buffer de saída como resultado, o qual será enviado para o browser. Se output_callback não é uma função que possa ser utilizada, esta função irá retornar FALSE.

Nota: No PHP 4.0.4, ob_gzhandler() para facilitar o envio de dados gz-encoded para browsers que suportem paginas web comprimidas. ob_gzhandler() determina o tipo de codificação de conteúdo que o browser aceitará e enviará a sua saída de acordo.

Nota: Antes do PHP 4.3.2 esta função não retornava FALSE caso output_callback não pudesse ser executada.

Buffers de saída são empilháveis, isro é, você pode utilizar ob_start() enquanto outro ob_start() estiver ativo. Apenas tenha certeza que você utiliza ob_end_flush() o número apropriado de vezes. Se multiplas funções de callback de saída estiverem ativas, a saída será filtrada sequencialmente atráves de cada uma delas na ordem de aninhamento.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() e ob_start() não devem ser utilizados dentro de uma função de callback. Se você utiliza-los dentro de uma função de callback, o funcionamento é indefinido. Se você quiser excluir o conteúdo de um buffer, retorne "" (uma string vazia) da função de callback.

Exemplo 1. Exemplo com uma função de callback definida pelo usuário

<?php

function callback($buffer) {

  // replace all the apples with oranges
  return (ereg_replace("apples", "oranges", $buffer));

}

ob_start("callback");

?>

<html>
<body>
<p>It's like comparing apples to oranges.
</body>
</html>

<?php

ob_end_flush();

?>

Irá produzir:

<html>
<body>
<p>It's like comparing oranges to oranges.
</body>
</html>

Veja também ob_get_contents(),
ob_end_flush(),
ob_end_clean(),
ob_implicit_flush() e
ob_gzhandler().

Anterior | Principal | Próxima
ob_list_handlers | Acima | output_add_rewrite_var


output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_var -- Add URL rewriter values

Description

bool output_add_rewrite_var ( string name, string value)

This function rewrite the URLs and forms with the given variable.

Nota: This function buffers the output.

Exemplo 1. output_add_rewrite_var() example

<?php
output_add_rewrite_var('var', 'value');

// a link
echo '<a href="file.php">link</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

The above example will output:

<a href="file.php?var=value">link</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

See also output_reset_rewrite_vars(), ob_flush() and ob_list_handlers().

Anterior | Principal | Próxima
ob_start | Acima | output_reset_rewrite_vars


output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_vars -- Reset URL rewriter values

Description

bool output_reset_rewrite_vars ( void )

This function resets the URL rewriter and undo the changes made by output_add_rewrite_var() and/or by session_start() that are still in the buffer.

Exemplo 1. output_reset_rewrite_vars() example

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

The above example will output:

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

See also output_add_rewrite_var(),
ob_flush(), ob_list_handlers() and
session_start().

Anterior | Principal | Próxima
output_add_rewrite_var | Acima | Sobrecarga de propriedades e métodos de objetos


Sobrecarga de propriedades e métodos de objetos

Manual do PHP
Anterior Próxima

LXXIX. Sobrecarga de propriedades e métodos de objetos

Introdução

O propósito desta extensão é permitir a sobrecarga de propriedades de acesso e metodos de objetos. Somente uma função é definida nesta extensão, overload() que recebe o nome da classe que deve ter esta funcionalidade habilitada. A classe especificada tem que definir os metodos para ter esta funcionalidade: __get(), __set() e __call() respectivamente para leitura/escrita das propriedades, ou chamar um metodo. Desta forma a sobrecarga pode ser seletiva: Dentro destas funções a sobrecarga é desabilitada de forma que você possa acessar propriedades do objeto normalmente.

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

In order to use these functions, you must compile PHP with the --enable-overload option. Starting with PHP 4.3.0 this extension is enabled by default. You can disable overload support with --disable--overload.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Nota: Builtin support for overload is available with PHP 4.3.0.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Alguns exemplos simples da utilização da função overload():

Exemplo 1. Sobrecarga de uma classe no PHP

<?php

class OO
{
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Metodo callback para pegar uma propriedade
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Metodo callback para definir uma propriedade
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Aqui nós sobrecarregamos o objeto OO
overload('OO');

$o = new OO;
print "\$o->a: $o->a\n"; // imprime: $o->a:
print "\$o->b: $o->b\n"; // imprime: $o->b: 9
print "\$o->c: $o->c\n"; // imprime: $o->c: 42
print "\$o->d: $o->d\n"; // imprime: $o->d:

// adicionar um novo intem para o array $elem em OO
$o->x = 56;

// iniciar stdclass (é integrada no PHP 4)
// $var não é sobrecarregada!
$val = new stdclass;
$val->prop = 555;

// Que "a" seja um array com o objeto $val dentro dele
// mas __set() o colocará no array $elem
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

Atenção

Como esta é uma extensão experimental, nem todas as coisas funcionam. Não existe ainda suporte para __call() e você somente pode fazer a sobrecaraga das operações get e set para propriedades. Você não pode invocar as chamadas originais da classe e __set() somente funciona até um nível de acesso de propriedades.

Índice
overload -- Ativa a chamada sobrecarregada de propriedades e métodos para uma classe

Anterior | Principal | Próxima
output_reset_rewrite_vars | Acima | overload


overload

(PHP 4 >= 4.2.0)

overload -- Ativa a chamada sobrecarregada de propriedades e métodos para uma classe

Descrição

void overload ( [string class_name])

A função overload() ativa a chamada sobrecarregada de propriedades e métodos para a classe identificada por class_name. Veja o exemplo na seção introdutória desse módulo.

Anterior | Principal | Próxima
Sobrecarga de propriedades e métodos de objetos | Acima | PDF functions


PDF functions

Manual do PHP
Anterior Próxima

LXXX. PDF functions

Introdução

The PDF functions in PHP can create PDF files using the PDFlib library created by Thomas Merz.

The documentation in this section is only meant to be an overview of the available functions in the PDFlib library and should not be considered an exhaustive reference. Please consult the documentation included in the source distribution of PDFlib for the full and detailed explanation of each function here. It provides a very good overview of what PDFlib is capable of doing and contains the most up-to-date documentation of all functions.

All of the functions in PDFlib and the PHP module have identical function names and parameters. You will need to understand some of the basic concepts of PDF and PostScript to efficiently use this extension. All lengths and coordinates are measured in PostScript points. There are generally 72 PostScript points to an inch, but this depends on the output resolution. Please see the PDFlib documentation included with the source distribution of PDFlib for a more thorough explanation of the coordinate system used.

Please note that most of the PDF functions require a pdfdoc as its first parameter. Please see the examples below for more information.

Nota: If you're interested in alternative free PDF generators that do not utilize external PDF libraries, see this related FAQ.

Requisitos

PDFlib is available for download at http://www.pdflib.com/products/pdflib/index.html, but requires that you purchase a license for commercial use. The JPEG and TIFF libraries are required to compile this extension.

Issues with older versions of PDFlib

Any version of PHP 4 after March 9, 2000 does not support versions of PDFlib older than 3.0.

PDFlib 3.0 or greater is supported by PHP 3.0.19 and later.

Instalação

To get these functions to work, you have to compile PHP with --with-pdflib[=DIR]. DIR is the PDFlib base install directory, defaults to /usr/local. In addition you can specify the jpeg, tiff, and pnglibrary for PDFlib to use, which is optional for PDFlib 4.x. To do so add to your configure line the options --with-jpeg-dir[=DIR] --with-png-dir[=DIR] --with-tiff-dir[=DIR].

When using version 3.x of PDFlib, you should configure PDFlib with the option --enable-shared-pdflib.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Confusion with old PDFlib versions

Starting with PHP 4.0.5, the PHP extension for PDFlib is officially supported by PDFlib GmbH. This means that all the functions described in the PDFlib manual (V3.00 or greater) are supported by PHP 4 with exactly the same meaning and the same parameters. Only the return values may differ from the PDFlib manual, because the PHP convention of returning FALSE was adopted. For compatibility reasons, this binding for PDFlib still supports the old functions, but they should be replaced by their new versions. PDFlib GmbH will not support any problems arising from the use of these deprecated functions.

Tabela 1. Deprecated functions and their replacements

Old function | Replacement
pdf_put_image() | Not needed anymore.
pdf_execute_image() | Not needed anymore.
pdf_get_annotation() | pdf_get_bookmark() using the same parameters.
pdf_get_font() | pdf_get_value() passing "font" as the second parameter.
pdf_get_fontsize() | pdf_get_value() passing "fontsize" as the second parameter.
pdf_get_fontname() | pdf_get_parameter() passing "fontname" as the second parameter.
pdf_set_info_creator() | pdf_set_info() passing "Creator" as the second parameter.
pdf_set_info_title() | pdf_set_info() passing "Title" as the second parameter.
pdf_set_info_subject() | pdf_set_info() passing "Subject" as the second parameter.
pdf_set_info_author() | pdf_set_info() passing "Author" as the second parameter.
pdf_set_info_keywords() | pdf_set_info() passing "Keywords" as the second parameter.
pdf_set_leading() | pdf_set_value() passing "leading" as the second parameter.
pdf_set_text_rendering() | pdf_set_value() passing "textrendering" as the second parameter.
pdf_set_text_rise() | pdf_set_value() passing "textrise" as the second parameter.
pdf_set_horiz_scaling() | pdf_set_value() passing "horizscaling" as the second parameter.
pdf_set_text_matrix() | Not available anymore
pdf_set_char_spacing() | pdf_set_value() passing "charspacing" as the second parameter.
pdf_set_word_spacing() | pdf_set_value() passing "wordspacing" as the second parameter.
pdf_set_transition() | pdf_set_parameter() passing "transition" as the second parameter.
pdf_open() | pdf_new() plus an subsequent call of pdf_open_file()
pdf_set_font() | pdf_findfont() plus an subsequent call of pdf_setfont()
pdf_set_duration() | pdf_set_value() passing "duration" as the second parameter.
pdf_open_gif() | pdf_open_image_file() passing "gif" as the second parameter.
pdf_open_jpeg() | pdf_open_image_file() passing "jpeg" as the second parameter.
pdf_open_tiff() | pdf_open_image_file() passing "tiff" as the second parameter.
pdf_open_png() | pdf_open_image_file() passing "png" as the second parameter.
pdf_get_image_width() | pdf_get_value() passing "imagewidth" as the second parameter and the image as the third parameter.
pdf_get_image_height() | pdf_get_value() passing "imageheight" as the second parameter and the image as the third parameter.

Exemplos

Most of the functions are fairly easy to use. The most difficult part is probably creating your first PDF document. The following example should help to get you started. It creates test.pdf with one page. The page contains the text "Times Roman outlined" in an outlined, 30pt font. The text is also underlined.

Exemplo 1. Creating a PDF document with PDFlib

<?php
$pdf = pdf_new();
pdf_open_file($pdf, "test.pdf");
pdf_set_info($pdf, "Author", "Uwe Steinmann");
pdf_set_info($pdf, "Title", "Test for PHP wrapper of PDFlib 2.0");
pdf_set_info($pdf, "Creator", "See Author");
pdf_set_info($pdf, "Subject", "Testing");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
pdf_setfont($pdf, $font, 10);
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo "<A HREF=getpdf.php>finished</A>";
?>
The script getpdf.php just returns the pdf document.

Exemplo 2. Outputting a precalculated PDF

<?php
$len = filesize($filename);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
readfile($filename);
?>

The PDFlib distribution contains a more complex example which creates a page with an analog clock. Here we use the in-memory creation feature of PDFlib to alleviate the need to use temporary files. The example was converted to PHP from the PDFlib example. (The same example is available in the CLibPDF documentation.)

Exemplo 3. pdfclock example from PDFlib distribution

<?php
$radius = 200;
$margin = 20;
$pagecount = 10;

$pdf = pdf_new();

if (!pdf_open_file($pdf, "")) {
    echo error;
    exit;
};

pdf_set_parameter($pdf, "warning", "true");

pdf_set_info($pdf, "Creator", "pdf_clock.php");
pdf_set_info($pdf, "Author", "Uwe Steinmann");
pdf_set_info($pdf, "Title", "Analog Clock");

while ($pagecount-- > 0) {
    pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));

    pdf_set_parameter($pdf, "transition", "wipe");
    pdf_set_value($pdf, "duration", 0.5);

    pdf_translate($pdf, $radius + $margin, $radius + $margin);
    pdf_save($pdf);
    pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

    /* minute strokes */
    pdf_setlinewidth($pdf, 2.0);
    for ($alpha = 0; $alpha < 360; $alpha += 6) {
        pdf_rotate($pdf, 6.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin/3, 0.0);
        pdf_stroke($pdf);
    }

    pdf_restore($pdf);
    pdf_save($pdf);

    /* 5 minute strokes */
    pdf_setlinewidth($pdf, 3.0);
    for ($alpha = 0; $alpha < 360; $alpha += 30) {
        pdf_rotate($pdf, 30.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin, 0.0);
        pdf_stroke($pdf);
    }

    $ltime = getdate();

    /* draw hour hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius/2, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw minute hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius * 0.8, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw second hand */
    pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
    pdf_setlinewidth($pdf, 2);
    pdf_save($pdf);
    pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    pdf_moveto($pdf, -$radius/5, 0.0);
    pdf_lineto($pdf, $radius, 0.0);
    pdf_stroke($pdf);
    pdf_restore($pdf);

    /* draw little circle at center */
    pdf_circle($pdf, 0, 0, $radius/30);
    pdf_fill($pdf);

    pdf_restore($pdf);

    pdf_end_page($pdf);

    # to see some difference
    sleep(1);
}

pdf_close($pdf);

$buf = pdf_get_buffer($pdf);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
echo $buf;

pdf_delete($pdf);
?>

Veja Também

Nota: An alternative PHP module for PDF document creation based on FastIO's ClibPDF is available. Please see the ClibPDF section for details. Note that ClibPDF has a slightly different API than PDFlib.

Índice
pdf_add_annotation -- Deprecated: Adds annotation
pdf_add_bookmark -- Adds bookmark for current page
pdf_add_launchlink -- Add a launch annotation for current page
pdf_add_locallink -- Add a link annotation for current page
pdf_add_note -- Sets annotation for current page
pdf_add_outline -- Deprecated: Adds bookmark for current page
pdf_add_pdflink -- Adds file link annotation for current page
pdf_add_thumbnail -- Adds thumbnail for current page
pdf_add_weblink -- Adds weblink for current page
pdf_arc -- Draws an arc (counterclockwise)
pdf_arcn -- Draws an arc (clockwise)
pdf_attach_file -- Adds a file attachment for current page
pdf_begin_page -- Starts new page
pdf_begin_pattern -- Starts new pattern
pdf_begin_template -- Starts new template
pdf_circle -- Draws a circle
pdf_clip -- Clips to current path
pdf_close_image -- Closes an image
pdf_close_pdi_page -- Close the page handle
pdf_close_pdi -- Close the input PDF document
pdf_close -- Closes a pdf resource
pdf_closepath_fill_stroke -- Closes, fills and strokes current path
pdf_closepath_stroke -- Closes path and draws line along path
pdf_closepath -- Closes path
pdf_concat -- Concatenate a matrix to the CTM
pdf_continue_text -- Outputs text in next line
pdf_curveto -- Draws a curve
pdf_delete -- Deletes a PDF object
pdf_end_page -- Ends a page
pdf_end_pattern -- Finish pattern
pdf_end_template -- Finish template
pdf_endpath -- Deprecated: Ends current path
pdf_fill_stroke -- Fills and strokes current path
pdf_fill -- Fills current path
pdf_findfont -- Prepare font for later use with pdf_setfont().
pdf_get_buffer -- Fetch the buffer containing the generated PDF data.
pdf_get_font -- Deprecated: font handling
pdf_get_fontname -- Deprecated: font handling
pdf_get_fontsize -- Deprecated: font handling
pdf_get_image_height -- Deprecated: returns height of an image
pdf_get_image_width -- Deprecated: Returns width of an image
pdf_get_majorversion -- Returns the major version number of the PDFlib
pdf_get_minorversion -- Returns the minor version number of the PDFlib
pdf_get_parameter -- Gets certain parameters
pdf_get_pdi_parameter -- Get some PDI string parameters
pdf_get_pdi_value -- Gets some PDI numerical parameters
pdf_get_value -- Gets certain numerical value
pdf_initgraphics -- Resets graphic state
pdf_lineto -- Draws a line
pdf_makespotcolor -- Makes a spotcolor
pdf_moveto -- Sets current point
pdf_new -- Creates a new pdf resource
pdf_open_CCITT -- Opens a new image file with raw CCITT data
pdf_open_file -- Opens a new pdf object
pdf_open_gif -- Deprecated: Opens a GIF image
pdf_open_image_file -- Reads an image from a file
pdf_open_image -- Versatile function for images
pdf_open_jpeg -- Deprecated: Opens a JPEG image
pdf_open_memory_image -- Opens an image created with PHP's image functions
pdf_open_pdi_page -- Prepare a page
pdf_open_pdi -- Opens a PDF file
pdf_open_png -- Deprecated: Opens a PNG image
pdf_open_tiff -- Deprecated: Opens a TIFF image
pdf_open -- Deprecated: Open a new pdf object
pdf_place_image -- Places an image on the page
pdf_place_pdi_page -- Places an image on the page
pdf_rect -- Draws a rectangle
pdf_restore -- Restores formerly saved environment
pdf_rotate -- Sets rotation
pdf_save -- Saves the current environment
pdf_scale -- Sets scaling
pdf_set_border_color -- Sets color of border around links and annotations
pdf_set_border_dash -- Sets dash style of border around links and annotations
pdf_set_border_style -- Sets style of border around links and annotations
pdf_set_char_spacing -- Deprecated: Sets character spacing
pdf_set_duration -- Deprecated: Sets duration between pages
pdf_set_font -- Deprecated: Selects a font face and size
pdf_set_horiz_scaling -- Sets horizontal scaling of text [deprecated]
pdf_set_info_author -- Deprecated: Fills the author field of the document
pdf_set_info_creator -- Deprecated: Fills the creator field of the document
pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document
pdf_set_info_subject -- Deprecated: Fills the subject field of the document
pdf_set_info_title -- Deprecated: Fills the title field of the document
pdf_set_info -- Fills a field of the document information
pdf_set_leading -- Deprecated: Sets distance between text lines
pdf_set_parameter -- Sets certain parameters
pdf_set_text_matrix -- Deprecated: Sets the text matrix
pdf_set_text_pos -- Sets text position
pdf_set_text_rendering -- Deprecated: Determines how text is rendered
pdf_set_text_rise -- Deprecated: Sets the text rise
pdf_set_value -- Sets certain numerical value
pdf_set_word_spacing -- Deprecated: Sets spacing between words
pdf_setcolor -- Sets fill and stroke color
pdf_setdash -- Sets dash pattern
pdf_setflat -- Sets flatness
pdf_setfont -- Set the current font
pdf_setgray_fill -- Sets filling color to gray value
pdf_setgray_stroke -- Sets drawing color to gray value
pdf_setgray -- Sets drawing and filling color to gray value
pdf_setlinecap -- Sets linecap parameter
pdf_setlinejoin -- Sets linejoin parameter
pdf_setlinewidth -- Sets line width
pdf_setmatrix -- Sets current transformation matrix
pdf_setmiterlimit -- Sets miter limit
pdf_setpolydash -- Deprecated: Sets complicated dash pattern
pdf_setrgbcolor_fill -- Sets filling color to rgb color value
pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
pdf_setrgbcolor -- Sets drawing and filling color to rgb color value
pdf_show_boxed -- Output text in a box
pdf_show_xy -- Output text at given position
pdf_show -- Output text at current position
pdf_skew -- Skews the coordinate system
pdf_stringwidth -- Returns width of text using current font
pdf_stroke -- Draws line along path
pdf_translate -- Sets origin of coordinate system

Anterior | Principal | Próxima
overload | Acima | pdf_add_annotation


pdf_add_annotation

pdf_add_annotation -- Deprecated: Adds annotation

Description

This function is deprecated, use pdf_add_note() instead.

Anterior | Principal | Próxima
PDF functions | Acima | pdf_add_bookmark


pdf_add_bookmark

(PHP 4 >= 4.0.1, PHP 5)

pdf_add_bookmark -- Adds bookmark for current page

Description

int pdf_add_bookmark ( resource pdfdoc, string text [, int parent [, int open]])

Add a nested bookmark under parent, or a new top-level bookmark if parent = 0. Returns a bookmark descriptor which may be used as parent for subsequent nested bookmarks. If open = 1, child bookmarks will be folded out, and invisible if open = 0.

Exemplo 1. pdf_add_bookmark() example

<?php
// create a new PDF

$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author", "Bob Nijman");

// begin a new page
pdf_begin_page($pdf, 300, 300);

// add a top-level bookmark
$bookmark = pdf_add_bookmark($pdf, "People");

// add a nested bookmark
pdf_add_bookmark($pdf, "Rasmus", $bookmark);

// and some text
pdf_set_font($pdf, "Helvetica", 20, "host");
$text = "This is R's page";
$width = pdf_stringwidth($pdf, $text);
pdf_set_text_pos($pdf, (300-$width)/2, 100);
pdf_show($pdf, $text);

// close the page and the PDF
pdf_end_page($pdf);
pdf_close($pdf);

?>

Anterior | Principal | Próxima
pdf_add_annotation | Acima | pdf_add_launchlink


pdf_add_launchlink

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_launchlink -- Add a launch annotation for current page

Description

bool pdf_add_launchlink ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename)

Adds a link to a web resource specified by filename. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_add_locallink().

Anterior | Principal | Próxima
pdf_add_bookmark | Acima | pdf_add_locallink


pdf_add_locallink

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_locallink -- Add a link annotation for current page

Description

bool pdf_add_locallink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, int page, string dest)

Add a link annotation to a target within the current PDF file. Retorna TRUE em caso de sucesso ou FALSE em falhas.

dest is the zoom setting on the destination page, it can be one of retain, fitpage, fitwidth, fitheight or fitbbox.

See also pdf_add_launchlink().

Anterior | Principal | Próxima
pdf_add_launchlink | Acima | pdf_add_note


pdf_add_note

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_note -- Sets annotation for current page

Description

bool pdf_add_note ( resource pdfdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open)

Sets an annotation for the current page. icon is one of comment, insert, note, paragraph, newparagraph, key, or help. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_add_locallink | Acima | pdf_add_outline


pdf_add_outline

pdf_add_outline -- Deprecated: Adds bookmark for current page

Description

This function is deprecated, use pdf_add_bookmark() instead.

Anterior | Principal | Próxima
pdf_add_note | Acima | pdf_add_pdflink


pdf_add_pdflink

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_pdflink -- Adds file link annotation for current page

Description

bool pdf_add_pdflink ( resource pdfdoc, float bottom_left_x, float bottom_left_y, float up_right_x, float up_right_y, string filename, int page, string dest)

Add a file link annotation (to a PDF target). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_add_locallink() and pdf_add_weblink().

Anterior | Principal | Próxima
pdf_add_outline | Acima | pdf_add_thumbnail


pdf_add_thumbnail

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_thumbnail -- Adds thumbnail for current page

Description

bool pdf_add_thumbnail ( resource pdfdoc, int image)

Adds an existing image as thumbnail for the current page. Thumbnail images must not be wider or higher than 106 pixels. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_open_image(),
pdf_open_image_file(),
pdf_open_memory_image().

Anterior | Principal | Próxima
pdf_add_pdflink | Acima | pdf_add_weblink


pdf_add_weblink

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_weblink -- Adds weblink for current page

Description

bool pdf_add_weblink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, string url)

Add a weblink annotation to a target url on the Web. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_add_thumbnail | Acima | pdf_arc


pdf_arc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_arc -- Draws an arc (counterclockwise)

Description

bool pdf_arc ( resource pdfdoc, float x, float y, float r, float alpha, float beta)

Add a counterclockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Exemplo 1. pdf_arcn() example

<?php
// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arc
pdf_arc($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arc
pdf_arc($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arc
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arc($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arcn(),
pdf_circle(), pdf_stroke(),
pdf_fill() and pdf_fill_stroke().

Anterior | Principal | Próxima
pdf_add_weblink | Acima | pdf_arcn


pdf_arcn

(PHP 4 >= 4.0.5, PHP 5)

pdf_arcn -- Draws an arc (clockwise)

Description

bool pdf_arcn ( resource pdfdoc, float x, float y, float r, float alpha, float beta)

Add a clockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Exemplo 1. pdf_arcn() example

<?php

// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arcn
pdf_arcn($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arcn
pdf_arcn($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arcn
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arcn($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(), pdf_circle(),
pdf_stroke(), pdf_fill() and
pdf_fillstroke().

Anterior | Principal | Próxima
pdf_arc | Acima | pdf_attach_file


pdf_attach_file

(PHP 4 >= 4.0.5, PHP 5)

pdf_attach_file -- Adds a file attachment for current page

Description

bool pdf_attach_file ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename, string description, string author, string mimetype, string icon)

Add a file attachment annotation. icon is one of graph, paperclip, pushpin, or tag. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Only the 'Full' Acrobat software will be able to display these file attachments. All other PDF viewers will either show nothing or display a question mark.

Anterior | Principal | Próxima
pdf_arcn | Acima | pdf_begin_page


pdf_begin_page

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_begin_page -- Starts new page

Description

bool pdf_begin_page ( resource pdfdoc, float width, float height)

Add a new page to the document. Retorna TRUE em caso de sucesso ou FALSE em falhas. The width and height are specified in points, which are 1/72 of an inch.

Tabela 1. Common Page Sizes in Points

name | size
A0 | 2380✗3368
A1 | 1684✗2380
A2 | 1190✗1684
A3 | 842✗1190
A4 | 595✗842
A5 | 421✗595
A6 | 297✗421
B5 | 501✗709
letter (8.5"✗11") | 612✗792
legal (8.5"✗14") | 612✗1008
ledger (17"✗11") | 1224✗792
11"✗17" | 792✗1224

See also pdf_end_page().

Anterior | Principal | Próxima
pdf_attach_file | Acima | pdf_begin_pattern


pdf_begin_pattern

(PHP 4 >= 4.0.5, PHP 5)

pdf_begin_pattern -- Starts new pattern

Description

int pdf_begin_pattern ( resource pdfdoc, float width, float height, float xstep, float ystep, int painttype)

Starts a new pattern definition and returns a pattern handle. width, and height define the bounding box for the pattern. xstep and ystep give the repeated pattern offsets. painttype=1 means that the pattern has its own colour settings whereas a value of 2 indicates that the current colour is used when the pattern is applied.

See also pdf_end_pattern().

Anterior | Principal | Próxima
pdf_begin_page | Acima | pdf_begin_template


pdf_begin_template

(PHP 4 >= 4.0.5, PHP 5)

pdf_begin_template -- Starts new template

Description

int pdf_begin_template ( resource pdfdoc, float width, float height)

Start a new template definition.

Anterior | Principal | Próxima
pdf_begin_pattern | Acima | pdf_circle


pdf_circle

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_circle -- Draws a circle

Description

bool pdf_circle ( resource pdfdoc, float x, float y, float r)

Add a circle with center (x, y) and radius r to the current page. Actual drawing of the circle is performed by the next stroke or fill operation.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. pdf_circle() example

<?php
// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined circle
pdf_circle($pdf, 200, 700, 100);
pdf_stroke($pdf);

    // a filled circle
pdf_circle($pdf, 200, 700, 50);
pdf_fill($pdf);

// an outlined and filled circle
pdf_setcolor($pdf, "fill", "gray", 0.3);
pdf_circle($pdf, 400, 700, 50);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(),
pdf_arcn(), pdf_curveto(),
pdf_stroke(), pdf_fill() and
pdf_fill_stroke().

Anterior | Principal | Próxima
pdf_begin_template | Acima | pdf_clip


pdf_clip

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_clip -- Clips to current path

Description

bool pdf_clip ( resource pdfdoc)

Use the current path as clipping path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_circle | Acima | pdf_close_image


pdf_close_image

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_close_image -- Closes an image

Description

void pdf_close_image ( resource pdfdoc, int image)

Close an image retrieved with the pdf_open_image() function.

Anterior | Principal | Próxima
pdf_clip | Acima | pdf_close_pdi_page


pdf_close_pdi_page

(PHP 4 >= 4.0.5, PHP 5)

pdf_close_pdi_page -- Close the page handle

Description

bool pdf_close_pdi_page ( resource pdfdoc, int pagehandle)

Close the page handle, and free all page-related resources. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_close_image | Acima | pdf_close_pdi


pdf_close_pdi

(PHP 4 >= 4.0.5, PHP 5)

pdf_close_pdi -- Close the input PDF document

Description

bool pdf_close_pdi ( resource pdfdoc, int dochandle)

Close all open page handles, and close the input PDF document. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_open_pdi().

Anterior | Principal | Próxima
pdf_close_pdi_page | Acima | pdf_close


pdf_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_close -- Closes a pdf resource

Description

bool pdf_close ( resource pdfdoc)

Close the generated PDF file, and free all document-related resources. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_new().

Anterior | Principal | Próxima
pdf_close_pdi | Acima | pdf_closepath_fill_stroke


pdf_closepath_fill_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath_fill_stroke -- Closes, fills and strokes current path

Description

bool pdf_closepath_fill_stroke ( resource pdfdoc)

Close the path, fill, and stroke it. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_closepath() and pdf_closepath_stroke().

Anterior | Principal | Próxima
pdf_close | Acima | pdf_closepath_stroke


pdf_closepath_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath_stroke -- Closes path and draws line along path

Description

bool pdf_closepath_stroke ( resource pdfdoc)

Close the path, and stroke it. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_closepath() and pdf_closepath_fil_stroke().

Anterior | Principal | Próxima
pdf_closepath_fill_stroke | Acima | pdf_closepath


pdf_closepath

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath -- Closes path

Description

bool pdf_closepath ( resource pdfdoc)

Close the current path. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_closepath_stroke() and pdf_closepath_fil_stroke().

Anterior | Principal | Próxima
pdf_closepath_stroke | Acima | pdf_concat


pdf_concat

(PHP 4 >= 4.0.5, PHP 5)

pdf_concat -- Concatenate a matrix to the CTM

Description

bool pdf_concat ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Concatenate a matrix to the CTM. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_closepath | Acima | pdf_continue_text


pdf_continue_text

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_continue_text -- Outputs text in next line

Description

bool pdf_continue_text ( resource pdfdoc, string text)

Print text at the next line. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_concat | Acima | pdf_curveto


pdf_curveto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_curveto -- Draws a curve

Description

bool pdf_curveto ( resource pdfdoc, float x1, float y1, float x2, float y2, float x3, float y3)

Draw a Bezier curve from the current point, using 3 more control points. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_continue_text | Acima | pdf_delete


pdf_delete

(PHP 4 >= 4.0.5, PHP 5)

pdf_delete -- Deletes a PDF object

Description

bool pdf_delete ( resource pdfdoc)

Delete the PDF resource, and free all internal resources. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_new().

Anterior | Principal | Próxima
pdf_curveto | Acima | pdf_end_page


pdf_end_page

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_end_page -- Ends a page

Description

bool pdf_end_page ( resource pdfdoc)

Finish the page. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_begin_page().

Anterior | Principal | Próxima
pdf_delete | Acima | pdf_end_pattern


pdf_end_pattern

(PHP 4 >= 4.0.5, PHP 5)

pdf_end_pattern -- Finish pattern

Description

bool pdf_end_pattern ( resource pdfdoc)

Finish the pattern definition. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_begin_pattern().

Anterior | Principal | Próxima
pdf_end_page | Acima | pdf_end_template


pdf_end_template

(PHP 4 >= 4.0.5, PHP 5)

pdf_end_template -- Finish template

Description

bool pdf_end_template ( resource pdfdoc)

Finish the template definition. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_end_pattern | Acima | pdf_endpath


pdf_endpath

pdf_endpath -- Deprecated: Ends current path

Description

This function is deprecated, use one of the pdf_stroke(), pdf_clip() or pdf_closepath_fill_stroke() functions instead.

Anterior | Principal | Próxima
pdf_end_template | Acima | pdf_fill_stroke


pdf_fill_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_fill_stroke -- Fills and strokes current path

Description

bool pdf_fill_stroke ( resource pdfdoc)

Fill and stroke the path with the current fill and stroke color. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_setcolor().

Anterior | Principal | Próxima
pdf_endpath | Acima | pdf_fill


pdf_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_fill -- Fills current path

Description

bool pdf_fill ( resource pdfdoc)

Fill the interior of the path with the current fill color. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_setcolor().

Anterior | Principal | Próxima
pdf_fill_stroke | Acima | pdf_findfont


pdf_findfont

(PHP 4 >= 4.0.5, PHP 5)

pdf_findfont -- Prepare font for later use with pdf_setfont().

Description

int pdf_findfont ( resource pdfdoc, string fontname, string encoding [, int embed])

Prepare a font for later use with pdf_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap.

pdf_findfont() returns a font handle or FALSE on error.

Exemplo 1. pdf_findfont() example

<?php

$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
if ($font) {
    pdf_setfont($pdf, $font, 10);
}

?>

Anterior | Principal | Próxima
pdf_fill | Acima | pdf_get_buffer


pdf_get_buffer

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_buffer -- Fetch the buffer containing the generated PDF data.

Description

string pdf_get_buffer ( resource pdfdoc)

Get the contents of the PDF output buffer. The result must be used by the client before calling any other PDFlib function.

Anterior | Principal | Próxima
pdf_findfont | Acima | pdf_get_font


pdf_get_font

pdf_get_font -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Principal | Próxima
pdf_get_buffer | Acima | pdf_get_fontname


pdf_get_fontname

pdf_get_fontname -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_parameter() instead.

Anterior | Principal | Próxima
pdf_get_font | Acima | pdf_get_fontsize


pdf_get_fontsize

pdf_get_fontsize -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Principal | Próxima
pdf_get_fontname | Acima | pdf_get_image_height


pdf_get_image_height

pdf_get_image_height -- Deprecated: returns height of an image

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Principal | Próxima
pdf_get_fontsize | Acima | pdf_get_image_width


pdf_get_image_width

pdf_get_image_width -- Deprecated: Returns width of an image

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Principal | Próxima
pdf_get_image_height | Acima | pdf_get_majorversion


pdf_get_majorversion

(PHP 4 >= 4.2.0, PHP 5)

pdf_get_majorversion -- Returns the major version number of the PDFlib

Description

int pdf_get_majorversion ( void )

Returns the major version number of the PDFlib.

See also pdf_get_minorversion().

Anterior | Principal | Próxima
pdf_get_image_width | Acima | pdf_get_minorversion


pdf_get_minorversion

(PHP 4 >= 4.2.0, PHP 5)

pdf_get_minorversion -- Returns the minor version number of the PDFlib

Description

int pdf_get_minorversion ( void )

Returns the minor version number of the PDFlib.

See also pdf_get_majorversion().

Anterior | Principal | Próxima
pdf_get_majorversion | Acima | pdf_get_parameter


pdf_get_parameter

(PHP 4 >= 4.0.1, PHP 5)

pdf_get_parameter -- Gets certain parameters

Description

string pdf_get_parameter ( resource pdfdoc, string key [, float modifier])

Get the contents of some PDFlib parameter with string type.

Anterior | Principal | Próxima
pdf_get_minorversion | Acima | pdf_get_pdi_parameter


pdf_get_pdi_parameter

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_pdi_parameter -- Get some PDI string parameters

Description

string pdf_get_pdi_parameter ( resource pdfdoc, string key, int document, int page, int index)

Get the contents of some PDI document parameter with string type.

Anterior | Principal | Próxima
pdf_get_parameter | Acima | pdf_get_pdi_value


pdf_get_pdi_value

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_pdi_value -- Gets some PDI numerical parameters

Description

string pdf_get_pdi_value ( resource pdfdoc, string key, int doc, int page, int index)

Get the contents of some PDI document parameter with numerical type.

Anterior | Principal | Próxima
pdf_get_pdi_parameter | Acima | pdf_get_value


pdf_get_value

(PHP 4 >= 4.0.1, PHP 5)

pdf_get_value -- Gets certain numerical value

Description

float pdf_get_value ( resource pdfdoc, string key [, float modifier])

Get the contents of some PDFlib parameter with float type.

Anterior | Principal | Próxima
pdf_get_pdi_value | Acima | pdf_initgraphics


pdf_initgraphics

(PHP 4 >= 4.0.5, PHP 5)

pdf_initgraphics -- Resets graphic state

Description

bool pdf_initgraphics ( resource pdfdoc)

Reset all implicit color and graphics state parameters to their defaults. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_get_value | Acima | pdf_lineto


pdf_lineto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_lineto -- Draws a line

Description

bool pdf_lineto ( resource pdfdoc, float x, float y)

Draw a line from the current point to (x, y). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_initgraphics | Acima | pdf_makespotcolor


pdf_makespotcolor

(PHP 4 >= 4.0.5, PHP 5)

pdf_makespotcolor -- Makes a spotcolor

Description

bool pdf_makespotcolor ( resource pdfdoc, string spotname)

Make a named spot color from the current color. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_setcolor().

Anterior | Principal | Próxima
pdf_lineto | Acima | pdf_moveto


pdf_moveto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_moveto -- Sets current point

Description

bool pdf_moveto ( resource pdfdoc, float x, float y)

Set the current point to (x, y. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: The current point for graphics and the current text output position are maintained separately. See pdf_set_text_pos() to set the text output position.

Anterior | Principal | Próxima
pdf_makespotcolor | Acima | pdf_new


pdf_new

(PHP 4 >= 4.0.5, PHP 5)

pdf_new -- Creates a new pdf resource

Description

resource pdf_new ( )

Create a new PDF resource, using default error handling and memory management.

See also pdf_close().

Anterior | Principal | Próxima
pdf_moveto | Acima | pdf_open_CCITT


pdf_open_CCITT

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_CCITT -- Opens a new image file with raw CCITT data

Description

int pdf_open_CCITT ( resource pdfdoc, string filename, int width, int height, int BitReverse, int k, int Blackls1)

Open a raw CCITT image.

Anterior | Principal | Próxima
pdf_new | Acima | pdf_open_file


pdf_open_file

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_file -- Opens a new pdf object

Description

bool pdf_open_file ( resource pdfdoc [, string filename])

Create a new PDF file using the supplied file name. If filename is empty the PDF document will be generated in memory instead of on file. The result must be fetched by the client with the pdf_get_buffer() function. Retorna TRUE em caso de sucesso ou FALSE em falhas.

The following example shows how to create a pdf document in memory and how to output it correctly.

Exemplo 1. Creating a PDF document in memory

<?php

$pdf = pdf_new();

pdf_open_file($pdf);
pdf_begin_page($pdf, 595, 842);
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));

echo $data;

?>

Anterior | Principal | Próxima
pdf_open_CCITT | Acima | pdf_open_gif


pdf_open_gif

pdf_open_gif -- Deprecated: Opens a GIF image

Description

This function is deprecated, use pdf_open_image() instead.

Anterior | Principal | Próxima
pdf_open_file | Acima | pdf_open_image_file


pdf_open_image_file

(PHP 3 CVS only, PHP 4 , PHP 5)

pdf_open_image_file -- Reads an image from a file

Description

int pdf_open_image_file ( resource pdfdoc, string imagetype, string filename [, string stringparam [, string intparam]])

Open an image file. Supported types are jpeg, tiff, gif, and png. stringparam is either , mask, masked, or page. intparamis either 0, the image id of the applied mask, or the page.

Anterior | Principal | Próxima
pdf_open_gif | Acima | pdf_open_image


pdf_open_image

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_image -- Versatile function for images

Description

int pdf_open_image ( resource PDF-document, string imagetype, string source, string data, long length, int width, int height, int components, int bpc, string params)

Use image data from a variety of data sources. Supported types are jpeg, ccitt, raw. Supported sources are memory, fileref, url. len is only used when type is raw, params is only used when type is ccitt.

Anterior | Principal | Próxima
pdf_open_image_file | Acima | pdf_open_jpeg


pdf_open_jpeg

pdf_open_jpeg -- Deprecated: Opens a JPEG image

Description

This function is deprecated, use pdf_open_image() instead.

Anterior | Principal | Próxima
pdf_open_image | Acima | pdf_open_memory_image


pdf_open_memory_image

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

pdf_open_memory_image -- Opens an image created with PHP's image functions

Description

int pdf_open_memory_image ( resource pdfdoc, resource image)

The pdf_open_memory_image() function takes an image created with the PHP's image functions and makes it available for the pdf resource. The function returns a pdf image identifier.

Exemplo 1. Including a memory image

<?php
$im = imagecreate(100, 100);
$col = imagecolorallocate($im, 80, 45, 190);
imagefill($im, 10, 10, $col);
$pim = pdf_open_memory_image($pdf, $im);
imagedestroy($im);
pdf_place_image($pdf, $pim, 100, 100, 1);
pdf_close_image($pdf, $pim);
?>

See also pdf_close_image() and pdf_place_image().

Anterior | Principal | Próxima
pdf_open_jpeg | Acima | pdf_open_pdi_page


pdf_open_pdi_page

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_pdi_page -- Prepare a page

Description

int pdf_open_pdi_page ( resource pdfdoc, int dochandle, int pagenumber, string pagelabel)

Prepare a page for later use with pdf_place_image()

Anterior | Principal | Próxima
pdf_open_memory_image | Acima | pdf_open_pdi


pdf_open_pdi

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_pdi -- Opens a PDF file

Description

int pdf_open_pdi ( resource pdfdoc, string filename, string stringparam, int intparam)

Opens an existing PDF document and prepares it for later use.

See also pdf_close_pdi().

Anterior | Principal | Próxima
pdf_open_pdi_page | Acima | pdf_open_png


pdf_open_png

pdf_open_png -- Deprecated: Opens a PNG image

Description

This function is deprecated, use pdf_open_image() instead.

Anterior | Principal | Próxima
pdf_open_pdi | Acima | pdf_open_tiff


pdf_open_tiff

pdf_open_tiff -- Deprecated: Opens a TIFF image

Description

This function is deprecated, use pdf_open_image() instead.

Anterior | Principal | Próxima
pdf_open_png | Acima | pdf_open


pdf_open

pdf_open -- Deprecated: Open a new pdf object

Description

This function is deprecated, use pdf_new() plus pdf_open_file() instead.

Anterior | Principal | Próxima
pdf_open_tiff | Acima | pdf_place_image


pdf_place_image

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_place_image -- Places an image on the page

Description

bool pdf_place_image ( resource pdfdoc, int image, float x, float y, float scale)

Place an image with the lower left corner at (x, y), and scale it. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_open | Acima | pdf_place_pdi_page


pdf_place_pdi_page

(PHP 4 >= 4.0.6, PHP 5)

pdf_place_pdi_page -- Places an image on the page

Description

bool pdf_place_pdi_page ( resource pdfdoc, int page, float x, float y, float sx, float sy)

Place a PDI page with the lower left corner at (x, y), and scale it. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_place_image | Acima | pdf_rect


pdf_rect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_rect -- Draws a rectangle

Description

bool pdf_rect ( resource pdfdoc, float x, float y, float width, float height)

Draw a (width * height) rectangle at lower left (x, y). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_place_pdi_page | Acima | pdf_restore


pdf_restore

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_restore -- Restores formerly saved environment

Description

bool pdf_restore ( resource pdfdoc)

Restore the most recently saved graphics state. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_rect | Acima | pdf_rotate


pdf_rotate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_rotate -- Sets rotation

Description

bool pdf_rotate ( resource pdfdoc, float phi)

Rotate the coordinate system by phi degrees. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_restore | Acima | pdf_save


pdf_save

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_save -- Saves the current environment

Description

bool pdf_save ( resource pdfdoc)

Save the current graphics state. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_rotate | Acima | pdf_scale


pdf_scale

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_scale -- Sets scaling

Description

bool pdf_scale ( resource pdfdoc, float x-scale, float y-scale)

Scale the coordinate system. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_save | Acima | pdf_set_border_color


pdf_set_border_color

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_set_border_color -- Sets color of border around links and annotations

Description

bool pdf_set_border_color ( resource pdfdoc, float red, float green, float blue)

Set the border color for all kinds of annotations. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_scale | Acima | pdf_set_border_dash


pdf_set_border_dash

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_border_dash -- Sets dash style of border around links and annotations

Description

bool pdf_set_border_dash ( resource pdfdoc, float black, float white)

Sets the border dash style for all kinds of annotations. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_setdash().

Anterior | Principal | Próxima
pdf_set_border_color | Acima | pdf_set_border_style


pdf_set_border_style

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_set_border_style -- Sets style of border around links and annotations

Description

bool pdf_set_border_style ( resource pdfdoc, string style, float width)

Sets the border style for all kinds of annotations. style is solid or dashed. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_set_border_dash | Acima | pdf_set_char_spacing


pdf_set_char_spacing

pdf_set_char_spacing -- Deprecated: Sets character spacing

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_border_style | Acima | pdf_set_duration


pdf_set_duration

pdf_set_duration -- Deprecated: Sets duration between pages

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_char_spacing | Acima | pdf_set_font


pdf_set_font

pdf_set_font -- Deprecated: Selects a font face and size

Description

This function is deprecated, use pdf_findfont() plus pdf_setfont() instead.

Anterior | Principal | Próxima
pdf_set_duration | Acima | pdf_set_horiz_scaling


pdf_set_horiz_scaling

pdf_set_horiz_scaling -- Sets horizontal scaling of text [deprecated]

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_font | Acima | pdf_set_info_author


pdf_set_info_author

pdf_set_info_author -- Deprecated: Fills the author field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Principal | Próxima
pdf_set_horiz_scaling | Acima | pdf_set_info_creator


pdf_set_info_creator

pdf_set_info_creator -- Deprecated: Fills the creator field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Principal | Próxima
pdf_set_info_author | Acima | pdf_set_info_keywords


pdf_set_info_keywords

pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Principal | Próxima
pdf_set_info_creator | Acima | pdf_set_info_subject


pdf_set_info_subject

pdf_set_info_subject -- Deprecated: Fills the subject field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Principal | Próxima
pdf_set_info_keywords | Acima | pdf_set_info_title


pdf_set_info_title

pdf_set_info_title -- Deprecated: Fills the title field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Principal | Próxima
pdf_set_info_subject | Acima | pdf_set_info


pdf_set_info

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_info -- Fills a field of the document information

Description

bool pdf_set_info ( resource pdfdoc, string key, string value)

Fill document information field key with value. Retorna TRUE em caso de sucesso ou FALSE em falhas. key is one of Subject, Title, Creator, Author, Keywords, or a user-defined key.

Anterior | Principal | Próxima
pdf_set_info_title | Acima | pdf_set_leading


pdf_set_leading

pdf_set_leading -- Deprecated: Sets distance between text lines

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_info | Acima | pdf_set_parameter


pdf_set_parameter

(PHP 4 , PHP 5)

pdf_set_parameter -- Sets certain parameters

Description

bool pdf_set_parameter ( resource pdfdoc, string key, string value)

Sets some PDFlib parameters with string type. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_set_value().

Anterior | Principal | Próxima
pdf_set_leading | Acima | pdf_set_text_matrix


pdf_set_text_matrix

pdf_set_text_matrix -- Deprecated: Sets the text matrix

Description

This function is deprecated, use pdf_set_paramter() instead.

Anterior | Principal | Próxima
pdf_set_parameter | Acima | pdf_set_text_pos


pdf_set_text_pos

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_text_pos -- Sets text position

Description

bool pdf_set_text_pos ( resource pdfdoc, float x, float y)

Set the text output position specified by x and y. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_set_text_matrix | Acima | pdf_set_text_rendering


pdf_set_text_rendering

pdf_set_text_rendering -- Deprecated: Determines how text is rendered

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_text_pos | Acima | pdf_set_text_rise


pdf_set_text_rise

pdf_set_text_rise -- Deprecated: Sets the text rise

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_text_rendering | Acima | pdf_set_value


pdf_set_value

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_value -- Sets certain numerical value

Description

bool pdf_set_value ( resource pdfdoc, string key, float value)

Set the value of some PDFlib parameter with float type. Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_set_parameter().

Anterior | Principal | Próxima
pdf_set_text_rise | Acima | pdf_set_word_spacing


pdf_set_word_spacing

pdf_set_word_spacing -- Deprecated: Sets spacing between words

Description

This function is deprecated, use pdf_set_value() instead.

Anterior | Principal | Próxima
pdf_set_value | Acima | pdf_setcolor


pdf_setcolor

(PHP 4 >= 4.0.5, PHP 5)

pdf_setcolor -- Sets fill and stroke color

Description

bool pdf_setcolor ( resource pdfdoc, string type, string colorspace, float c1 [, float c2 [, float c3 [, float c4]]])

Set the current color space and color. Retorna TRUE em caso de sucesso ou FALSE em falhas. The parameter type can be fill, stroke or both to specify that the color is set for filling, stroking or both filling and stroking. The parameter colorspace can be gray, rgb, cmyk, spot or pattern. The parameters c1, c2, c3 and c4 represent the color components for the color space specified by colorspace. Except as otherwise noted, the color components are floating-point values that range from 0 to 1.

For gray only c1 is used.

For rgb parameters c1, c2, and c3 specify the red, green and blue values respectively.

<?php
// Set fill and stroke colors to white.
pdf_setcolor($pdf, "both", "rgb", 1, 1, 1);
?>

For cmyk, parameters c1, c2, c3, and c4 are the cyan, magenta, yellow and black values, respectively.

<?php
// Set fill and stroke colors to black.
pdf_setcolor($pdf, "both", "cmyk", 0, 0, 0, 1);
?>

For spot, c1 should be a spot color handles returned by pdf_makespotcolor() and c2 is a tint value between 0 and 1.

For pattern, c1 should be a pattern handle returned by pdf_begin_pattern().

Anterior | Principal | Próxima
pdf_set_word_spacing | Acima | pdf_setdash


pdf_setdash

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setdash -- Sets dash pattern

Description

bool pdf_setdash ( resource pdfdoc, float b, float w)

Set the current dash pattern to b black and w white units. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_setcolor | Acima | pdf_setflat


pdf_setflat

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setflat -- Sets flatness

Description

bool pdf_setflat ( resource pdfdoc, float flatness)

Sets the flatness to a value between 0 and 100 inclusive. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_setdash | Acima | pdf_setfont


pdf_setfont

(PHP 4 >= 4.0.5, PHP 5)

pdf_setfont -- Set the current font

Description

bool pdf_setfont ( resource pdfdoc, int font, float size)

Set the current font in the given size, using a font handle returned by pdf_findfont(). Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also pdf_findfont().

Anterior | Principal | Próxima
pdf_setflat | Acima | pdf_setgray_fill


pdf_setgray_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray_fill -- Sets filling color to gray value

Description

bool pdf_setgray_fill ( resource pdfdoc, float gray)

Set the current fill color to a gray value between 0 and 1 inclusive. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Anterior | Principal | Próxima
pdf_setfont | Acima | pdf_setgray_stroke


pdf_setgray_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray_stroke -- Sets drawing color to gray value

Description

bool pdf_setgray_stroke ( resource pdfdoc, float gray)

Set the current stroke color to a gray value between 0 and 1 inclusive. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Anterior | Principal | Próxima
pdf_setgray_fill | Acima | pdf_setgray


pdf_setgray

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray -- Sets drawing and filling color to gray value

Description

bool pdf_setgray ( resource pdfdoc, float gray)

Set the current fill and stroke color. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Anterior | Principal | Próxima
pdf_setgray_stroke | Acima | pdf_setlinecap


pdf_setlinecap

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinecap -- Sets linecap parameter

Description

void pdf_setlinecap ( resource pdfdoc, int linecap)

Set the linecap parameter to a value between 0 and 2 inclusive.

Anterior | Principal | Próxima
pdf_setgray | Acima | pdf_setlinejoin


pdf_setlinejoin

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinejoin -- Sets linejoin parameter

Description

bool pdf_setlinejoin ( resource pdfdoc, int value)

Sets the line join parameter to a value between 0 and 2 inclusive. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_setlinecap | Acima | pdf_setlinewidth


pdf_setlinewidth

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinewidth -- Sets line width

Description

void pdf_setlinewidth ( resource pdfdoc, float width)

Sets the current linewidth to width. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_setlinejoin | Acima | pdf_setmatrix


pdf_setmatrix

(PHP 4 >= 4.0.5, PHP 5)

pdf_setmatrix -- Sets current transformation matrix

Description

bool pdf_setmatrix ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Explicitly set the current transformation matrix. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_setlinewidth | Acima | pdf_setmiterlimit


pdf_setmiterlimit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setmiterlimit -- Sets miter limit

Description

bool pdf_setmiterlimit ( resource pdfdoc, float miter)

Set the miter limit to a value greater than or equal to 1. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_setmatrix | Acima | pdf_setpolydash


pdf_setpolydash

pdf_setpolydash -- Deprecated: Sets complicated dash pattern

Description

This function is deprecated, use pdf_setdash() instead.

Anterior | Principal | Próxima
pdf_setmiterlimit | Acima | pdf_setrgbcolor_fill


pdf_setrgbcolor_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor_fill -- Sets filling color to rgb color value

Description

bool pdf_setrgbcolor_fill ( resource pdfdoc, float red_value, float green_value, float blue_value)

Set the current fill color to the supplied RGB values. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Anterior | Principal | Próxima
pdf_setpolydash | Acima | pdf_setrgbcolor_stroke


pdf_setrgbcolor_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

bool pdf_setrgbcolor_stroke ( resource pdfdoc, float red_value, float green_value, float blue_value)

Set the current stroke color to the supplied RGB values. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Anterior | Principal | Próxima
pdf_setrgbcolor_fill | Acima | pdf_setrgbcolor


pdf_setrgbcolor

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

bool pdf_setrgbcolor ( resource pdfdoc, float red_value, float green_value, float blue_value)

Set the current fill and stroke color to the supplied RGB values. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Anterior | Principal | Próxima
pdf_setrgbcolor_stroke | Acima | pdf_show_boxed


pdf_show_boxed

(PHP 4 , PHP 5)

pdf_show_boxed -- Output text in a box

Description

int pdf_show_boxed ( resource pdfdoc, string text, float left, float top, float width, float height, string mode [, string feature])

Format text in the current font and size into the supplied text box according to the requested formatting mode, which must be one of left, right, center, justify or fulljustify. If width and height are 0, only a single line is placed at the point (left, top) in the requested mode.

Returns the number of characters that did not fit in the specified box. Returns 0 if all characters fit or the width and height parameters were set to 0 for single-line formatting.

Anterior | Principal | Próxima
pdf_setrgbcolor | Acima | pdf_show_xy


pdf_show_xy

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_show_xy -- Output text at given position

Description

bool pdf_show_xy ( resource pdfdoc, string text, float x, float y)

Print text in the current font at ( x, y). Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_show_boxed | Acima | pdf_show


pdf_show

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_show -- Output text at current position

Description

bool pdf_show ( resource pdfdoc, string text)

Print text in the current font and size at the current position. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_show_xy | Acima | pdf_skew


pdf_skew

(PHP 4 , PHP 5)

pdf_skew -- Skews the coordinate system

Description

bool pdf_skew ( resource pdfdoc, float alpha, float beta)

Skew the coordinate system in x and y direction by alpha and beta degrees. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_show | Acima | pdf_stringwidth


pdf_stringwidth

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_stringwidth -- Returns width of text using current font

Description

float pdf_stringwidth ( resource pdfdoc, string text [, int font [, float size]])

Returns the width of text using the last font set by pdf_setfont(). If the optional parameters font and size are specified, the width will be calculated using that font and size instead. Please note that font is a font handle returned by pdf_findfont().

Nota: Both the font and size parameters must be used together.

See also pdf_setfont() and pdf_findfont().

Anterior | Principal | Próxima
pdf_skew | Acima | pdf_stroke


pdf_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_stroke -- Draws line along path

Description

bool pdf_stroke ( resource pdfdoc)

Stroke the path with the current color and line width, and clear it. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pdf_stringwidth | Acima | pdf_translate


pdf_translate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_translate -- Sets origin of coordinate system

Description

bool pdf_translate ( resource pdfdoc, float tx, float ty)

Translate the origin of the coordinate system.

Anterior | Principal | Próxima
pdf_stroke | Acima | Verisign Payflow Pro Functions


Verisign Payflow Pro Functions

Manual do PHP
Anterior Próxima

LXXXI. Verisign Payflow Pro Functions

Introdução

This extension allows you to process credit cards and other financial transactions using Verisign Payment Services, formerly known as Signio (http://www.verisign.com/products/payflow/pro/index.html).

When using these functions, you may omit calls to pfpro_init() and pfpro_cleanup() as this extension will do so automatically if required. However the functions are still available in case you are processing a number of transactions and require fine control over the library. You may perform any number of transactions using pfpro_process() between the two.

These functions were added in PHP 4.0.2.

Nota: These functions only provide a link to Verisign Payment Services. Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

You will require the appropriate SDK for your platform, which may be downloaded from within the manager interface once you have registered. If you are going to use this extension in an SSL-enabled webserver or with other SSL components (such as the CURL+SSL extension) you MUST get the beta SDK.

Once you have downloaded the SDK you should copy the files from the lib directory of the distribution. Copy the header file pfpro.h to /usr/local/include and the library file libpfpro.so to /usr/local/lib.

Instalação

These functions are only available if PHP has been compiled with the --with-pfpro[=DIR] option.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Verisign Payflow Pro configuration options

Name | Default | Changeable
pfpro.defaulthost/PFPRO_VERSION < 3 | "test.signio.com" | PHP_INI_ALL
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL
pfpro.defaultport | "443" | PHP_INI_ALL
pfpro.defaulttimeout | "30" | PHP_INI_ALL
pfpro.proxyaddress | "" | PHP_INI_ALL
pfpro.proxyport | "" | PHP_INI_ALL
pfpro.proxylogon | "" | PHP_INI_ALL
pfpro.proxypassword | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
pfpro_cleanup -- Shuts down the Payflow Pro library
pfpro_init -- Initialises the Payflow Pro library
pfpro_process_raw -- Process a raw transaction with Payflow Pro
pfpro_process -- Process a transaction with Payflow Pro
pfpro_version -- Returns the version of the Payflow Pro software

Anterior | Principal | Próxima
pdf_translate | Acima | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2, PHP 5)

pfpro_cleanup -- Shuts down the Payflow Pro library

Description

void pfpro_cleanup ( void )

pfpro_cleanup() is used to shutdown the Payflow Pro library cleanly. It should be called after you have processed any transactions and before the end of your script. However you may omit this call, in which case this extension will automatically call pfpro_cleanup() after your script terminates.

See also pfpro_init().

Anterior | Principal | Próxima
Verisign Payflow Pro Functions | Acima | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2, PHP 5)

pfpro_init -- Initialises the Payflow Pro library

Description

void pfpro_init ( void )

pfpro_init() is used to initialise the Payflow Pro library. You may omit this call, in which case this extension will automatically call pfpro_init() before the first transaction.

See also pfpro_cleanup().

Anterior | Principal | Próxima
pfpro_cleanup | Acima | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process_raw -- Process a raw transaction with Payflow Pro

Description

string pfpro_process_raw ( string parameters [, string address [, int port [, int timeout [, string proxy_address [, int proxy_port [, string proxy_logon [, string proxy_password]]]]]]])

Returns: A string containing the response.

pfpro_process_raw() processes a raw transaction string with Payflow Pro. You should really use pfpro_process() instead, as the encoding rules of these transactions are non-standard.

The first parameter in this case is a string containing the raw transaction request. All other parameters are the same as with pfpro_process(). The return value is a string containing the raw response.

Nota: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters and encoding rules. You would be well advised to use pfpro_process() instead.

Exemplo 1. Payflow Pro raw example

<?php

pfpro_init();

$response = pfpro_process_raw("USER=mylogin&PWD[5]=m&ndy&PARTNER=VeriSign&TRXTYPE=S&TENDER=C&AMT=1.50&ACCT=4111111111111111&EXPDATE=0904");

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign raw response was " . $response;

pfpro_cleanup();

?>

See also pfpro_process().

Anterior | Principal | Próxima
pfpro_init | Acima | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process -- Process a transaction with Payflow Pro

Description

array pfpro_process ( array parameters [, string address [, int port [, int timeout [, string proxy_address [, int proxy_port [, string proxy_logon [, string proxy_password]]]]]]])

Returns: An associative array containing the response

pfpro_process() processes a transaction with Payflow Pro. The first parameter is an associative array containing keys and values that will be encoded and passed to the processor.

The second parameter is optional and specifies the host to connect to. By default this is "test.signio.com", so you will certainly want to change this to "connect.signio.com" in order to process live transactions.

The third parameter specifies the port to connect on. It defaults to 443, the standard SSL port.

The fourth parameter specifies the timeout to be used, in seconds. This defaults to 30 seconds. Note that this timeout appears to only begin once a link to the processor has been established and so your script could potentially continue for a very long time in the event of DNS or network problems.

The fifth parameter, if required, specifies the hostname of your SSL proxy. The sixth parameter specifies the port to use.

The seventh and eighth parameters specify the logon identity and password to use on the proxy.

The function returns an associative array of the keys and values in the response.

Nota: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Exemplo 1. Payflow Pro example

<?php

pfpro_init();

$transaction = array('USER'    => 'mylogin',
                     'PWD'     => 'mypassword',
                     'PARTNER' => 'VeriSign',
                     'TRXTYPE' => 'S',
                     'TENDER'  => 'C',
                     'AMT'     => 1.50,
                     'ACCT'    => '4111111111111111',
                     'EXPDATE' => '0904'
                    );

$response = pfpro_process($transaction);

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign response code was " . $response['RESULT'];
echo ", which means: " . $response['RESPMSG'] . "\n";

echo "\nThe transaction request: ";
print_r($transaction);

echo "\nThe response: ";
print_r($response);

pfpro_cleanup();

?>

Anterior | Principal | Próxima
pfpro_process_raw | Acima | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2, PHP 5)

pfpro_version -- Returns the version of the Payflow Pro software

Description

string pfpro_version ( void )

pfpro_version() returns the version string of the Payflow Pro library. At the time of writing, this was L211.

Anterior | Principal | Próxima
pfpro_process | Acima | PHP Opções e Informações


PHP Opções e Informações

Manual do PHP
Anterior Próxima

LXXXII. PHP Opções e Informações

Introdução

Estas funções permitem a você obter muitas informações sobre o PHP em si, ex. Configurações em tempo de execução, extensões carregadas, versão e muito mais. Você também encontrará funções para definir opções durante a execução. A provavelmente mais conhecida função do PHP - phpinfo() - pode ser encontrada aqui.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. PHP opções e informações de configuração

Nome | Padrão | Modificável
assert.active | "1" | PHP_INI_ALL
assert.bail | "0" | PHP_INI_ALL
assert.warning | "1" | PHP_INI_ALL
assert.callback | NULL | PHP_INI_ALL
assert.quiet_eval | "0" | PHP_INI_ALL
enable_dl | "1" | PHP_INI_SYSTEM
max_execution_time | "30" | PHP_INI_ALL
magic_quotes_gpc | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime | "0" | PHP_INI_ALL
Para maiores detalhes e definição das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

assert.active boolean

Ativa a comparação assert().

assert.bail boolean

Termina a execução do script no caso de uma afirmação(assert) falhar.

assert.warning boolean

Mostra um aviso PHP para cada afirmação(assert) que falhar.

assert.callback string

Função do usuário a ser executado no caso de uma afirmação(assert) falhar.

assert.quiet_eval boolean

Usa o que esta definido atualmente para a função error_reporting() durante a avaliação da afirmação. Se ativado, não são mostrados erros (error_reporting(0) implícito) durante a avaliação. Se desativado, os erros são mostrados de acordo com as definições de error_reporting()

enable_dl boolean

Esta diretiva somente é realmente útil na versão do PHP como módulo do apache. Você pode mudar o carregamento dinâmico de extensões do PHP com dl() on e off para cada servidor virtual ou por diretório.

A principal razão para mudar o carregamento dinâmico para off é segurança. Com o carregamento dinâmico é possível ignorar todas as restrições de open_basedir. O padrão é permitir o carregamento dinâmico exceto quando usando o safe mode. No safe mode, é sempre impossível usar dl().

max_execution_time integer

Isto define o limite de tempo de execução de um script antes que seja terminado pelo interpretador. Isto ajuda a prevenir que scripts mal escritos serem executados indefinidamente pelo servidor. O padrão é 30.

O limite de tempo de execução não é afetado por chamadas do sistema, a função sleep(), etc. Por favor veja a função set_time_limit() para maiores detalhes.

Você não pode mudar esta definição com a função ini_set() quando estiver executando em safe mode. O único meio de contornar é desativar o safe mode ou mudar o limite de tempo no php.ini.

magic_quotes_gpc boolean

Define o estado para as aspas mágicas para operações GPC (Get/Post/Cookie). Quando as aspas mágicas estiverem em on, todas ' (aspas simples), " (aspas duplas), \ (barras invertidas) e NULL's são escapados com uma barra invertida automaticamente.

Nota: Se a diretiva magic_quotes_sybase também estiver em ON ela irá sobrescrever completamente magic_quotes_gpc. Tendo ambas diretivas ativadas faz com que apenas as aspas simples sejam escapadas como ''. Aspas duplas, barras invertidas e NULL's irão permanecer intocados e não escapados.

Veja também get_magic_quotes_gpc().

magic_quotes_runtime boolean

Se magic_quotes_runtime estiver ativado, a maioria das funções que retornarem dados de qualquer fonte externa incluindo banco de dados e arquivos de texto terão as aspas escapadas com uma barra invertida. Se magic_quotes_sybase também estiver em on, uma aspa simples é escapada com uma aspa simples ao invés de uma barra invertida.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As constantes listadas abaixo estão sempre disponíveis como parte do núcleo do PHP.

Tabela 2. Constantes phpcredits() predefinidas

Constante | Valor | Descrição
CREDITS_GROUP | 1 | Uma lista do núcleo de desenvolvedores
CREDITS_GENERAL | 2 | Créditos em geral: design e conceito da linguagem, autores do PHP 4.0 e do módulo SAPI.
CREDITS_SAPI | 4 | Uma lista dos módulos API dos servidores para o PHP, e seus autores.
CREDITS_MODULES | 8 | Uma lista dos módulos de extensão para o PHP, e seus autores.
CREDITS_DOCS | 16 | Os créditos para a equipe de documentação.
CREDITS_FULLPAGE | 32 | Normalmente usada em combinação com as outras opções. Indica que uma pagina HTML completa precisa ser mostrada incluindo a informação indicada pelas outras opções.
CREDITS_QA | 64 | Os créditos para a equipe de controle de qualidade.
CREDITS_ALL | -1 | Todos os créditos, equivalente a usar: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Gera uma pagina HTML completa com as tags apropriadas. Este é o valor padrão.

Tabela 3. Constantes da função phpinfo()

Constante | Valor | Descrição
INFO_GENERAL | 1 | A linha da configuração, localização do php.ini, data de construção, servidor web, sistema e mais.
INFO_CREDITS | 2 | Créditos do PHP 4. Veja também phpcredits().
INFO_CONFIGURATION | 4 | Valores atuais e principais para as diretivas de configuração do PHP. Veja também ini_get().
INFO_MODULES | 8 | Módulos carregados e suas respectivas configurações.
INFO_ENVIRONMENT | 16 | Informações das variáveis de ambiente que também estão disponíveis em $_ENV.
INFO_VARIABLES | 32 | Mostra todas as variáveis predefinidas a partir de EGPCS (Ambiente, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | Informação sobre a licença do PHP. Veja também a faq sobre licença.
INFO_ALL | -1 | Mostra tudo acima. Este é o valor padrão.

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

Índice
assert_options -- Define/Obtém várias opções do assert
assert -- Confere se uma afirmação é FALSE
dl -- Carrega uma extensão do PHP durante a execução
extension_loaded -- Indica quando uma extensão esta carregada
get_cfg_var -- Obtém o valor de uma opção de configuração do PHP
get_current_user -- Obtém o nome do dono do script PHP atual
get_defined_constants -- Retorna uma matriz associativa com os nomes de todas as constantes e seus valores
get_extension_funcs -- Retorna uma matriz com os nomes de funções de um módulo
get_include_path -- Obtém a opção de configuração include_path atual
get_included_files -- Retorna uma matriz com os nomes dos arquivos incluídos ou requeridos
get_loaded_extensions -- Retorna uma matriz com os nomes de todos os módulos compilados e carregados
get_magic_quotes_gpc -- Obtém a configuração atual de magic quotes gpc
get_magic_quotes_runtime -- Obtém a configuração ativa para magic_quotes_runtime
get_required_files -- Apelido para get_included_files()
getenv -- Obtém uma variável de ambiente
getlastmod -- Obtém o tempo da última modificação na pagina
getmygid -- Obtém o GID do dono do script PHP
getmyinode -- Obtém o inode do script atual
getmypid -- Obtém o ID do processo PHP
getmyuid -- Obtém o UID do dono do script PHP
getopt -- Obtém opções da lista de argumentos da linha de comando
getrusage -- Obtém a utilização de recursos
ini_alter -- Apelido para ini_set()
ini_get_all -- Obtém todas as opções de configuração
ini_get -- Obtém o valor de uma opção de configuração
ini_restore -- Restaura o valor de uma opção de configuração
ini_set -- Define o valor de uma opção de configuração
main -- Marcador para main()
memory_get_usage -- Retorna a quantidade de memória alocada para PHP
php_ini_scanned_files -- Retorna uma lista dos arquivos ini interpretados a partir do diretório ini adicional
php_logo_guid -- Obtém o guid do logo
php_sapi_name -- Retorna o tipo de interface entre o servidor web e o PHP
php_uname -- Retorna informação sobre o sistema operacional que o PHP foi construído
phpcredits -- Mostra os créditos pelo PHP
phpinfo -- Mostra muitas informações sobre o PHP
phpversion -- Obtém a versão atual do PHP
putenv -- Define o valor de uma variável de ambiente
restore_include_path -- Restaura o valor da opção de configuração include_path
set_include_path -- Define a opção de configuração include_path
set_magic_quotes_runtime -- Define a configuração atual para magic_quotes_runtime
set_time_limit -- Limita o tempo de execução do script
version_compare -- Compares two "PHP-standardized" version number strings
zend_logo_guid -- Retorna o guid zend
zend_version -- Obtém a versão da Zend engine que esta sendo executada

Anterior | Principal | Próxima
pfpro_version | Acima | assert_options


assert_options

(PHP 4 , PHP 5)

assert_options -- Define/Obtém várias opções do assert

Descrição

mixed assert_options ( int what [, mixed value])

Usando a função assert_options() você poderá definir várias opções para assert() ou obter o que esta definido atualmente.

Tabela 1. Opções Assert

opção | parâmetro do ini | padrão | descrição
ASSERT_ACTIVE | assert.active | 1 | ativa a avaliação de assert()
ASSERT_WARNING | assert.warning | 1 | mostra um aviso do PHP para cada afirmação que falhar
ASSERT_BAIL | assert.bail | 0 | termina a execução do script quando uma afirmação falhar
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | desativa error_reporting durante a avaliação da expressão
ASSERT_CALLBACK | assert.callback | (NULL) | função do usuário para chamar quando uma afirmação falhar

assert_options() irá retornar o que esta definido para qualquer opção ou FALSE em caso de erro.

Anterior | Principal | Próxima
PHP Opções e Informações | Acima | assert


assert

(PHP 4 , PHP 5)

assert -- Confere se uma afirmação é FALSE

Descrição

int assert ( mixed assertion)

assert() se a afirmação assertion é falsa e toma a ação apropriada.

Se o parâmetro assertion é dado como uma string ela será avaliada como código PHP pela função assert(). As vantagens da string assertion são menor sobrecarga quando conferir se a afirmação é verdadeira e mensagens contendo assertion quando a afirmação é falsa. Isto indica que se você passar uma condição booleana(verdadeiro ou falso) como assertion esta condição não será mostrado como parâmetro da função de afirmação, o qual você deve ter definido com a função assert_options(), a condição é convertida para uma string antes que a função gerenciadora seja chamada e o booleano FALSE é convertido para uma string vazia.

Afirmações devem ser usadas apenas com a intenção de eliminar erros. Você deve usa-las para testar condições que devam ser sempre TRUE e que indiquem algum erro de programação se não for ou para verificar a existência de certas coisas como a disponibilidade de funções de algum módulo ou limites e recursos do sistema.

Afirmações não devem ser usadas para operações em tempo de execução normais como para conferir certo valor de entrada. Como uma dica de uso, o seu código deve funcionar corretamente mesmo que o teste de afirmações não esteja ativado.

O funcionamento de assert() pode ser configurado por assert_options() ou pelas configurações descritas na pagina do manual para estas funções.

A função assert_options() e/ou a diretiva de configuração ASSERT_CALLBACK permitem configurar uma função para ser chamada no caso de falha da afirmação.

Funções chamadas a partir de falhas de assert() são particularmente úteis quando estiver criando sistemas automáticos para testes porque permitem que você capture facilmente o código passado para a afirmação em conjunto com informações sobre onde a afirmação foi feita. Enquanto esta informação pode ser capturada por outros métodos, usar afirmações torna muito mais fácil e rápido!

A função utilizada para processar as afirmações devem aceitar três argumentos. O primeiro irá conter o arquivo onde houve a falha na afirmação. O segundo argumento irá conter a linha onde a afirmação falhou e o terceiro argumento irá conter a expressão que falhou (se houver alguma - valores literais como 1 ou "dois" não serão passados por este argumento).

Exemplo 1. Gerenciado uma afirmação que falhou com uma função do usuário

<?php
// Ativa as afirmações e as deixa quietas
assert_options (ASSERT_ACTIVE, 1);
assert_options (ASSERT_WARNING, 0);
assert_options (ASSERT_QUIET_EVAL, 1);

// Cria a função do usuário que será chamada quando a afirmação falhar
function my_assert_handler ($file, $line, $code) {
    echo "<hr>Afirmação falhou:
        Arquivo '$file'<br>
        Linha '$line'<br>
        Código '$code'<br><hr>";
}

// Define a função
assert_options (ASSERT_CALLBACK, 'my_assert_handler');

//  Faz uma afirmação que irá falhar
assert ('mysql_query ("")');
?>

Anterior | Principal | Próxima
assert_options | Acima | dl


dl

(PHP 3, PHP 4 , PHP 5)

dl -- Carrega uma extensão do PHP durante a execução

Descrição

int dl ( string library)

Carrega a extensão do PHP indicada pelo parâmetro library. O parâmetro library é somente o nome do arquivo da extensão para carregar o qual depende da sua plataforma. Por exemplo, a extensão sockets (se compilada como módulo compartilhado, o que não é o padrão) deve ser chamado como sockets.so em plataformas unix enquanto é chamado php_sockets.dll em plataformas Windows.

Retorna TRUE em caso de sucesso ou FALSE em falhas. Se o funcionamento de carregar módulos não estiver disponível (veja a nota) ou for desabilitado (ou por colocar em off enable_dl ou ativando o safe mode no php.ini) um E_ERROR é emitido e a execução é encerrada. Se dl() falhar porque a biblioteca especificada não puder ser carregada, em adição ao FALSE uma mensagem E_WARNING é emitida.

Use extension_loaded() para testar se uma extensão esta disponível ou não. Isto funciona para extensões internas e para aquelas carregadas dinamicamente (através do php.ini ou da função dl()).

Exemplo 1. Exemplos dl()

<?php
// Exemplo de carregar uma extensão baseada no sistema operacional
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0,3) == 'WIN')) {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// ou usando a constante PHP_SHLIB_SUFFIX disponível a partir do  PHP 4.3.0
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

O diretório a partir do qual a extensão é carregada depende da sua plataforma:

Windows - Se for explicitamente definido no php.ini, a extensão é carregada a partir de c:\php4\extensions\ por padrão.

Unix - Se não for explicitamente definido no php.ini, o diretório padrão das extensões depende de

  • se o PHP foi compilado com --enable-debug ou não

  • se o PHP foi compilado com suporte (experimental) ZTS (Zend Thread Safety) ou não

  • O ZEND_MODULE_API_NO (o número Zend internal module API, o que é basicamente a data onde houve uma mudança maior na API ex. 20010901)

Levando em conta o acima, o diretório padrão poderá ser <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 or /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Nota: dl() não e suportado em servidores multi-tarefa. Useextensions no seu php.ini quando estiver operando em um ambiente assim. Em todo o caso, as versões CGI e CLI não são afetadas!

Nota: dl() diferencia maiúsculas e minúsculas em plataformas unix.

Veja também Extension Loading Directives e extension_loaded().

Anterior | Principal | Próxima
assert | Acima | extension_loaded


extension_loaded

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

extension_loaded -- Indica quando uma extensão esta carregada

Descrição

bool extension_loaded ( string name)

Retorna TRUE se a extensão identificada por name esta carregada, FALSE se não.

Exemplo 1. Exemplo extension_loaded()

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

Você poderá ver os nomes de várias extensões usando phpinfo() ou se estiver usando a versão CGI ou CLI do PHP você poderá usar a opção -m para listar todas as extensões disponíveis:
$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Nota: extension_loaded() usa o nome interno da extensão para testar se uma extensão esta disponível ou não. A maioria dos nomes internos esta escrita em minúsculas mas algumas extensões podem ter letras maiúsculas. Tenha cuidado que esta função diferencia maiúsculas e minúsculas!

Veja também
get_loaded_extensions(),
get_extension_funcs(),
phpinfo() e
dl().

Anterior | Principal | Próxima
dl | Acima | get_cfg_var


get_cfg_var

(PHP 3, PHP 4 , PHP 5)

get_cfg_var -- Obtém o valor de uma opção de configuração do PHP

Descrição

string get_cfg_var ( string varname)

Retorna o valor atual da variável de configuração do PHP especificada por varname, ou FALSE se houver um erro.

Não irá retornar informação de configuração definidas quando o PHP foi compilado, ou lidas a partir de um arquivo de configuração do PHP (usando as diretivas php3).

Para saber se um sistema esta usando um arquivo de configuração, tente obter o valor da configuração cfg_file_path. Se estiver disponível então um arquivo de configuração esta sendo usado..

Veja também ini_get().

Anterior | Principal | Próxima
extension_loaded | Acima | get_current_user


get_current_user

(PHP 3, PHP 4 , PHP 5)

get_current_user -- Obtém o nome do dono do script PHP atual

Descrição

string get_current_user ( void )

Obtém o nome do dono do script PHP atual.

Veja também getmyuid(),
getmygid(), getmypid(),
getmyinode() e
getlastmod().

Anterior | Principal | Próxima
get_cfg_var | Acima | get_defined_constants


get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants -- Retorna uma matriz associativa com os nomes de todas as constantes e seus valores

Descrição

array get_defined_constants ( void )

Esta função retorna os nomes e os valores de todas as constantes definidas atualmente. Isto inclui aquelas criadas pelas extensões assim como as criadas com a função define() function.

Por exemplo a linha abaixo:

<?php
print_r(get_defined_constants());
?>

Irá mostrar uma lista parecida com:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Veja também
get_loaded_extensions(),
get_defined_functions() e
get_defined_vars().

Anterior | Principal | Próxima
get_current_user | Acima | get_extension_funcs


get_extension_funcs

(PHP 4 , PHP 5)

get_extension_funcs -- Retorna uma matriz com os nomes de funções de um módulo

Descrição

array get_extension_funcs ( string nome_modulo)

Esta função retorna o nome de todas as funções definidas no módulo indicado por nome_modulo.

Por exemplo as linhas abaixo:

<?php
print_r(get_extension_funcs("xml"));
print_r(get_extension_funcs("gd"));
?>

Irão mostar uma lista com todas as funções dos módulos xml e gd respectivamente.

Veja também: get_loaded_extensions()

Anterior | Principal | Próxima
get_defined_constants | Acima | get_include_path


get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path -- Obtém a opção de configuração include_path atual

Descrição

string get_include_path ( void )

Obtém o valor atual da opção de configuração include_path.

Exemplo 1. Exemplo get_include_path()

<?php
// Funciona a partir do PHP 4.3.0
print get_include_path();

// Funciona em todas as versões do PHP
print ini_get('include_path');
?>

Veja também ini_get(),
restore_include_path(),
set_include_path() e
include().

Anterior | Principal | Próxima
get_extension_funcs | Acima | get_included_files


get_included_files

(PHP 4 , PHP 5)

get_included_files -- Retorna uma matriz com os nomes dos arquivos incluídos ou requeridos

Descrição

array get_included_files ( void )

Retorna uma matriz com os nomes de todos os arquivos que foram incluídos usando
as funções include(),
include_once(), require()
ou require_once().

Arquivos que forem incluídos ou requeridos varias vezes aparecem somente uma vez na matriz.

Nota: Arquivos incluídos usando a diretiva de configuração auto_prepend_file não são incluídos na matriz retornada.

Exemplo 1. Exemplo get_included_files()

<?php

include("test1.php");
include_once("test2.php");
require("test3.php");
require_once("test4.php");

$included_files = get_included_files();

foreach($included_files as $filename) {
    echo "$filename\n";
}

?>

Irá gerar a seguinte saída:

test1.php
test2.php
test3.php
test4.php

Nota: No PHP 4.0.1pl2 e versões anteriores get_included_files() assume que os arquivos requeridos terminem com a extensão .php; outras extensões não serão retornadas. A matriz retornada por get_included_files() era uma matriz associativa e listava somente os arquivos incluídos pelas funções include() e include_once().

Veja também
include(),
include_once(),
require(),
require_once() e
get_required_files().

Anterior | Principal | Próxima
get_include_path | Acima | get_loaded_extensions


get_loaded_extensions

(PHP 4 , PHP 5)

get_loaded_extensions -- Retorna uma matriz com os nomes de todos os módulos compilados e carregados

Descrição

array get_loaded_extensions ( void )

Retorna uma matriz com os nomes de todos os módulos compilados e carregados no interpretador PHP.

Por exemplo a linha abaixo

<?php
print_r(get_loaded_extensions());
?>

irá mostrar uma lista parecida com:

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

Veja também
get_extension_funcs(),
extension_loaded(),
dl() e
phpinfo().

Anterior | Principal | Próxima
get_included_files | Acima | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_gpc -- Obtém a configuração atual de magic quotes gpc

Descrição

int get_magic_quotes_gpc ( void )

Retorna a configuração atual de magic_quotes_gpc (0 para off, 1 para on).

Nota: Se a diretiva magic_quotes_sybase estiver ON ela irá completamente sobrescrever magic_quotes_gpc. Assim mesmo quando get_magic_quotes() retorna TRUE mas as aspas duplas, barras invertidas e NULLs não serão escapados, apenas as aspas simples. Neste caso vão se parecer com: ''.

Tenha em mente que magic_quotes_gpc não pode ser definida em tempo de execução.

Exemplo 1. Exemplo get_magic_quotes_gpc()

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Veja também addslashes(),
stripslashes(),
get_magic_quotes_runtime() e
ini_get().

Anterior | Principal | Próxima
get_loaded_extensions | Acima | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_runtime -- Obtém a configuração ativa para magic_quotes_runtime

Descrição

int get_magic_quotes_runtime ( void )

Retorna a configuração ativa para magic_quotes_runtime (0 para off, 1 para on).

Veja também get_magic_quotes_gpc() e set_magic_quotes_runtime().

Anterior | Principal | Próxima
get_magic_quotes_gpc | Acima | get_required_files


get_required_files

get_required_files -- Apelido para get_included_files()

Descrição

Esta função é um apelido para get_included_files().

Anterior | Principal | Próxima
get_magic_quotes_runtime | Acima | getenv


getenv

(PHP 3, PHP 4 , PHP 5)

getenv -- Obtém uma variável de ambiente

Descrição

string getenv ( string varname)

Retorna o nome da variável de ambiente varname, ou FALSE em caso de erro.

<?php
$ip = getenv ("REMOTE_ADDR"); // obtém o número ip do usuário
?>

Você poderá ver uma lista de todas as variáveis de ambiente usando phpinfo(). Você poderá encontram o que muitas delas indicam dando uma olhada em CGI specification, especialmente em page on environmental variables.

Nota: Esta função não funciona no modo ISAPI.

Veja também putenv().

Anterior | Principal | Próxima
get_required_files | Acima | getlastmod


getlastmod

(PHP 3, PHP 4 , PHP 5)

getlastmod -- Obtém o tempo da última modificação na pagina

Descrição

int getlastmod ( void )

Retorna o tempo da última modificação na pagina atual. O valor é retornado como um Unix timestamp, útil para usar com a função date(). Retorna FALSE em caso de erro.

Exemplo 1. Exemplo getlastmod()

<?php
// mostra por exemplo  'Última Modificação: March 04 1998 20:43:59.'
echo "Última Modificação: " . date ("F d Y H:i:s.", getlastmod());
?>

Nota: Se você esta interessado em obter a última modificação de um arquivo diferente, considere usar filemtime().

Veja também
date(),
getmyuid(),
getmygid(),
get_current_user(),
getmyinode(),
getmypid() e
filemtime().

Anterior | Principal | Próxima
getenv | Acima | getmygid


getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygid -- Obtém o GID do dono do script PHP

Descrição

int getmygid ( void )

Retorna o ID do grupo do script atual, ou FALSE em caso de erro.

Veja também getmyuid(),
getmypid(),
get_current_user(),
getmyinode() e
getlastmod().

Anterior | Principal | Próxima
getlastmod | Acima | getmyinode


getmyinode

(PHP 3, PHP 4 , PHP 5)

getmyinode -- Obtém o inode do script atual

Descrição

int getmyinode ( void )

Obtém o inode do script atual, ou FALSE em caso de erro.

Veja também
getmygid(),
getmyuid(),
get_current_user(),
getmypid() e
getlastmod().

Nota: esta função não é implementada na plataforma Windows

Anterior | Principal | Próxima
getmygid | Acima | getmypid


getmypid

(PHP 3, PHP 4 , PHP 5)

getmypid -- Obtém o ID do processo PHP

Descrição

int getmypid ( void )

Retorna o ID do processo PHP, ou FALSE em caso de erro.

Atenção

ID de processo não é único, então são uma fonte de entropia fraca. Nós recomendamos não usas o pid em contextos dependentes de segurança.

Veja também
getmygid(),
getmyuid(),
get_current_user(),
getmyinode() e
getlastmod().

Anterior | Principal | Próxima
getmyinode | Acima | getmyuid


getmyuid

(PHP 3, PHP 4 , PHP 5)

getmyuid -- Obtém o UID do dono do script PHP

Descrição

int getmyuid ( void )

Retorna o ID do usuário dono do script atual, ou FALSE em caso de erro.

Veja também getmygid(),
getmypid(),
get_current_user(),
getmyinode() e
getlastmod().

Anterior | Principal | Próxima
getmypid | Acima | getopt


getopt

(PHP 4 >= 4.3.0, PHP 5)

getopt -- Obtém opções da lista de argumentos da linha de comando

Descrição

array getopt ( string options)

Retorna uma matriz associativa das opções/argumentos baseada no formato especificado no parâmetro options, ou FALSE em caso de erro.

<?php
// interpreta a linha de comando ($GLOBALS['argv'])
$options = getopt("f:hp:");
?>

O parâmetro options deve conter os seguintes elementos: caracteres individuais, e caracteres individuais seguidos por dois pontos para indicar uma opção com um argumento a seguir. Por exemplo, a string de opção x reconhece uma opção -x, e uma string de opção x: reconhece uma opção e um argumento -x argumento. Não importa se o argumento tem espaço no início.

Esta função irá retornar uma matriz de opções/argumentos . Se uma opção não tiver argumento o valor definido será FALSE.

Nota: esta função não é implementada na plataforma Windows

Anterior | Principal | Próxima
getmyuid | Acima | getrusage


getrusage

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

getrusage -- Obtém a utilização de recursos

Descrição

array getrusage ( [int who])

Esta é uma interface para getrusage(2). Retorna uma matriz associativa contendo os dados da chamada de sistema. Se who, for 1, getrusage será chamada com RUSAGE_CHILDREN.

Todas as entradas são acessadas utilizando os seus nomes de campo documentados.

Exemplo 1. Exemplo getrusage()

<?php
$dat = getrusage();
echo $dat["ru_nswap"];         # number of swaps
echo $dat["ru_majflt"];        # number of page faults
echo $dat["ru_utime.tv_sec"];  # user time used (seconds)
echo $dat["ru_utime.tv_usec"]; # user time used (microseconds)
?>
Veja a página de manual do seu sistema para getrusage(2) para maiores detalhes.

Nota: esta função não é implementada na plataforma Windows

Anterior | Principal | Próxima
getopt | Acima | ini_alter


ini_alter

ini_alter -- Apelido para ini_set()

Descrição

Esta função é um apelido para ini_set().

Anterior | Principal | Próxima
getrusage | Acima | ini_get_all


ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_all -- Obtém todas as opções de configuração

Descrição

array ini_get_all ( [string extension])

Retorna todas as opções de configuração como uma matriz associativa. Se o parâmetro opcional extension estiver definido, apenas as opções especificas para esta extensão serão retornadas.

A matriz retornada usa o nome da diretiva como chave da matriz sendo os os elementos global_value (definidos no php.ini), local_value (talvez definidos com ini_set() ou .htaccess), e access (o nível de acesso). Veja a seção do manual sobre mudanças de configuração para informações sobre o que são os níveis.

Nota: É possível para uma diretiva ter múltiplos níveis de acesso, por isso access mostra os valores apropriados como um valor bitmask.

Exemplo 1. Exemplo ini_get_all()

<?php
$inis = ini_get_all();

print_r($inis);

/* Parte da saída deve parecer com:

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )

    ...

)
*/
?>

Veja também: ini_get(),
ini_restore(),
ini_set(),
get_loaded_extensions() e
phpinfo().

Anterior | Principal | Próxima
ini_alter | Acima | ini_get


ini_get

(PHP 4 , PHP 5)

ini_get -- Obtém o valor de uma opção de configuração

Descrição

string ini_get ( string varname)

Retorna o valor da opção em caso de sucesso. Em caso de falha, como tentar obter um valor que não exista, irá retornar uma string vazia.

Quando obtendo valores booleanos: Um valor booleano off será retornado como uma string vazia enquanto um valor booleano on será retornado como "1".

Quando obtendo valores de tamanho de memória: Vários valores de definição de tamanho de memória, como upload_max_filesize são guardados no arquivo php.ini em uma anotação curta. ini_get() irá retornar exatamente a string guardada no arquivo php.ini, NÃO o seu valor inteiro equivalente. Tentar funções matemáticas comuns com estes valores não trará o resultado esperado.

<?php
/*
Seu php.ini contém as seguintes definições:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

print 'display_errors = ' . ini_get('display_errors') . "\n";
print 'register_globals = ' . ini_get('register_globals') . "\n";
print 'post_max_size = ' . ini_get('post_max_size') . "\n";
print 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
?>

Este script irá produzir:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
*/
?>

Veja também
get_cfg_var(),
ini_get_all(),
ini_restore() e
ini_set().

Anterior | Principal | Próxima
ini_get_all | Acima | ini_restore


ini_restore

(PHP 4 , PHP 5)

ini_restore -- Restaura o valor de uma opção de configuração

Descrição

string ini_restore ( string varname)

Restaura o valor de uma opção de configuração para o seu valor original.

Veja também
ini_get(),
ini_get_all() e
ini_set().

Anterior | Principal | Próxima
ini_get | Acima | ini_set


ini_set

(PHP 4 , PHP 5)

ini_set -- Define o valor de uma opção de configuração

Descrição

string ini_set ( string varname, string newvalue)

Define um novo valor para a opção de configuração indicada. Retorna o valor anterior em caso de sucsso, FALSE em caso de falha. A opção de configuração irá manter o novo valor durante a execução do script e será restaurado ao final da execução do script.

Nem todas as opções disponíveis podem ser modificadas usando a função ini_set(). Abaixo esta uma tabela com todas as opções do PHP (a partir do PHP 4.2.0), indicando quais podem ser modificadas e em que nível.

Tabela 1. Opções de configuração

Nome | Padrão | Modificável
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM
crack.default_dictionary | NULL | PHP_INI_SYSTEM
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL
exif.encode_jis | "" | PHP_INI_ALL
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL
exif.decode_jis_intel | "JIS" | PHP_INI_ALL
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.default_port | "418" | PHP_INI_ALL
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
ifx.allow_persistent | "1" | PHP_INI_SYSTEM
ifx.max_persistent | "-1" | PHP_INI_SYSTEM
ifx.max_links | "-1" | PHP_INI_SYSTEM
ifx.default_host | NULL | PHP_INI_SYSTEM
ifx.default_user | NULL | PHP_INI_SYSTEM
ifx.default_password | NULL | PHP_INI_SYSTEM
ifx.blobinfile | "1" | PHP_INI_ALL
ifx.textasvarchar | "0" | PHP_INI_ALL
ifx.byteasvarchar | "0" | PHP_INI_ALL
ifx.charasvarchar | "0" | PHP_INI_ALL
ifx.nullformat | "0" | PHP_INI_ALL
ingres.allow_persistent | "1" | PHP_INI_SYSTEM
ingres.max_persistent | "-1" | PHP_INI_SYSTEM
ingres.max_links | "-1" | PHP_INI_SYSTEM
ingres.default_database | NULL | PHP_INI_ALL
ingres.default_user | NULL | PHP_INI_ALL
ingres.default_password | NULL | PHP_INI_ALL
ibase.allow_persistent | "1" | PHP_INI_SYSTEM
ibase.max_persistent | "-1" | PHP_INI_SYSTEM
ibase.max_links | "-1" | PHP_INI_SYSTEM
ibase.default_user | NULL | PHP_INI_ALL
ibase.default_password | NULL | PHP_INI_ALL
ibase.timestampformat | "%m/%d/%Y%H:%M:%S" | PHP_INI_ALL
ibase.dateformat | "%m/%d/%Y" | PHP_INI_ALL
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL
java.class.path | NULL | PHP_INI_ALL
java.home | NULL | PHP_INI_ALL
java.library.path | NULL | PHP_INI_ALL
java.library | JAVALIB | PHP_INI_ALL
java.library | NULL | PHP_INI_ALL
ldap.max_links | "-1" | PHP_INI_SYSTEM
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | NULL | PHP_INI_ALL
mbstring.http_output | NULL | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM
mcrypt.algorithms_dir | NULL | PHP_INI_ALL
mcrypt.modes_dir | NULL | PHP_INI_ALL
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
mssql.allow_persistent | "1" | PHP_INI_SYSTEM
mssql.max_persistent | "-1" | PHP_INI_SYSTEM
mssql.max_links | "-1" | PHP_INI_SYSTEM
mssql.max_procs | "25" | PHP_INI_ALL
mssql.min_error_severity | "10" | PHP_INI_ALL
mssql.min_message_severity | "10" | PHP_INI_ALL
mssql.compatability_mode | "0" | PHP_INI_ALL
mssql.connect_timeout | "5" | PHP_INI_ALL
mssql.timeout | "60" | PHP_INI_ALL
mssql.textsize | "-1" | PHP_INI_ALL
mssql.textlimit | "-1" | PHP_INI_ALL
mssql.batchsize | "0" | PHP_INI_ALL
mssql.datetimeconvert | "1" | PHP_INI_ALL
mssql.secure_connection | "0" | PHP_INI_SYSTEM
mysql.allow_persistent | "1" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
odbc.allow_persistent | "1" | PHP_INI_SYSTEM
odbc.max_persistent | "-1" | PHP_INI_SYSTEM
odbc.max_links | "-1" | PHP_INI_SYSTEM
odbc.default_db | NULL | PHP_INI_ALL
odbc.default_user | NULL | PHP_INI_ALL
odbc.default_pw | NULL | PHP_INI_ALL
odbc.defaultlrl | "4096" | PHP_INI_ALL
odbc.defaultbinmode | "1" | PHP_INI_ALL
odbc.check_persistent | "1" | PHP_INI_SYSTEM
pfpro.defaulthost | "test.signio.com" |
pfpro.defaulthost | "test-payflow.verisign.com" |
pfpro.defaultport | "443" | PHP_INI_ALL
pfpro.defaulttimeout | "30" | PHP_INI_ALL
pfpro.proxyaddress | "" | PHP_INI_ALL
pfpro.proxyport | "" | PHP_INI_ALL
pfpro.proxylogon | "" | PHP_INI_ALL
pfpro.proxypassword | "" | PHP_INI_ALL
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM
pgsql.max_links | "-1" | PHP_INI_SYSTEM
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM
pgsql.ignore_notice | "0" | PHP_INI_ALL
pgsql.log_notice | "0" | PHP_INI_ALL
session.save_path | "/tmp" | PHP_INI_ALL
session.name | "PHPSESSID" | PHP_INI_ALL
session.save_handler | "files" | PHP_INI_ALL
session.auto_start | "0" | PHP_INI_ALL
session.gc_probability | "1" | PHP_INI_ALL
session.gc_maxlifetime | "1440" | PHP_INI_ALL
session.serialize_handler | "php" | PHP_INI_ALL
session.cookie_lifetime | "0" | PHP_INI_ALL
session.cookie_path | "/" | PHP_INI_ALL
session.cookie_domain | "" | PHP_INI_ALL
session.cookie_secure | "" | PHP_INI_ALL
session.use_cookies | "1" | PHP_INI_ALL
session.use_only_cookies | "0" | PHP_INI_ALL
session.referer_check | "" | PHP_INI_ALL
session.entropy_file | "" | PHP_INI_ALL
session.entropy_length | "0" | PHP_INI_ALL
session.cache_limiter | "nocache" | PHP_INI_ALL
session.cache_expire | "180" | PHP_INI_ALL
session.use_trans_sid | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
session.encode_sources | "globals,track" | PHP_INI_ALL
assert.active | "1" | PHP_INI_ALL
assert.bail | "0" | PHP_INI_ALL
assert.warning | "1" | PHP_INI_ALL
assert.callback | NULL | PHP_INI_ALL
assert.quiet_eval | "0" | PHP_INI_ALL
safe_mode_protected_env_vars | SAFE_MODE_PROTECTED_ENV_VARS | PHP_INI_SYSTEM
safe_mode_allowed_env_vars | SAFE_MODE_ALLOWED_ENV_VARS | PHP_INI_SYSTEM
url_rewriter.tags | "a=href,area=href,frame=src,form=fakeentry" | PHP_INI_ALL
sybct.allow_persistent | "1" | PHP_INI_SYSTEM
sybct.max_persistent | "-1" | PHP_INI_SYSTEM
sybct.max_links | "-1" | PHP_INI_SYSTEM
sybct.min_server_severity | "10" | PHP_INI_ALL
sybct.min_client_severity | "10" | PHP_INI_ALL
sybct.hostname | NULL | PHP_INI_ALL
vpopmail.directory | "" | PHP_INI_ALL
zlib.output_compression | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
zlib.output_compression_level | "-1" | PHP_INI_ALL
define_syslog_variables | "0" | PHP_INI_ALL
highlight.bg | HL_BG_COLOR | PHP_INI_ALL
highlight.comment | HL_COMMENT_COLOR | PHP_INI_ALL
highlight.default | HL_DEFAULT_COLOR | PHP_INI_ALL
highlight.html | HL_HTML_COLOR | PHP_INI_ALL
highlight.keyword | HL_KEYWORD_COLOR | PHP_INI_ALL
highlight.string | HL_STRING_COLOR | PHP_INI_ALL
allow_call_time_pass_reference | "1" | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
enable_dl | "1" | PHP_INI_SYSTEM
expose_php | "1" | PHP_INI_SYSTEM
html_errors | "1" | PHP_INI_SYSTEM
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
ignore_user_abort | "0" | PHP_INI_ALL
implicit_flush | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
magic_quotes_gpc | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime | "0" | PHP_INI_ALL
magic_quotes_sybase | "0" | PHP_INI_ALL
output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_globals | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
safe_mode | "1" | PHP_INI_SYSTEM
safe_mode | "0" | PHP_INI_SYSTEM
safe_mode_include_dir | NULL | PHP_INI_SYSTEM
safe_mode_gid | "0" | PHP_INI_SYSTEM
short_open_tag | DEFAULT_SHORT_OPEN_TAG | PHP_INI_SYSTEM|PHP_INI_PERDIR
sql.safe_mode | "0" | PHP_INI_SYSTEM
track_errors | "0" | PHP_INI_ALL
y2k_compliance | "0" | PHP_INI_ALL
unserialize_callback_func | NULL | PHP_INI_ALL
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_prepend_file | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR
doc_root | NULL | PHP_INI_SYSTEM
default_charset | SAPI_DEFAULT_CHARSET | PHP_INI_ALL
default_mimetype | SAPI_DEFAULT_MIMETYPE | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
gpc_order | "GPC" | PHP_INI_ALL
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
max_execution_time | "30" | PHP_INI_ALL
open_basedir | NULL | PHP_INI_SYSTEM
safe_mode_exec_dir | "1" | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM
file_uploads | "1" | PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
variables_order | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
SMTP | "localhost" | PHP_INI_ALL
smtp_port | 25 | PHP_INI_ALL
browscap | NULL | PHP_INI_SYSTEM
error_reporting | NULL | PHP_INI_ALL
memory_limit | "8M" | PHP_INI_ALL
precision | "14" | PHP_INI_ALL
sendmail_from | NULL | PHP_INI_ALL
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM
disable_functions | "" | PHP_INI_SYSTEM
allow_url_fopen | "1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_ALL
xbithack | "0" | PHP_INI_ALL
engine | "1" | PHP_INI_ALL
last_modified | "0" | PHP_INI_ALL
child_terminate | "0" | PHP_INI_ALL
async_send | "0" | PHP_INI_ALL

Tabela 2. Definição das constantes PHP_INI_*

Constante | Valor | Indicação
PHP_INI_USER | 1 | A entrada pode ser definida em scripts do usuário
PHP_INI_PERDIR | 2 | A entrada pode ser definida em php.ini, .htaccess ou httpd.conf
PHP_INI_SYSTEM | 4 | A entrada pode ser definida em php.ini ou httpd.conf
PHP_INI_ALL | 7 | A entrada pode ser definida em qualquer lugar

Veja também: get_cfg_var(),
ini_get(),
ini_get_all() e
ini_restore()

Anterior | Principal | Próxima
ini_restore | Acima | main


main

main -- Marcador para main()

Descrição

Não existe função com o nome de main() com exceção no código fonte do PHP. No PHP 4.3.0, um novo tipo de gerenciamento de erro foi introduzido no fonte do PHP (php_error_docref). Uma das funções é prover links para as páginas de manual do PHP nas mensagens de erros quando a diretiva de configuração html_errors (on por padrão) e docref_root (on por padrão até o PHP 4.3.2) estiverem definidas.

Algumas vezes as mensagens de erro se referem a uma página de manual para a função main(), é por isso que esta pagina existe. Por favor adicione um comentário do usuário abaixo que mencione qual função do PHP causou um erro que foi ligado a função main() e será corrigido e propriamente documentado.

Tabela 1. Eros conhecidos que apontam para main()

Nome da função | Não aponta para aqui a partir do
include() | 4.3.2
include_once() | 4.3.2
require() | 4.3.2
require_once() | 4.3.2

Veja também html_errors e display_errors.

Anterior | Principal | Próxima
ini_set | Acima | memory_get_usage


memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usage -- Retorna a quantidade de memória alocada para PHP

Descrição

int memory_get_usage ( void )

Retorna a quantidade de memória, em bytes, que esta atualmente alocada para o seu script PHP.

memory_get_usage() será definida somente se o seu PHP for compilado com a opção de configuração --enable-memory-limit.

Exemplo 1. Exemplo memory_get_usage()

<?php
// Este é apenas um exemplo, os números abaixo
// serão diferentes dependendo do seu sistema

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Veja também memory_limit.

Anterior | Principal | Próxima
main | Acima | php_ini_scanned_files


php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_files -- Retorna uma lista dos arquivos ini interpretados a partir do diretório ini adicional

Descrição

string php_ini_scanned_files ( void )

php_ini_scanned_files() retorna uma lista separada por vírgula dos arquivos interpretados depois do php.ini. Estes arquivos são encontrados no diretório definido pela opção --with-config-file-scan-dir definida durante a compilação.

Retorna uma lista de arquivos ini separados por vírgula em caso de sucesso. Se a diretiva --with-config-files-scan-dir não foi definida é retornado FALSE. Se foi definida e o diretório estiver vazio, uma string vazia é retornada. Se um arquivo estiver irreconhecível, o arquivo ainda fará parte da string retornada, mas também será retornado um erro do PHP. Este erro do PHP será visto em tempo de compilação e quando usar a função php_ini_scanned_files().

Os arquivos de configuração incluem também o caminho incluído em --with-config-file-scan-dir. Também cada vírgula e seguida por uma nova linha.

Exemplo 1. Um exemplo simples para a lista de arquivos ini retornados

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

Veja também ini_set() e phpinfo().

Anterior | Principal | Próxima
memory_get_usage | Acima | php_logo_guid


php_logo_guid

(PHP 4 , PHP 5)

php_logo_guid -- Obtém o guid do logo

Descrição

string php_logo_guid ( void )

Esta função retorna um ID que pode ser utilizado para mostrar o logo do PHP usando uma imagem embutida.

Exemplo 1. Exemplo php_logo_uid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

?>

 Veja também
phpinfo(),
 phpversion(),
 phpcredits() e
 zend_logo_guid().

Anterior | Principal | Próxima
php_ini_scanned_files | Acima | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_name -- Retorna o tipo de interface entre o servidor web e o PHP

Descrição

string php_sapi_name ( void )

php_sapi_name() retorna uma string minúscula que descreve o tipo de interface entre o servidor web e o PHP (Server API, SAPI). Em CGI PHP, esta string é "cgi", em mod_php para o Apache, esta string é "apache" e assim por diante.

Exemplo 1. Exemplo php_sapi_name()

<?php
$sapi_type = php_sapi_name();
if ($sapi_type == "cgi")
    print "Você esta usando CGI PHP\n";
else
    print "Você não esta usando CGI PHP\n";
?>

Anterior | Principal | Próxima
php_logo_guid | Acima | php_uname


php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_uname -- Retorna informação sobre o sistema operacional que o PHP foi construído

Descrição

string php_uname ( void )

php_uname() retorna uma string com a descrição do sistema operacional que o PHP foi construído. Se você quer apenas o nome do sistema operacional, considere usar a constante PHP_OS.

Exemplo 1. Alguns exemplos de php_uname()

<?php
echo php_uname();
echo PHP_OS;

/* Algumas saídas possíveis:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'Este é um servidor usando!';
} else {
    echo 'Este é um servidor que não usa Windows!';
}

?>

Existem também algumas Constantes predefinidas que podem ser úteis, por exemplo:

Exemplo 2. Algumas constantes relacionadas com o sistema operacional

<?php
// *nix
echo DIRECTORY_SEPARATOR; // :
echo PHP_SHLIB_SUFFIX;    // so

// Win*
echo DIRECTORY_SEPARATOR; // ;
echo PHP_SHLIB_SUFFIX;    // dll
?>

Veja também phpversion(),
php_sapi_name() e
phpinfo().

Anterior | Principal | Próxima
php_sapi_name | Acima | phpcredits


phpcredits

(PHP 4 , PHP 5)

phpcredits -- Mostra os créditos pelo PHP

Descrição

void phpcredits ( [int flag])

Esta função mostra os créditos listando os desenvolvedores do PHP, módulos, etc. Ela gera os códigos HTML apropriados para inserir a informação na página. O parâmetro flag é opcional e seu padrão e para CREDITS_ALL. Para general uma pagina de créditos diferente, você poderá usar o parâmetro flag. Por exemplo, para imprimir os créditos gerais, você irá usar em algum lugar do seu código:

<?php
phpcredits(CREDITS_GENERAL);
?>

E se você quiser mostrar os desenvolvedores do núcleo e o grupo de documentação, em uma pagina própria, você irá usar:

<?php
phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);
?>

E se você quiser adicionar todos os créditos em sua pagina, o código a seguir irá faze-lo:

<html>
 <head>
  <title>Minha pagina de créditos</title>
 </head>
 <body>
  <?php
 // algum código seu
 phpcredits(CREDITS_ALL);
 // mais código seu
 ?>
 </body>
</html>

Tabela 1. opções predefinidas de phpcredits()

Nome | Descrição
CREDITS_ALL | Todos os créditos, equivalente a usar: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. Gera uma pagina completa em HTML com as tags apropriadas.
CREDITS_DOCS | Os créditos para a equipe de documentação
CREDITS_FULLPAGE | Normalmente utilizada em combinação com outras opções. Indica que é necessário mostrar uma página HTML completa deve ser mostrada com as informações indicadas pelas outras opções.
CREDITS_GENERAL | Créditos gerais: design da linguagem e conceitos, autores do PHP 4.0 e do módulo SAPI.
CREDITS_GROUP | Uma lista dos desenvolvedores do núcleo
CREDITS_MODULES | Uma lista dos módulos de extensão para o PHP, e seus autores.
CREDITS_SAPI | A list of the server API modules for PHP, and their authors

veja também phpinfo(),
phpversion() e
php_logo_guid().

Anterior | Principal | Próxima
php_uname | Acima | phpinfo


phpinfo

(PHP 3, PHP 4 , PHP 5)

phpinfo -- Mostra muitas informações sobre o PHP

Descrição

int phpinfo ( [int what])

Mostra uma grande quantidade de informações sobre o estado atual do PHP. Isto inclui informações sobre as opções de compilação do PHP e extensões, a versão do PHP, informações do servidor e ambiente (se compilado como um módulo), o ambiente PHP, informação da versão do SO, caminhos, valores principais e locais das opções de configuração, cabeçalhos HTTP e a licença do PHP.

Devido a configuração em cada sistema ser diferente, a função phpinfo() e normalmente utilizada para conhecer as definições de configuração e as variáveis predefinidas que estejam disponíveis no sistema. phpinfo() é também é uma ferramenta valiosa para eliminação de erros já que contém todos os dados de EGPCS (Environment, GET, POST, Cookie, Server).

A saída pode ser configurada passando-se uma ou mais das seguintes constants que serão somadas junto com o parâmetro opcional what. Pode combinar as respectivas constantes ou seus valores bit a bit juntos com o operador or.

Tabela 1. Opções phpinfo()

Nome (constant) | Valor | Descrição
INFO_GENERAL | 1 | A linha de configuração, localização do php.ini data de construção, Servidor Web, Sistema e mais.
INFO_CREDITS | 2 | Créditos do PHP 4. Veja também phpcredits().
INFO_CONFIGURATION | 4 | Valores locais e principais para as diretivas de configuração do PHP. Veja também ini_get().
INFO_MODULES | 8 | Módulos carregados e suas respectivas configurações. Veja também get_loaded_modules().
INFO_ENVIRONMENT | 16 | Informação das variáveis de ambiente que também esta disponível em $_ENV.
INFO_VARIABLES | 32 | Mostra todas as variáveis predefinidas de EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | Informação sobre a Licença do PHP. Veja também o faq sobre a licença.
INFO_ALL | -1 | Mostra tudo acima. Este é o valor padrão.

Exemplo 1. Exemplos phpinfo()

<?php

// Mostra todas as informações, usa o padrão INFO_ALL
phpinfo();

// Mostra apenas informações dos módulos.
// phpinfo(8) mostra um resultado identico.
phpinfo(INFO_MODULES);

?>

Nota: Partes da informação mostrada é desabilitada quando a diretiva de configuração expose_php for definida para off. Isto inclui os logos do PHP e Zend, e os créditos.

Veja também phpversion(),
phpcredits(),
php_logo_guid(),
ini_get(),
ini_set(),
get_loaded_modules(),
e a seção sobre Variáveis Predefinidas.

Anterior | Principal | Próxima
phpcredits | Acima | phpversion


phpversion

(PHP 3, PHP 4 , PHP 5)

phpversion -- Obtém a versão atual do PHP

Descrição

string phpversion ( void )

Retorna uma string contendo a versão atual do interpretador PHP.

Nota: Esta função também esta disponível na constante predefinida PHP_VERSION.

Exemplo 1. Exemplo phpversion()

<?php
// mostra por exemplo 'Versão Atual do PHP: 4.1.1'
echo 'Versão Atual do PHP: ' . phpversion();
?>

Veja também
version_compare(),
phpinfo(),
phpcredits(),
php_logo_guid() e
zend_version().

Anterior | Principal | Próxima
phpinfo | Acima | putenv


putenv

(PHP 3, PHP 4 , PHP 5)

putenv -- Define o valor de uma variável de ambiente

Descrição

void putenv ( string setting)

Adiciona setting no ambiente do servidor. A variável de ambiente irá existir somente durante a requisição atual. Ao final da requisição o ambiente é retornado ao seu estado natural.

Definir certas variáveis de ambiente pode ser potencialmente uma brecha de segurança.. A diretiva safe_mode_allowed_env_vars contém uma lista separada por vírgula de prefixos. No modo seguro, o usuário poderá alterar variáveis de ambiente cujo o nome comece por um dos prefixos indicados nesta diretiva. Por padrão os usuários só poderão definir varáveis que comecem com PHP_ (ex.. PHP_FOO=BAR). Nota: se esta diretiva estiver vazia, o PHP permitirá ao usuário modificar QUALQUER variável de ambiente!

A diretiva safe_mode_protected_env_vars contém uma lista separada por vírgula de variáveis de ambiente que o usuário não possa mudar usando putenv(). Estas variáveis serão protegidas mesmo que safe_mode_allowed_env_vars esta definida para permitir muda-las

Atenção

Estas diretivas só tem efeito quando safe-mode esta ativada!

Exemplo 1. Definindo uma variável de ambiente

<?php
putenv ("UNIQID=$uniqid");
?>

Veja também getenv().

Anterior | Principal | Próxima
phpversion | Acima | restore_include_path


restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_path -- Restaura o valor da opção de configuração include_path

Descrição

void restore_include_path ( void )

Restaura a opção de configuração include_path de volta para o seu valor principal definido no php.ini

Exemplo 1. Exemplo restore_include_path()

<?php

print get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

print get_include_path();  // /inc

// Funciona a partir do PHP 4.3.0
restore_include_path();

// Funciona em todas as versões do PHP
ini_restore('include_path');

print get_include_path();  // .:/usr/local/lib/php

?>

Veja também ini_restore(),
set_include_path(),
get_include_path() e
include().

Anterior | Principal | Próxima
putenv | Acima | set_include_path


set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path -- Define a opção de configuração include_path

Descrição

string set_include_path ( string new_include_path)

Define a opção de configuração include_path pela duraão do script. Retorna o valor anterior de include_path em caso de sucesso ou FALSE em caso de falha.

Exemplo 1. Exemplo set_include_path()

<?php
// Funciona a partir do  PHP 4.3.0
set_include_path('/inc');

// Funciona em todas as versões
ini_set('include_path', '/inc');
?>

Veja também ini_set(),
get_include_path(),
restore_include_path() e
include().

Anterior | Principal | Próxima
restore_include_path | Acima | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

set_magic_quotes_runtime -- Define a configuração atual para magic_quotes_runtime

Descrição

bool set_magic_quotes_runtime ( int new_setting)

Define a configuração atual pata magic_quotes_runtime (0 para off, 1 para on).

Veja também: get_magic_quotes_gpc() e get_magic_quotes_runtime().

Anterior | Principal | Próxima
set_include_path | Acima | set_time_limit


set_time_limit

(PHP 3, PHP 4 , PHP 5)

set_time_limit -- Limita o tempo de execução do script

Descrição

void set_time_limit ( int seconds)

Define o número de segundos durante os quais é permitido a execução do script. Se este limite é atingido, o script retorna um erro fatal. O limite padrão é de 30 segundos, ou se existir o valor definido o valor max_execution_time definido no php.ini. Se seconds for definido como zero, não é imposto nenhum limite.

Quando utilizada, set_time_limit() reinicia o contador do limite do tempo a partir de zero. Em outras palavras, se o limite for 30 segundos, e 25 segundos depois do inicio da execução do script for utilizada a função com por exemplo, set_time_limit(20), o script será executado por 45 segundos até acabar o tempo.

Atenção

set_time_limit() não tem efeito quando o PHP esta sendo executado em safe mode. Não existe como contornar sem desabilitar o safe mode ou mudar o limite de tempo no php.ini.

Nota: A função set_time_limit() e a diretiva de configuração max_execution_time somente afetam a execução do script em si mesmo. Qualquer tempo gasto com atividades que aconteçam fora da execução do script como chamadas de sistema system(), a função sleep(), consultas a banco de dados, etc. Não é incluído ao determinar o limite de tempo de execução do script.

Anterior | Principal | Próxima
set_magic_quotes_runtime | Acima | version_compare


version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compare -- Compares two "PHP-standardized" version number strings

Description

int version_compare ( string version1, string version2 [, string operator])

version_compare() compares two "PHP-standardized" version number strings. This is useful if you would like to write programs working only on some versions of PHP.

version_compare() returns -1 if the first version is lower than the second, 0 if they are equal, and +1 if the second is lower.

The function first replaces _, - and + with a dot . in the version strings and also inserts dots . before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it splits the results like if you were using explode('.', $ver). Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: dev < alpha = a < beta = b < RC < pl. This way not only versions with different levels like '4.1' and '4.1.2' can be compared but also any PHP specific version containing development state.

If you specify the third optional operator argument, you can test for a particular relationship. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively. Using this argument, the function will return 1 if the relationship is the one specified by the operator, 0 otherwise.

Exemplo 1. version_compare() example

<?php
// prints -1
echo version_compare("4.0.4", "4.0.6");

// these all print 1
echo version_compare("4.0.4", "4.0.6", "<");
echo version_compare("4.0.6", "4.0.6", "eq");
?>

Anterior | Principal | Próxima
set_time_limit | Acima | zend_logo_guid


zend_logo_guid

(PHP 4 , PHP 5)

zend_logo_guid -- Retorna o guid zend

Descrição

string zend_logo_guid ( void )

Esta função retorna um ID que pode ser usado para mostrar o logo da Zend usando uma imagem embutida.

Exemplo 1. Exemplo zend_logo_uid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

Veja também php_logo_guid().

Anterior | Principal | Próxima
version_compare | Acima | zend_version


zend_version

(PHP 4 , PHP 5)

zend_version -- Obtém a versão da Zend engine que esta sendo executada

Descrição

string zend_version ( void )

Retorna uma string contendo a versão atual da Zend Engine que esta sendo executada.

Exemplo 1. Exemplo zend_version()

<?php
// mostra por exemplo  'Zend engine version: 1.0.4'
echo "Zend engine version: " . zend_version();
?>

Veja também phpinfo(),
phpcredits(),
php_logo_guid() e
phpversion().

Anterior | Principal | Próxima
zend_logo_guid | Acima | POSIX Functions


POSIX Functions

Manual do PHP
Anterior Próxima

LXXXIII. POSIX Functions

Introdução

This module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means. POSIX.1 for example defined the open(), read(), write() and close() functions, too, which traditionally have been part of PHP 3 for a long time. Some more system specific functions have not been available before, though, and this module tries to remedy this by providing easy access to these functions.

Atenção

Sensitive data can be retrieved with the POSIX functions, e.g. posix_getpwnam() and friends. None of the POSIX function perform any kind of access checking when safe mode is enabled. It's therefore strongly advised to disable the POSIX extension at all (use --disable-posix in your configure line) if you're operating in such an environment.

Nota: Esta extensão não está disponível na plataforma Windows.

Instalação

POSIX functions are enabled by default. You can disable POSIX-like functions with --disable-posix.

Veja Também

The section about Process Control Functions maybe of interest for you.

Índice
posix_ctermid -- Get path name of controlling terminal
posix_get_last_error -- Retrieve the error number set by the last posix function that failed.
posix_getcwd -- Pathname of current directory
posix_getegid -- Return the effective group ID of the current process
posix_geteuid -- Return the effective user ID of the current process
posix_getgid -- Return the real group ID of the current process
posix_getgrgid -- Return info about a group by group id
posix_getgrnam -- Return info about a group by name
posix_getgroups -- Return the group set of the current process
posix_getlogin -- Return login name
posix_getpgid -- Get process group id for job control
posix_getpgrp -- Return the current process group identifier
posix_getpid -- Return the current process identifier
posix_getppid -- Return the parent process identifier
posix_getpwnam -- Return info about a user by username
posix_getpwuid -- Return info about a user by user id
posix_getrlimit -- Return info about system resource limits
posix_getsid -- Get the current sid of the process
posix_getuid -- Return the real user ID of the current process
posix_isatty -- Determine if a file descriptor is an interactive terminal
posix_kill -- Send a signal to a process
posix_mkfifo -- Create a fifo special file (a named pipe)
posix_setegid -- Set the effective GID of the current process
posix_seteuid -- Set the effective UID of the current process
posix_setgid -- Set the GID of the current process
posix_setpgid -- set process group id for job control
posix_setsid -- Make the current process a session leader
posix_setuid -- Set the UID of the current process
posix_strerror -- Retrieve the system error message associated with the given errno.
posix_times -- Get process times
posix_ttyname -- Determine terminal device name
posix_uname -- Get system name

Anterior | Principal | Próxima
zend_version | Acima | posix_ctermid


posix_ctermid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_ctermid -- Get path name of controlling terminal

Description

string posix_ctermid ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
POSIX Functions | Acima | posix_get_last_error


posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_error -- Retrieve the error number set by the last posix function that failed.

Description

int posix_get_last_error ( void )

Returns the errno (error number) set by the last posix function that failed. If no errors exist, 0 is returned. If you're wanting the system error message associated with the errno, use posix_strerror().

See also posix_strerror().

Anterior | Principal | Próxima
posix_ctermid | Acima | posix_getcwd


posix_getcwd

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getcwd -- Pathname of current directory

Description

string posix_getcwd ( void )

posix_getcwd() returns the absolute pathname of the script's current working directory. posix_getcwd() returns FALSE on error.

Anterior | Principal | Próxima
posix_get_last_error | Acima | posix_getegid


posix_getegid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getegid -- Return the effective group ID of the current process

Description

int posix_getegid ( void )

Return the numeric effective group ID of the current process. See also posix_getgrgid() for information on how to convert this into a useable group name.

Anterior | Principal | Próxima
posix_getcwd | Acima | posix_geteuid


posix_geteuid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_geteuid -- Return the effective user ID of the current process

Description

int posix_geteuid ( void )

Return the numeric effective user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

Anterior | Principal | Próxima
posix_getegid | Acima | posix_getgid


posix_getgid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getgid -- Return the real group ID of the current process

Description

int posix_getgid ( void )

Return the numeric real group ID of the current process. See also posix_getgrgid() for information on how to convert this into a useable group name.

Anterior | Principal | Próxima
posix_geteuid | Acima | posix_getgrgid


posix_getgrgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getgrgid -- Return info about a group by group id

Description

array posix_getgrgid ( int gid)

Returns an array of information about a group and FALSE on failure. If gid isn't a number then NULL is returned and an E_WARNING level error is generated.

Exemplo 1. Example use of posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);

?>

An example output:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Nota: As of PHP 4.2.0, members is returned as an array of member usernames in the group. Before this time it was simply an integer (the number of members in the group) and the member names were returned with numerical indices.

See also posix_getegid(),
filegroup(),
stat(), and
safe_mode_gid.

Anterior | Principal | Próxima
posix_getgid | Acima | posix_getgrnam


posix_getgrnam

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getgrnam -- Return info about a group by name

Description

array posix_getgrnam ( string name)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
posix_getgrgid | Acima | posix_getgroups


posix_getgroups

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getgroups -- Return the group set of the current process

Description

array posix_getgroups ( void )

Returns an array of integers containing the numeric group ids of the group set of the current process. See also posix_getgrgid() for information on how to convert this into useable group names.

Anterior | Principal | Próxima
posix_getgrnam | Acima | posix_getlogin


posix_getlogin

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getlogin -- Return login name

Description

string posix_getlogin ( void )

Returns the login name of the user owning the current process. See posix_getpwnam() for information how to get more information about this user.

Anterior | Principal | Próxima
posix_getgroups | Acima | posix_getpgid


posix_getpgid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpgid -- Get process group id for job control

Description

int posix_getpgid ( int pid)

Returns the process group identifier of the process pid.

This is not a POSIX function, but is common on BSD and System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Anterior | Principal | Próxima
posix_getlogin | Acima | posix_getpgrp


posix_getpgrp

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpgrp -- Return the current process group identifier

Description

int posix_getpgrp ( void )

Return the process group identifier of the current process. See POSIX.1 and the getpgrp(2) manual page on your POSIX system for more information on process groups.

Anterior | Principal | Próxima
posix_getpgid | Acima | posix_getpid


posix_getpid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpid -- Return the current process identifier

Description

int posix_getpid ( void )

Return the process identifier of the current process.

Anterior | Principal | Próxima
posix_getpgrp | Acima | posix_getppid


posix_getppid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getppid -- Return the parent process identifier

Description

int posix_getppid ( void )

Return the process identifier of the parent process of the current process.

Anterior | Principal | Próxima
posix_getpid | Acima | posix_getpwnam


posix_getpwnam

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getpwnam -- Return info about a user by username

Description

array posix_getpwnam ( string username)

Returns an associative array containing information about a user referenced by an alphanumeric username, passed in the username parameter.

The array elements returned are:

Tabela 1. The user information array

Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not her real, full name. This should be the same as the username parameter used when calling the function, and hence redundant.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID of the user in numeric form.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

Anterior | Principal | Próxima
posix_getppid | Acima | posix_getpwuid


posix_getpwuid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getpwuid -- Return info about a user by user id

Description

array posix_getpwuid ( int uid)

Returns an associative array containing information about a user referenced by a numeric user ID, passed in the uid parameter.

The array elements returned are:

Tabela 1. The user information array

Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not her real, full name.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID, should be the same as the uid parameter used when calling the function, and hence redundant.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

Anterior | Principal | Próxima
posix_getpwnam | Acima | posix_getrlimit


posix_getrlimit

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getrlimit -- Return info about system resource limits

Description

array posix_getrlimit ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
posix_getpwuid | Acima | posix_getsid


posix_getsid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getsid -- Get the current sid of the process

Description

int posix_getsid ( int pid)

Return the sid of the process pid. If pid is 0, the sid of the current process is returned.

This is not a POSIX function, but is common on System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Anterior | Principal | Próxima
posix_getrlimit | Acima | posix_getuid


posix_getuid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getuid -- Return the real user ID of the current process

Description

int posix_getuid ( void )

Return the numeric real user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

Anterior | Principal | Próxima
posix_getsid | Acima | posix_isatty


posix_isatty

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_isatty -- Determine if a file descriptor is an interactive terminal

Description

bool posix_isatty ( int fd)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
posix_getuid | Acima | posix_kill


posix_kill

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_kill -- Send a signal to a process

Description

bool posix_kill ( int pid, int sig)

Send the signal sig to the process with the process identifier pid. Returns FALSE, if unable to send the signal, TRUE otherwise.

See also the kill(2) manual page of your POSIX system, which contains additional information about negative process identifiers, the special pid 0, the special pid -1, and the signal number 0.

Anterior | Principal | Próxima
posix_isatty | Acima | posix_mkfifo


posix_mkfifo

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_mkfifo -- Create a fifo special file (a named pipe)

Description

bool posix_mkfifo ( string pathname, int mode)

posix_mkfifo() creates a special FIFO file which exists in the file system and acts as a bidirectional communication endpoint for processes.

The second parameter mode has to be given in octal notation (e.g. 0644). The permission of the newly created FIFO also depends on the setting of the current umask(). The permissions of the created file are (mode & ~umask).

Nota: Quando o safe-mode está ativo, o PHP verifica se o diretório que será afetado por essa operação tem o mesmo UID (proprietário) do script que está sendo executado.

Anterior | Principal | Próxima
posix_kill | Acima | posix_setegid


posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegid -- Set the effective GID of the current process

Description

bool posix_setegid ( int gid)

Set the effective group ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Returns TRUE on success, FALSE otherwise.

Anterior | Principal | Próxima
posix_mkfifo | Acima | posix_seteuid


posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuid -- Set the effective UID of the current process

Description

bool posix_seteuid ( int uid)

Set the real user ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Returns TRUE on success, FALSE otherwise. See also posix_setgid().

Anterior | Principal | Próxima
posix_setegid | Acima | posix_setgid


posix_setgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setgid -- Set the GID of the current process

Description

bool posix_setgid ( int gid)

Set the real group ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function. The appropriate order of function calls is posix_setgid() first, posix_setuid() last.

Returns TRUE on success, FALSE otherwise.

Anterior | Principal | Próxima
posix_seteuid | Acima | posix_setpgid


posix_setpgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setpgid -- set process group id for job control

Description

int posix_setpgid ( int pid, int pgid)

Let the process pid join the process group pgid. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Returns TRUE on success, FALSE otherwise.

Anterior | Principal | Próxima
posix_setgid | Acima | posix_setsid


posix_setsid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setsid -- Make the current process a session leader

Description

int posix_setsid ( void )

Make the current process a session leader. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Returns the session id.

Anterior | Principal | Próxima
posix_setpgid | Acima | posix_setuid


posix_setuid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setuid -- Set the UID of the current process

Description

bool posix_setuid ( int uid)

Set the real user ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Returns TRUE on success, FALSE otherwise. See also posix_setgid().

Anterior | Principal | Próxima
posix_setsid | Acima | posix_strerror


posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerror -- Retrieve the system error message associated with the given errno.

Description

string posix_strerror ( int errno)

Returns the POSIX system error message associated with the given errno. If errno is 0, then the string "Success" is returned. The function posix_get_last_error() is used for retrieving the last POSIX errno.

See also posix_get_last_error().

Anterior | Principal | Próxima
posix_setuid | Acima | posix_times


posix_times

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_times -- Get process times

Description

array posix_times ( void )

Returns a hash of strings with information about the current process CPU usage. The indices of the hash are

  • ticks - the number of clock ticks that have elapsed since reboot.

  • utime - user time used by the current process.

  • stime - system time used by the current process.

  • cutime - user time used by current process and children.

  • cstime - system time used by current process and children.

Anterior | Principal | Próxima
posix_strerror | Acima | posix_ttyname


posix_ttyname

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_ttyname -- Determine terminal device name

Description

string posix_ttyname ( int fd)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
posix_times | Acima | posix_uname


posix_uname

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_uname -- Get system name

Description

array posix_uname ( void )

Returns a hash of strings with information about the system. The indices of the hash are

  • sysname - operating system name (e.g. Linux)

  • nodename - system name (e.g. valiant)

  • release - operating system release (e.g. 2.2.10)

  • version - operating system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)

  • machine - system architecture (e.g. i586)

  • domainname - DNS domainname (e.g. php.net)

domainname is a GNU extension and not part of POSIX.1, so this field is only available on GNU systems or when using the GNU libc.

Posix requires that you must not make any assumptions about the format of the values, e.g. you cannot rely on three digit version numbers or anything else returned by this function.

Anterior | Principal | Próxima
posix_ttyname | Acima | PostgreSQL


PostgreSQL

Manual do PHP
Anterior Próxima

LXXXIV. PostgreSQL

Introdução

O banco de dados PostgreSQL é um produto de código aberto e disponível gratuitamente. O Postgres, desenvolvido originalmente no Departamento de Ciência de Computação da Universidade de Berkeley, foi pioneiro em muitos dos conceitos objeto-relacionais que agora estão disponíveis em alguns bancos de dados comerciais. Fornece suporte a linguagem SQL92/SQL99, integridade de transações e extensibilidade de tipos. O PostgreSQL é um descendente com código aberto do código original desenvolvido em Berkeley.

Requisitos

Para usar usar as funções para PostgreSQL, você precisa do PostgreSQL 6.5 ou superior e PostgreSQL 7.0 ou superior para habilitar todos os recursos deste módulo. PostgreSQL suporta inúmeros tipos de codificação de caracteres incluindo a codificação de caracteres multibyte. A versão mais atual e mais informações sobre PostgreSQL estão disponíveis em http://www.postgresql.org/ e http://techdocs.postgresql.org/.

Instalação

Para habilitar o módulo de funções para PostgreSQL, a opção de configuração --with-pgsql[=DIR] deve ser usada no momento da compilação do PHP. Se o módulo PostgreSQL estiver disponível como objeto compartilhado, poderá ser carregado usando a diretiva extension no php.ini ou a função dl().

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração do PostgreSQL

Nome | Padrão | Alterável
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM
pgsql.max_links | "-1" | PHP_INI_SYSTEM
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM
pgsql.ignore_notice | "0" | PHP_INI_ALL
pgsql.log_notice | "0" | PHP_INI_ALL
Para mais detalhes e definições das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

pgsql.allow_persistent boolean

Se quer ou não permitir conexões persistentes com o PostgreSQL.

pgsql.max_persistent integer

O número máximo de conexões persistentes com PostgreSQL por processo.

pgsql.max_links integer

O número máximo de conexões PostgreSQL por processo, incluindo as persistentes.

pgsql.auto_reset_persistent integer

Detecta conexões permantentes quebradas pg_pconnect(). Causa uma pequena sobrecarga.

pgsql.ignore_notice integer

Quando ignorar ou não os avisos do PostgreSQL.

pgsql.log_notice integer

Quando ou não realizar ou não o log de avisos do PostgreSQL. A diretiva pgsql.ignore_notice deve estar em off para poder fazer o log dos avisos.

Como usar e algumas dicas

Atenção

Usar o módulo PostgreSQL com o PHP 4.0.6 não é recomendado devido a um bug no código de manipulação de notificações. Use o 4.1.0 ou superior.

Atenção

Os nomes das funções PostgreSQL serão alterados na versão 4.2.0 para confirmar os padrões de programação atuais. A maioria dos novos nomes terão sublinhados (underscore) adicionais, por exemplo, pg_lo_open(). Algumas funções foram renomeadas para uma maior consistência, por exemplo, pg_exec() mudou para pg_query(). Os nomes antigos podem ser usados na 4.2.0 e em algumas poucas outras versões após esta, mas eles serão removidos futuramente.

Tabela 2. Nomes de funções alterados

pg_cmdtuples() | pg_affected_rows()
pg_errormessage() | pg_last_error()
pg_exec() | pg_query()
pg_fieldname() | pg_field_name()
pg_fieldsize() | pg_field_size()
pg_fieldnum() | pg_field_num()
pg_fieldprtlen() | pg_field_prtlen()
pg_fieldisnull() | pg_field_is_null()
pg_freeresult() | pg_free_result()
pg_getlastoid() | pg_last_oid()
pg_loreadall() | pg_lo_read_all()
pg_locreate() | pg_lo_create()
pg_lounlink() | pg_lo_unlink()
pg_loopen() | pg_lo_unlink()
pg_loclose() | pg_lo_close()
pg_loread() | pg_lo_read()
pg_lowrite() | pg_lo_write()
pg_loimport() | pg_lo_import()
pg_loexport() | pg_lo_export()
pg_numrows() | pg_num_rows()
pg_numfields() | pg_num_fields()
pg_result() | pg_fetch_result()

A antiga sintaxe pg_connect()/pg_pconnect() ficará obsoleta para suportar conexões assíncronas no futuro. Por favor, use a string de conexão para pg_connect() e pg_pconnect().

Nem todas as funções são suportadas por todas as compilações. Isso vai depender da versão da libpq (A interface cliente em C para PostgreSQL) e como esta foi compilada. Se há alguma função ausente, é porque a libpq não suporta a característica exigida por esta função.

Também é importante que você use uma versão da libpq mais nova do que a que o servidor exige. Se você usar uma versão mais antiga do que a que o servidor espera, você poderá ter problemas.

Desde a versão 6.3 (03/02/1998), o PostgreSQL usa sockets de domínio unix por padrão. A porta TCP não ficará aberta por padrão. Uma tabela é mostrada abaixo descrevendo essas novas possibilidades de conexão. Este socket será encontrado em /tmp/.s.PGSQL.5432. Esta opção pode ser habilitada com o parâmetro '-i' para o postmaster e seu significado é: "escute em sockets TCP/IP assim como em sockets de domínio Unix".

Tabela 3. Postmaster e PHP

Postmaster | PHP | Status
postmaster & | pg_connect("dbname=MyDbName"); | OK
postmaster -i & | pg_connect("dbname=MyDbName"); | OK
postmaster & | pg_connect("host=localhost dbname=MyDbName"); | Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php on line 20.
postmaster -i & | pg_connect("host=localhost dbname=MyDbName"); | OK

Uma conexão com o servidor PostgreSQL pode ser estabelecida com os seguintes pares de valores definidos na string de comando: $conn = pg_connect("host=seuHost port=suaPorta tty=seuTTY options=suasOpcoes dbname=seuDB user=seuUsuario password=suaSenha");

A sintaxe anterior: $conn = pg_connect ("host", "porta", "opcoes", "tty", "nomebd") ficará obsoleta.

Variáveis de ambiente afetam o comportamento do servidor/cliente PostgreSQL. Por exemplo, o módulo PostgreSQL irá procurar pela variável de ambiente PGHOST quando o nome de host é omitido na string de conexão. As variáveis de ambiente suportadas variam de versão para versão. Vide o Manual de Programador do PostgreSQL (Programmer´s Manual, na seção libpq - Enviroment Variables) para maiores detalhes.

Certifique-se que você definiu as variáveis de ambiente para o usuário apropriado. Use $_ENV ou getenv() para verificar se as variáveis de ambiente estão disponíveis para o processo atual.

Exemplo 1. Definindo os parâmetros padrão

PGHOST=psgql.example.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP

export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

PGSQL_ASSOC (integer)

PGSQL_NUM (integer)

PGSQL_BOTH (integer)

PGSQL_CONNECTION_BAD (integer)

PGSQL_CONNECTION_OK (integer)

PGSQL_SEEK_SET (integer)

PGSQL_SEEK_CUR (integer)

PGSQL_SEEK_END (integer)

PGSQL_ESCAPE_STRING (integer)

PGSQL_ESCAPE_BYTEA (integer)

PGSQL_EMPTY_QUERY (integer)

PGSQL_COMMAND_OK (integer)

PGSQL_TUPLES_OK (integer)

PGSQL_COPY_OUT (integer)

PGSQL_COPY_IN (integer)

PGSQL_BAD_RESPONSE (integer)

PGSQL_NONFATAL_ERROR (integer)

PGSQL_FATAL_ERROR (integer)

Exemplos

A partir do PostgreSQL 7.1.0, você pode armazenar até 1GB dentro de um campo do tipo texto. Em versões mais antigas, isto era limitado ao tamanho do bloco (o padrão era 8KB e o máximo era 32KB, definido em tempo de compilação).

Para usar a interface de objetos grandes (large objects), é exigido que se encapsule as funções de objetos grandes em um bloco de transação. Um bloco de transação inicia-se com a declaração SQL BEGIN e, se a transação for válida, termina com COMMIT ou END. Se a transação falhar, ela deve ser fechada com ROLLBACK ou ABORT.

Exemplo 2. Usando Objetos Grandes (large objects)

<?php
    $database = pg_connect ("dbname=jacarta");
    pg_query ($database, "begin");
    $oid = pg_lo_create ($database);
    echo "$oid\n";
    $handle = pg_lo_open ($database, $oid, "w");
    echo "$handle\n";
    pg_lo_write ($handle, "large object data");
    pg_lo_close ($handle);
    pg_query ($database, "commit");
?>
Você não deve fechar a conexão com o servidor PostgreSQL antes de fechar o objeto grande.

Índice
pg_affected_rows -- Retorna o número de registros afetados (linhas)
pg_cancel_query -- Cancela uma consulta (query) assíncrona
pg_client_encoding -- Retorna a codificação do cliente
pg_close -- Fecha uma conexão PostgreSQL
pg_connect -- Abre uma conexão PostgreSQL
pg_connection_busy -- Verifica se a conexão está ocupada ou não
pg_connection_reset -- Reinicia uma conexão (reconecta)
pg_connection_status -- Retorna o status da conexão
pg_convert -- Converte os valores de um array associativo em uma declaração SQL apropriada.
pg_copy_from -- Insere registros em uma tabela a partir de um array
pg_copy_to -- Copia uma tabela em um array
pg_dbname -- Retorna o nome do banco de dados
pg_delete -- Remove registros.
pg_end_copy -- Sincroniza com o backend PostgreSQL
pg_escape_bytea -- Gera binários para o tipo bytea
pg_escape_string -- Gera string para o tipo text/char
pg_fetch_all -- Retorna todas as linhas (registros) como um array
pg_fetch_array -- Retorna uma linha (registro) como um array
pg_fetch_assoc -- Retorna uma linha (registro) como uma matriz associativa
pg_fetch_object -- Retorna uma linha (registro) como um objeto
pg_fetch_result -- Retorna valores a partir de um recurso (resource) de resultado
pg_fetch_row -- Retorna uma linha como um array enumerado
pg_field_is_null -- Testa se o campo é NULL
pg_field_name -- Retorna o nome de um campo
pg_field_num -- Retorna o número do campo referido
pg_field_prtlen -- Retorna o comprimento impresso
pg_field_size -- Retorna o tamanho de armazenamento interno de um campo
pg_field_type -- Retorna o nome do tipo para o campo de nome correspondente
pg_free_result -- Libera a memória usada pelo resultado
pg_get_notify -- Ping database connection
pg_get_pid -- Ping database connection
pg_get_result -- Retorna o resultado de uma consulta (query) assíncrona
pg_host -- Retorna o nome da máquina associada a uma conexão
pg_insert -- Insere um array na tabela
pg_last_error -- Retorna a string da última mensagem de erro de uma conexão
pg_last_notice -- Retorna a última notificação do servidor PostgreSQL
pg_last_oid -- Retorna o último oid do objeto
pg_lo_close -- Fecha um objeto grande (large object)
pg_lo_create -- Cria um objeto grande (large object)
pg_lo_export -- Exporta um objeto grande (large object) para um arquivo
pg_lo_import -- Importa um objeto grande (large object) a partir de um arquivo
pg_lo_open -- Abre um objeto grande (large object)
pg_lo_read_all -- Lê um objeto grande (large object) inteiro e o envia diretamente para o navegador
pg_lo_read -- Lê um objeto grande (large object)
pg_lo_seek -- Procura uma posição em um objeto grande (large object)
pg_lo_tell -- Retorna a posição atual de um objeto grande (large object)
pg_lo_unlink -- Remove um objeto grande (large object)
pg_lo_write -- Escreve em um objeto grande (large object)
pg_metadata -- Retorna os metadados da tabela.
pg_num_fields -- Retorna o número de campos
pg_num_rows -- Retorna o número de linhas
pg_options -- Retorna as opções associadas com a conexão
pg_pconnect -- Abre uma conexão PostgreSQL persistente
pg_ping -- Faz um ping na conexão com o banco de dados
pg_port -- Retorna o número da porta associada com a conexão.
pg_put_line -- Envia uma string terminada em NULL para o backend PostgreSQL
pg_query -- Executa uma consulta (query)
pg_result_error -- Retorna a mensagem de erro associada a um resultado
pg_result_seek -- Altera a posição do ponteiro interno de um recurso (resource) de resultado
pg_result_status -- Retorna o status do resultado da consulta (query)
pg_select -- Seleciona registros.
pg_send_query -- Envia uma consulta (query) assincrona
pg_set_client_encoding -- Define a codificação do cliente
pg_trace -- Habilita rastreamento em uma conexão PostgreSQL
pg_tty -- Retorna o nome da tty associada com a conexão
pg_unescape_bytea -- Faz escape binário para o tipo bytea
pg_untrace -- Desabilita o rastreamento de uma conexão PostgreSQL
pg_update -- Atualiza uma tabela.

Anterior | Principal | Próxima
posix_uname | Acima | pg_affected_rows


pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows -- Retorna o número de registros afetados (linhas)

Descrição

int pg_affected_rows ( resource result)

pg_affected_rows() retorna o número de linhas (instâncias/registros/linhas) afetados por consultas (queries) INSERT, UPDATE e DELETE executados por pg_query(). Se nenhuma linha foi afetada, ela retornará 0.

Exemplo 1. pg_affected_rows()

<?php
     $result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");
     $cmdtuples = pg_affected_rows($result);
     echo $cmdtuples . " tuples are affected.\n";
?>

Nota: Esta função costumava ser chamada de pg_cmdtuples().

Veja também pg_query() e pg_num_rows().

Anterior | Principal | Próxima
PostgreSQL | Acima | pg_cancel_query


pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query -- Cancela uma consulta (query) assíncrona

Descrição

bool pg_cancel_query ( resource connection)

pg_cancel_query() cancela uma consulta (query) assíncrona enviada por pg_send_query(). Você não pode cancelar uma consulta executada por pg_query().

Veja também pg_send_query() e pg_connection_busy().

Anterior | Principal | Próxima
pg_affected_rows | Acima | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding -- Retorna a codificação do cliente

Descrição

string pg_client_encoding ( [resource connection])

pg_client_encoding() retorna a codificação do cliente como uma string. A string de retorno pode ser SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250.

Nota: Esta função requer PHP 4.0.3 ou maior e PostgreSQL 7.0 ou maior Se a libpq foi compilada sem suporte a codificação multibyte, pg_set_client_encoding() sempre retornará "SQL_ASCII". As codificações suportadas dependem da versão do PostgreSQL. Vide o manual do PostgreSQL para mais detalhes sobre como habilitar o suporte a multibyte e outras codificações.

Esta função costumava ser chamada pg_clientencoding().

Veja também pg_set_client_encoding().

Anterior | Principal | Próxima
pg_cancel_query | Acima | pg_close


pg_close

(PHP 3, PHP 4 , PHP 5)

pg_close -- Fecha uma conexão PostgreSQL

Descrição

bool pg_close ( resource connection)

pg_close() fecha a conexão não persistente com servidor de banco de dados PostgreSQL associado ao recurso (resource) connection dado. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Normalmente, o uso de pg_close() não é necessário já que conexões não persistentes abertas são automaticamente fechadas ao final do processamento do script.

Exemplo 1. pg_close() example

<?php
      $dbconn = pg_connect("host=localhost port=5432 dbname=mary")
          or die("Não foi possível conectar");
      print("Conexão bem sucedida");
      pg_close($dbconn);
  ?>

Se existem recursos (resource) de objetos grandes (large objects) abertos na conexão, não feche a conexão antes de fechar todos os recursos relacionados com estes objetos.

Anterior | Principal | Próxima
pg_client_encoding | Acima | pg_connect


pg_connect

(PHP 3, PHP 4 , PHP 5)

pg_connect -- Abre uma conexão PostgreSQL

Descrição

resource pg_connect ( string connection_string)

pg_connect() retorna um recurso (resource) de conexão que é necessário para outras funções para PostgreSQL.

pg_connect() abre uma conexão com um servidor de banco de dados PostgreSQL especificado por connection_string. Retorna um recurso (resource) de conexão em caso de sucesso. Retorna FALSE se a conexão não pôde ser estabelecida. connection_string deve ser uma string entre aspas duplas.

Exemplo 1. Usando pg_connect()

<?php
$bdcon = pg_connect("dbname=flavia");
//conecta a um banco de dados chamado "flavia"

$bdcon2 = pg_connect("host=localhost port=5432 dbname=flavia");
// conecta a um banco de dados chamado "flavia" em "localhost" na porta "5432"

$bdcon3 = pg_connect("host=ovelha port=5432 dbname=flavia user=ze password=buu");
//conecta a um banco de dados chamado "flavia" na máquina "ovelha" com um usuário e senha

$con_string = "host=ovelha port=5432 dbname=flavia user=ze password=buu";
$bdcon4 = pg_connect($con_string);
//coneta a um banco de dados chamado "flavia" na máquina "ovelha" com um usuário e senha
?>
Os argumentos disponíveis para connection_string incluem host, port, tty, options, dbname, user e password.

Se uma segunda chamada é feita para pg_connect() com a mesma connection_string, nenhuma nova conexão será estabelecida, ao invés disso, o recurso (resource) de conexão da conexão que já está aberta será retornado. Você pode ter multiplas conexões para o mesmo banco de dados se você usar diferentes strings de conexão.

A sintaxe antiga com parâmetros múltiplos $con = pg_connect("host", "port", "options", "tty", "dbname") se tornou obsoleta.

Veja também pg_pconnect(),
pg_close(), pg_host(),
pg_port(), pg_tty(),
pg_options() e pg_dbname().

Anterior | Principal | Próxima
pg_close | Acima | pg_connection_busy


pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy -- Verifica se a conexão está ocupada ou não

Descrição

bool pg_connection_busy ( resource connection)

pg_connection_busy() retorna TRUE se a conexão está ocupada. Se estiver ocupada, significa que uma consulta (query) anterior ainda está sendo executada. Se pg_get_result() for chamada, será bloqueada.

Exemplo 1. pg_connection_busy() example

<?php
      $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
      $bs = pg_connection_busy($dbconn);
      if ($bs) {
          echo 'a conexão esta ocupada';
      }
      else {
         echo 'a conexão não esta ocupada';
      }
  ?>

Veja também pg_connection_status() e pg_get_result().

Anterior | Principal | Próxima
pg_connect | Acima | pg_connection_reset


pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset -- Reinicia uma conexão (reconecta)

Descrição

bool pg_connection_reset ( resource connection)

pg_connection_reset() reinicia uma conexão. É útil para recuperação de erros. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. pg_connection_reset() example

<?php
      $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
      $dbconn2 = pg_connection_reset($dbconn);
      if ($dbconn2) {
          echo "reset successful\n";
      }
      else {
          echo "reset failed\n";
      }
  ?>

Veja também pg_connect(),
pg_pconnect() e
pg_connection_status().

Anterior | Principal | Próxima
pg_connection_busy | Acima | pg_connection_status


pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status -- Retorna o status da conexão

Descrição

int pg_connection_status ( resource connection)

pg_connection_status() retorna o status da conexão. Os status possíveis são PGSQL_CONNECTION_OK e PGSQL_CONNECTION_BAD. O valor de retorno 0 inteiro indica uma conexão bem sucedida.

Exemplo 1. pg_connection_status() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Não foi possível conectar");
    $stat = pg_connection_status($dbconn);
    if ($stat === 0) {
        echo 'Connection status ok';
    } else {
        echo 'Connection status bad';
    }
?>

Veja também pg_connection_busy().

Anterior | Principal | Próxima
pg_connection_reset | Acima | pg_convert


pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert -- Converte os valores de um array associativo em uma declaração SQL apropriada.

Descrição

array pg_convert ( resource connection, string table_name, array assoc_array [, int options])

pg_convert() checa e converte assoc_array em uma declaração SQL apropriada. Pré-condição para pg_convert() é a existencia de uma tabela table_name a qual teve ter tantos campos quantos os elementos em assoc_array. Os nomes dos campos em e os valores em table_name devem ser iguais aos índices e valores em assoc_array. Retorna uma matriz com os valores convertidos em caso de sucesso ou se não, FALSE.

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Veja também pg_meta_data().

Anterior | Principal | Próxima
pg_connection_status | Acima | pg_copy_from


pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from -- Insere registros em uma tabela a partir de um array

Descrição

bool pg_copy_from ( resource connection, string table_name, array rows [, string delimiter [, string null_as]])

pg_copy_from() insere registros em uma tabela a partir de rows. Usa o comando interno COPY FROM para inserir registros. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Veja também pg_copy_to().

Anterior | Principal | Próxima
pg_convert | Acima | pg_copy_to


pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to -- Copia uma tabela em um array

Descrição

int pg_copy_to ( resource connection, string table_name [, string delimiter [, string null_as]])

pg_copy_to() copia uma tabela em um array. Utiliza internamente o comando SQL COPY TO para inserir os registros. Seu retorno é o array resultante. Caso haja falhas, FALSE é retornado.

Veja também pg_copy_from().

Anterior | Principal | Próxima
pg_copy_from | Acima | pg_dbname


pg_dbname

(PHP 3, PHP 4 , PHP 5)

pg_dbname -- Retorna o nome do banco de dados

Descrição

string pg_dbname ( resource connection)

pg_dbname() retorna o nome do banco de dados para um dado recurso (resource) de conexão connection. Retorna FALSE, se connection não é um recurso de conexão PostgreSQL válido.

Exemplo 1. pg_dbname() example

<?php
    error_reporting(E_ALL);

    pg_connect("host=localhost port=5432 dbname=mary");
    echo pg_dbname(); // mary
?>

Anterior | Principal | Próxima
pg_copy_to | Acima | pg_delete


pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete -- Remove registros.

Descrição

mixed pg_delete ( resource connection, string table_name, array assoc_array [, int options])

pg_delete() remove registros que seguem a condição especificada por assoc_array que tem o formato campo => valor. Se options for especificado, pg_convert() é aplicada a assoc_array com a opção especificada.

Exemplo 1. pg_delete

<?php
    $db = pg_connect ('dbname=flavia');
    // Isto é seguro, já que $_POST é convertido automaticamente
    $res = pg_delete($db, 'post_log', $_POST);
    if ($res) {
        echo "Dados de POST foram removidos: $res\n";
    } else {
        echo "O usuário deve ter enviado parâmetros inválidos\n";
    }
?>

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Veja também pg_convert().

Anterior | Principal | Próxima
pg_dbname | Acima | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy -- Sincroniza com o backend PostgreSQL

Descrição

bool pg_end_copy ( [resource connection])

pg_end_copy() sincroniza o frontend PostgreSQL (geralmente um processo de servidor HTTP) com o servidor PostgreSQL depois de fazer uma operação de cópia usando pg_put_line(). pg_end_copy() deve ser chamada, caso contrário o servidor PostgreSQL pode perder a sincronia com o frontend fazendo com que o servidor gere um erro. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Para maiores detalhes e um exemplo, veja também pg_put_line().

Anterior | Principal | Próxima
pg_delete | Acima | pg_escape_bytea


pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea -- Gera binários para o tipo bytea

Descrição

string pg_escape_bytea ( string data)

pg_escape_bytea() gera uma string do tipo bytea. Retorna uma string com escapes.

Nota: Quando você usa SELECT bytea type, o PostgreSQL retorna valores de byte octais prefixados por \ (ex.: \032). Usuários devem converter de volta para binários por si mesmos.

Esta função exige PostgreSQL 7.2 ou superior. Com PostgreSQL 7.2.0 e 7.2.1, o tipo de dados bytea deve ser criado quando você habilita o suporte a multi-byte. Por exemplo, INSERT INTO tabela_teste (imagem) VALUES ('$imagem_escaped'::bytea); PostgreSQL 7.2.2 ou superior não precisa de coerção (cast). A exceção é quando a codificação de caracteres do cliente e do backend não combinam, então pode haver erro de fluxo de multi-byte. O usuário deve fazer a coerção (cast) para bytea para evitar este erro.

Veja também: pg_unescape_bytea() e pg_escape_string().

Anterior | Principal | Próxima
pg_end_copy | Acima | pg_escape_string


pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string -- Gera string para o tipo text/char

Descrição

string pg_escape_string ( string data)

pg_escape_string() gera strings do tipo text/chat. Retorna uma string com escapes para PostgreSQL. O uso desta função é recomendado no lugar de addslashes().

Nota: Esta função exige PostgreSQL 7.2 ou superior.

Veja também pg_escape_bytea()

Anterior | Principal | Próxima
pg_escape_bytea | Acima | pg_fetch_all


pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all -- Retorna todas as linhas (registros) como um array

Descrição

array pg_fetch_all ( resource result)

pg_fetch_all() retorna uma array que contém todas as linhas (registros) do recurso (resourse) de resultado. Retorna FALSE, se não existem mais registros.

Exemplo 1. Retornando linhas (registros) no PostgreSQL

<?php
$conn = pg_pconnect("dbname=escritor");
if (!$conn) {
    echo "Ocorreu um erro!\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "Ocorreu um erro!\n";
    exit;
}

$arr = pg_fetch_all($result, 0, PGSQL_NUM);

var_dump($arr);

?>

 Veja também pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() e
pg_fetch_result().

Anterior | Principal | Próxima
pg_escape_string | Acima | pg_fetch_array


pg_fetch_array

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_array -- Retorna uma linha (registro) como um array

Descrição

array pg_fetch_array ( resource result [, int row [, int result_type]])

pg_fetch_array() retorna um array que corresponde à linha (registro). Retorna FALSE se não existem mais linhas.

pg_fetch_array() é uma versão extendida de pg_fetch_row(). Além de armazenar os dados em índices numéricos (índice) no array resultante, também armazena os dados em chaves associativas (nome do campo) por padrão.

row é o número da linha (registro) a ser recuperado. A primeira linha é 0.

result_type é um parâmetro opcional que controla como o valor de retorno é iniciado. result_type é uma constante e pode ter os seguintes valores: PGSQL_ASSOC, PGSQL_NUM, e PGSQL_BOTH. pg_fetch_array() retorna um array associativo que tem o nome de campo como chave para PGSQL_ASSOC. Índice de campo como chave com PGSQL_NUM e ambos nome/índice numérico como chave com PGSQL_BOTH. O valor padrão é PGSQL_BOTH.

Nota: O parâmetro result_type foi adicionado no PHP 4.0.

pg_fetch_array() NÃO é significativamente mais lenta que pg_fetch_row(), e ainda fornece uma significativa facilidade de uso.

Exemplo 1. Retornando linhas (registros) no PostgreSQL

<?php
$conn = pg_pconnect("dbname=publicar");
if (!$conn) {
    echo "Um erro ocorreu.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM autores");
if (!$result) {
    echo "Um erro ororreu.\n";
    exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- array\n";

$arr = pg_fetch_array($result, 1, PGSQL_ASSOC);
echo $arr["autor"] . " <- array\n";

?>

Nota: A partir do PHP 4.1.0, row tornou-se opcional. A chamada pg_fetch_array() irá incrementar o contador de linha interno em 1.

Veja também pg_fetch_row(), pg_fetch_object() e pg_fetch_result().

Anterior | Principal | Próxima
pg_fetch_all | Acima | pg_fetch_assoc


pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc -- Retorna uma linha (registro) como uma matriz associativa

Descrição

array pg_fetch_assoc ( resource result [, int row])

pg_fetch_assoc() retorna um array associativo que corresponde à linha (registro) recuperado. Retorna FALSE, se não houver mais registros.

pg_fetch_assoc() é equivalente a usar pg_fetch_row() com PGSQL_ASSOC para o terceiro parâmetro. Ela guarda dados em matrizes com chaves associativas (nome do campo). Se você precisar utilizar os índices numéricos use pg_fetch_row().

row é o número da linha (registro) a ser recuperado. A primeira linha é 0.

pg_fetch_assoc() NÃO é significativamente mais lenta que pg_fetch_row(), e ainda fornece uma significativa facilidade de uso.

Exemplo 1. Retornando linhas (registros) no PostgreSQL

<?php
$conn = pg_pconnect("dbname=revista");
if (!$conn) {
    echo "Ocorreu um erro.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "Ocorreu um erro.\n";
    exit;
}

while ($row = pg_fetch_assoc($result)) {
      echo $row['id'];
      echo $row['author'];
      echo $row['email'];
}

?>

Veja também pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() e
pg_fetch_result().

Anterior | Principal | Próxima
pg_fetch_array | Acima | pg_fetch_object


pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_object -- Retorna uma linha (registro) como um objeto

Descrição

objeto pg_fetch_object ( resource result, int row [, int result_type])

pg_fetch_object() retorna um objeto com propriedades que correspondem à linha recuperada. Retorna FALSE se não existem mais linhas ou no caso de erro.

pg_fetch_object() é similar a pg_fetch_array(), com uma diferença - um objeto é retornado, ao invés de um array. Indiretamente, isto significa que você pode acessar os dados somente através dos nomes de campos, e não por seus índices (números são nomes inválidos de propriedades).

row é o número da linha (registro) a ser recuperada. A primeira linha é 0.

Em termos de performance, a função é idêntica a pg_fetch_array(), e quase tão rápida quanto pg_fetch_row() (a diferença é insignificante).

Nota: A partir do PHP 4.1.0, row é opcional.

A partir do PHP 4.3.0, result_type tem PGSQL_ASSOC como valor padrão, enquanto em outras versões mais antigas o padrão é PGSQL_BOTH. Não há utilidade para a propriedade numérica, já que nomes de propriedades numéricas são inválidas em PHP.

O parâmetro result_type deverá ser removido em versões futuras.

Exemplo 1. Postgres fetch object

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
    echo "Failed connecting to postgres database $database\n";
    exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

$row = 0; // postgres needs a row counter

while ($data = pg_fetch_object($qu, $row)) {
    echo $data->author . " (";
    echo $data->year . "): ";
    echo $data->title . "<br />";
    $row++;
}

pg_free_result ($qu);
pg_close ($db_conn);
?>

Nota: A partir do PHP 4.1.0, row tornou-se opcional. Ao chamar pg_fetch_object() o contador de linhas interno será acrescentado de 1.

Veja também
pg_query(),
pg_fetch_array(),
pg_fetch_row() e
pg_fetch_result().

Anterior | Principal | Próxima
pg_fetch_assoc | Acima | pg_fetch_result


pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result -- Retorna valores a partir de um recurso (resource) de resultado

Descrição

misto pg_fetch_result ( resource result, int row, mixed field)

pg_fetch_result() retorna valores a partir de um recurso (resource) de resultado result criado por pg_query(). row é um inteiro. field é um nome de campo (string) ou um índice de campo (inteiro). row e field especificam que célula da tabela deve ser recuperada. A numeração de linhas começa de 0. Ao invés de nomear o campo, você pode usar o índice numérico de campo sem aspas. Índices de campo iniciam-se em 0.

PostgreSQL tem muitos tipos internos mas apenas os tipos básicos são suportados. Todas as formas de tipo integer são retornadas como valores integer. Todas as formas de tipos reais (ponto flutuante) são retornados como valores float. Boolean é retornado como "t" ou "f". Todos os outros tipos, incluindo arrays, são retornados como strings formatadas na mesma maneira padrão que o PostgreSQL retornaria com o programa psql.

Anterior | Principal | Próxima
pg_fetch_object | Acima | pg_fetch_row


pg_fetch_row

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_row -- Retorna uma linha como um array enumerado

Descrição

array pg_fetch_row ( resource result, int row)

pg_fetch_row() retorna uma linha de dados a partir do resultado associado com o recurso (resource) de resultado result. A linha (registro) é recuperada como um array. Cada coluna do resultado é armazenada em um índice do array, iniciando-se no índice 0.

Retorna um array que corresponde à linha carregada, ou FALSE se não existem mais linhas.

Exemplo 1. Retornando linhas (registros) no PostgreSQL

<?php
$conn = pg_pconnect("dbname=editora");
if (!$conn) {
    echo "Um erro ocorreu.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM autores");
if (!$result) {
    echo "Um erro ocorreu.\n";
    exit;
}

while ($row=pg_fetch_row($result,$i)) {
  for($j=0; $j < count($row); $j++) {
     echo $row[$j] . "&nbsp;";
  }

  echo "<br />\n";

}

?>

Nota: A partir do PHP 4.1.0, row tornou-se opcional. Ao chamar pg_fetch_row(), o contador de linha interno será incrementado em 1.

Veja também pg_query(),
pg_fetch_array(),
pg_fetch_object() e
pg_fetch_result().

Anterior | Principal | Próxima
pg_fetch_result | Acima | pg_field_is_null


pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null -- Testa se o campo é NULL

Descrição

int pg_field_is_null ( resource result, int row, mixed field)

pg_field_is_null() testa se um campo é NULL ou não. Retorna 1 se o campo na linha dada é NULL. Retorna 0 se o campo na linha dada NÃO é NULL. O campo pode ser especificado como um índice de coluna (número) ou como o nome de um campo (string). A numeração de linhas inicia-se em 0.

Exemplo 1. pg_field_is_null() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die ("Não foi possível conectar");
    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    if ($res) {
        if (pg_field_is_null($res, 0, "ano") == 1) {
            echo "O valor do campo ano é null.\n";
        }
        if (pg_field_is_null($res, 0, "ano") == 0) {
            echo "O valor do campo ano não é null.\n";
      }
   }
?>

Nota: Esta função era chamada pg_fieldisnull().

Anterior | Principal | Próxima
pg_fetch_row | Acima | pg_field_name


pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name -- Retorna o nome de um campo

Descrição

string pg_field_name ( resource result, int field_number)

pg_field_name() retorna o nome do campo ocupando o campo de número igual a field_number no recurso (resource) de resultado result. A numeração de campo inicia-se em 0.

Exemplo 1. Getting informations about fields

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    $i = pg_num_fields($res);
    for ($j = 0; $j < $i; $j++) {
        echo "column $j\n";
        $fieldname = pg_field_name($res, $j);
        echo "fieldname: $fieldname\n";
        echo "printed length: ".pg_field_prtlen($res, $fieldname)." characters\n";
        echo "storage length: ".pg_field_size($res, $j)." bytes\n";
        echo "field type: ".pg_field_type($res, $j)." \n\n";
}
?>

The above example would produce the following output:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Nota: Esta função era chamada pg_fieldname().

Veja também pg_field_num().

Anterior | Principal | Próxima
pg_field_is_null | Acima | pg_field_num


pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num -- Retorna o número do campo referido

Descrição

int pg_field_num ( resource result, string field_name)

pg_field_num() irá retornar o número da vaga (slot) da coluna (campo) que corresponde a field_name no recurso (resource) de resultado result. A numeração de campo inicia-se em 0. Esta função retornará -1 em caso de erro.

Veja o exemplo dado na pagina pg_field_name().

Nota: Esta função era chamada pg_fieldnum().

Veja também pg_field_name().

Anterior | Principal | Próxima
pg_field_name | Acima | pg_field_prtlen


pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen -- Retorna o comprimento impresso

Descrição

int pg_field_prtlen ( resource result, int row_number, string field_name)

pg_field_prtlen() retorna o comprimento atual impresso (número de caracteres) de um valor especificado em um recurso (resource) de resultado result. A numeração de linha inicia-se em 0. Esta função retornará -1 em caso de erro.

Veja o exemplo dado na pagina pg_field_name().

Nota: Esta função era chamada pg_fieldprtlen().

Veja também pg_field_size().

Anterior | Principal | Próxima
pg_field_num | Acima | pg_field_size


pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size -- Retorna o tamanho de armazenamento interno de um campo

Descrição

int pg_field_size ( resource result, int field_number)

pg_field_size() retorna o tamanho de armazenamento interno (em bytes) do número de campo do recurso (resource) de resultado result. A numeração de campo inicia-se em 0. Um campo de tamanho -1 indica um campo de tamanho variável. Esta função retornará FALSE em caso de erro.

Veja o exemplo dado na pagina pg_field_name().

Nota: Esta função era chamada pg_fieldsize().

Veja também pg_field_prtlen() e pg_field_type().

Anterior | Principal | Próxima
pg_field_prtlen | Acima | pg_field_type


pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type -- Retorna o nome do tipo para o campo de nome correspondente

Descrição

string pg_field_type ( resource result, int field_number)

pg_field_type() retorna uma string contendo o nome do tipo do campo de número field_number dado no recurso (resource) de resultado result. A numeração de campo inicia-se em 0.

Veja o exemplo dado na pagina pg_field_name().

Nota: Esta função era chamada pg_fieldtype().

Veja também pg_field_prtlen() e pg_field_type().

Anterior | Principal | Próxima
pg_field_size | Acima | pg_free_result


pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result -- Libera a memória usada pelo resultado

Descrição

bool pg_free_result ( resource result)

pg_free_result() precisa ser usada apenas se você está preocupado em usar muita memória enquanto seu script está rodando. Todos os resultados serão liberados da memória automaticamente assim que o script terminar de executar. Mas, se você tem certeza que não precisará mais dos dados do resultado em um script, você pode chamar pg_free_result() com o recurso (resource) de resultado result como argumento e a memória ocupada pelo resultado associado será liberada. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Esta função era chamada pg_field_len().

Veja também pg_query().

Anterior | Principal | Próxima
pg_field_type | Acima | pg_get_notify


pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify -- Ping database connection

Description

array pg_get_notify ( resource connection [, int result_type])

pg_get_notify() gets notify message sent by NOTIFY SQL command. To receive notify messages, LISTEN SQL command must be issued. If there is notify message on the connection, array contains message name and backend PID is returned. If there is no message, FALSE is returned.

See also pg_get_pid()

Exemplo 1. PostgreSQL NOTIFY message

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Listen 'author_updated' message from other processes
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
    echo "No messages\n";
} else {
    print_r($notify);
}
?>

Anterior | Principal | Próxima
pg_free_result | Acima | pg_get_pid


pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid -- Ping database connection

Description

int pg_get_pid ( resource connection)

pg_get_pid() gets backend (database server process) PID. PID is useful to check if NOTIFY message is sent from other process or not.

Exemplo 1. PostgreSQL backend PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

See also pg_get_notify().

Anterior | Principal | Próxima
pg_get_notify | Acima | pg_get_result


pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result -- Retorna o resultado de uma consulta (query) assíncrona

Descrição

resource pg_get_result ( [resource connection])

pg_get_result() retorna o recurso (resource) de resultado de uma consulta (query) executada por ps_send_query(). pg_send_query() pode enviar múltiplas consultas (queries) ao servidor PostgreSQL e pg_get_result() é usada para carregar os resultados das consultas, um por um. Retorna o recurso (resource) de resultado. Se não houverem mais resultados, retorna FALSE.

Anterior | Principal | Próxima
pg_get_pid | Acima | pg_host


pg_host

(PHP 3, PHP 4 , PHP 5)

pg_host -- Retorna o nome da máquina associada a uma conexão

Descrição

string pg_host ( resource connection)

pg_host() retorna o nome da máquina com a qual o recurso (resource) de conexão connection está conectado.

Veja também pg_connect() e pg_pconnect().

Anterior | Principal | Próxima
pg_get_result | Acima | pg_insert


pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert -- Insere um array na tabela

Descrição

bool pg_insert ( resource connection, string table_name, array assoc_array [, int options])

pg_insert() insere os valores de assoc_array na tabela especificada por table_name. table_name deve ter no mínimo tantas colunas quanto forem os elementos em assoc_array. Os nomes dos campos assim como os valores em table_name devem ser iguais aos índices e valores de assoc_array. Retorna TRUE em caso de sucesso ou FALSE em falhas. Se o parâmetro options for especificado, pg_insert() é aplicado em assoc_array com a opção especificada.

Exemplo 1. pg_insert

<?php
    $db = pg_connect ('dbname=meubanco');
    // Isto é seguro uma vez que $_POST é convertido automaticamente
    $res = pg_insert($db, 'post_log', $_POST);
    if ($res) {
        echo "Dados POST arquivados com sucesso\n";
    }
    else {
        echo "O usuário deve ter inserido entradas inválidas\n";
    }
?>

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Veja também pg_convert().

Anterior | Principal | Próxima
pg_host | Acima | pg_last_error


pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error -- Retorna a string da última mensagem de erro de uma conexão

Descrição

string pg_last_error ( resource connection)

pg_last_error() retorna a última mensagem de erro para a conexão representada por connection.

As mensagens de erro podem ser sobrescritas por chamadas internas ao PostgreSQL(libpq). Se múltiplos erros ocorrerem dentro de um módulo de função do PostgreSQL, pode não retornar a mensagem de erro correta.

Use pg_result_error(),
pg_result_status() e
pg_connection_status() para um melhor tratamento de
erros.

Nota: Esta função era chamada pg_errormessage().

Veja também pg_result_error().

Anterior | Principal | Próxima
pg_insert | Acima | pg_last_notice


pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice -- Retorna a última notificação do servidor PostgreSQL

Descrição

string pg_last_notice ( resource connection)

pg_last_notice() retorna a última notificação do servidor PostgreSQL especificada por connection. O servidor PostgreSQL envia notificações em diversas situações, por exemplo, se as transações não puderem continuar. Com pg_last_notice() você pode evitar a chamada de consultas (queries) inúteis, checando quando a notificação está relacionada ou não com a transação.

Atenção

Esta função é EXPERIMENTAL e ainda não está completamente implementada. pg_last_notice() foi adicionada no PHP 4.0.6. Entretanto o PHP 4.0.6 tem problemas com a manipulação de mensagens. O uso do módulo PostgreSQL com o PHP 4.0.6 não é recomendada, mesmo se você não estiver usando pg_last_notice().

Esta função está totalmente implementada no PHP 4.3.0. Versões do PHP mais recentes que a 4.3.0 ignoram o parâmetro de conexão com o banco de dados.

O rastreamento de notificações pode ser definido como opcional definindo 1 para a diretiva pgsql.ignore_notice no php.ini do PHP 4.3.0.

O arquivamento (log) de mensagems pode ser pode ser definido como opcional mudando para 0 a diretiva pgsql.log_notice no php.ini do PHP 4.3.0. A não ser que pgsql.ignore_notice estiver definida para 0, notificações não podem ser arquivadas.

Veja também pg_query() e pg_last_error().

Anterior | Principal | Próxima
pg_last_error | Acima | pg_last_oid


pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid -- Retorna o último oid do objeto

Descrição

int pg_last_oid ( resource result)

pg_last_oid() é usado para recuperar o oid designado a uma linha (registro) se o recurso (resource) de resultado é usado a partir do último comando enviado através de pq_query() se este comando era um INSERT do SQL. Retorna um inteiro positivo se havia um oid válido. Retorna FALSE se um erro ocorrer ou o último comando enviado através de pg_query() não foi INSERT ou se o INSERT falhou.

O campo OID tornou-se opcional a partir do PostgreSQL 7.2. Quando um campo OID não é definido em uma tabela, o programador deve usar pg_result_status() para checar se o registro foi inserido com sucesso ou não.

Nota: Esta função era chamada pg_getlastoid().

Veja também pg_query() e pg_result_status()

Anterior | Principal | Próxima
pg_last_notice | Acima | pg_lo_close


pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close -- Fecha um objeto grande (large object)

Descrição

bool pg_lo_close ( resource large_object)

pg_lo_close() fecha um Objeto Grande (Large Object, daí vem o "lo" que integra o nome da função). large_object é um recurso (resource) para o objeto grande gerado a partir de pg_lo_open().

Para usar a interface de objetos grandes (lo), é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_loclose().

Veja também pg_lo_open(),
pg_lo_create() e
pg_lo_import().

Anterior | Principal | Próxima
pg_last_oid | Acima | pg_lo_create


pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create -- Cria um objeto grande (large object)

Descrição

int pg_lo_create ( resource connection)

pg_lo_create() cria um Objeto Grande (Large Object) e retorna o seu oid. connection especifica uma conexão a um banco de dados válida aberta por pg_connect() ou pg_pconnect(). Os modos de acesso INV_READ, INV_WRITE e INV_ARCHIVE não são suportados, o objeto é criado sempre com acesso a leitura e escrita. INV_ARCHIVE foi removido do próprio PostgreSQL (a partir da 6.3). Retorna o oid do objeto. Retorna FALSE se um erro ocorrer.

Para usar a interface de objetos grandes (lo), é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_locreate().

Anterior | Principal | Próxima
pg_lo_close | Acima | pg_lo_export


pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export -- Exporta um objeto grande (large object) para um arquivo

Descrição

bool pg_lo_export ( int oid, string pathname [, resource connection])

O argumento oid especifica o oid do objeto grande (large object) a exportar e o argumento pathname especifica o caminho até o arquivo. Retorna FALSE se um erro ocorrer, caso contrário retorna TRUE.

Para usar a interface de objetos grandes (lo), é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_loexport().

Veja também pg_lo_import().

Anterior | Principal | Próxima
pg_lo_create | Acima | pg_lo_import


pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import -- Importa um objeto grande (large object) a partir de um arquivo

Descrição

int pg_lo_import ( [resource connection, string pathname])

Em versões anteriores a 4.2.0, a sintaxe desta função é diferente, veja a seguinte definição:

int pg_lo_import ( string pathname [, resource connection])

O argumento pathname especifica o caminho do arquivo a ser importado como um objeto grande (large object). Retorna FALSE se um erro ocorrer, caso contrário, retorna o oid do objeto recém criado.

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota: Quando o safe-mode está ativo, o PHP verifica se o(s) arquivo(s) e/ou diretório(s) que serão afetados por esta operação tem o mesmo UID (proprietário) do script que está sendo executado.

Nota: Esta função era chamada pg_loimport().

Veja também pg_lo_export() e pg_lo_open().

Anterior | Principal | Próxima
pg_lo_export | Acima | pg_lo_open


pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open -- Abre um objeto grande (large object)

Descrição

resource pg_lo_open ( resource connection, int oid, string mode)

pg_lo_open() abre um Objeto Grande (Large Object em inglês, daí o "lo"). O recurso (resource) encapsula informações sobre a conexão. oid especifica um oid de objeto grande válido e o parâmetro mode pode ser "r", "w" ou "rw". A função retorna FALSE se houver algum erro.

Atenção

Não feche a conexão com o banco de dados sem antes fechar a conexão com o objeto grande.

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_loopen().

Veja também pg_lo_close() e pg_lo_create().

Anterior | Principal | Próxima
pg_lo_import | Acima | pg_lo_read_all


pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all -- Lê um objeto grande (large object) inteiro e o envia diretamente para o navegador

Descrição

int pg_lo_read_all ( resource large_object)

pg_lo_read_all() lê um objeto grande (large object) e passa-o diretamente para o navegador depois de enviar todos os cabeçalhos pendentes. A intenção principal é enviar dados binários como imagens ou som. Retorna o número de bytes lidos ou FALSE se ocorrer algum erro.

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_loreadall().

Veja também pg_lo_read().

Anterior | Principal | Próxima
pg_lo_open | Acima | pg_lo_read


pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read -- Lê um objeto grande (large object)

Descrição

string pg_lo_read ( resource large_object, int len)

pg_lo_read() lê o número de bytes equivalente ao valor de len de um objeto grande (large object) e retorna-o como uma string. large_object especifica um recurso (resource) válido de objeto e len especifica o tamanho máximo permitido do segmento do objeto grande. Retorna FALSE se algum erro acontecer.

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_loread().

Veja também pg_lo_read_all().

Anterior | Principal | Próxima
pg_lo_read_all | Acima | pg_lo_seek


pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek -- Procura uma posição em um objeto grande (large object)

Descrição

bool pg_lo_seek ( resource large_object, int offset [, int whence])

pg_lo_seek() procura uma posição em um recurso (resource) de um objeto grande (large objet). whence pode ser PGSQL_SEEK_SET, PGSQL_SSEK_CUR ou PGSQL_SEEK_END.

Veja também pg_lo_tell().

Anterior | Principal | Próxima
pg_lo_read | Acima | pg_lo_tell


pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell -- Retorna a posição atual de um objeto grande (large object)

Descrição

int pg_lo_tell ( resource large_object)

pg_lo_tell() retorna a posição atual (deslocamento a partir do início do objeto grande).

Veja também pg_lo_seek().

Anterior | Principal | Próxima
pg_lo_seek | Acima | pg_lo_unlink


pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_unlink -- Remove um objeto grande (large object)

Descrição

bool pg_lo_unlink ( resource connection, int oid)

pg_lo_unlink() remove um objeto grande (large object) com um determinado oid. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_lo_unlink().

Veja também pg_lo_create() e pg_lo_import().

Anterior | Principal | Próxima
pg_lo_tell | Acima | pg_lo_write


pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_write -- Escreve em um objeto grande (large object)

Descrição

int pg_lo_write ( resource large_object, string data)

pg_lo_write() escreve em um objeto grande (large object) a partir de uma variável data e retorna o número de bytes escritos, ou FALSE em caso de erro. large_object é um recurso (resource) de objeto grande criado a partir de pg_lo_open().

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota: Esta função era chamada pg_lowrite().

Veja também pg_lo_create() e pg_lo_open().

Anterior | Principal | Próxima
pg_lo_unlink | Acima | pg_metadata


pg_metadata

(no version information, might be only in CVS)

pg_metadata -- Retorna os metadados da tabela.

Descrição

array pg_metadata ( resource connection, string table_name)

pg_metadata() retorna a definição da tabela com o nome igual ao valor de table_name como um array. Se houver algum erro, retorna FALSE.

Exemplo 1. Obtendo os dados da tabela

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $meta = pg_meta_data($dbconn,'authors');
    if (is_array ($meta)) {
        echo '<pre>';
        var_dump ($meta);
        echo '</pre>';
    }
?>

O exemplo acima irá mostar a seguinte saída:

array(3) {
  ["author"]=>
  array(5) {
    ["num"]=>
    int(1)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["year"]=>
  array(5) {
    ["num"]=>
    int(2)
    ["type"]=>
    string(4) "int2"
    ["len"]=>
    int(2)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["title"]=>
  array(5) {
    ["num"]=>
    int(3)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Veja também pg_convert()

Anterior | Principal | Próxima
pg_lo_write | Acima | pg_num_fields


pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields -- Retorna o número de campos

Descrição

int pg_num_fields ( resource result)

pg_num_fields() retorna o número de campos (colunas) do recurso (resource) de resultado result. O argumento é um recurso (resource) de resultado criado a partir de pg_query(). Esta função irá retornar -1 em caso de erro.

Nota: Esta função era chamada pg_numfields().

Veja também pg_num_rows() e pg_affected_rows().

Anterior | Principal | Próxima
pg_metadata | Acima | pg_num_rows


pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows -- Retorna o número de linhas

Descrição

int pg_num_rows ( resource result)

pg_num_rows() irá retornar o número de linhas do recurso de resultado result. result é um recurso (resource) de resultado de consulta (query) feito por pg_query(). Esta função retornará -1 em caso de erro.

Nota: Use pg_affected_rows() para obter o número de linhas afetadas por consultas do tipo INSERT, UPDATE e DELETE.

Nota: Esta função era chamada pg_numrows().

Veja também pg_num_fields() e pg_affected_rows().

Anterior | Principal | Próxima
pg_num_fields | Acima | pg_options


pg_options

(PHP 3, PHP 4 , PHP 5)

pg_options -- Retorna as opções associadas com a conexão

Descrição

string pg_options ( resource connection)

pg_options() retornará uma string contendo as opções especificadas no recurso (resource) de conexão PostgreSQL connection.

Anterior | Principal | Próxima
pg_num_rows | Acima | pg_pconnect


pg_pconnect

(PHP 3, PHP 4 , PHP 5)

pg_pconnect -- Abre uma conexão PostgreSQL persistente

Descrição

int pg_pconnect ( string connection_string)

pg_pconnect() abre uma conexão a um banco de dados PostgreSQL. Retorna um recurso (resource) de conexão que é necessário para outras funções PostgreSQL.

Para uma descrição do parâmetro connection_string veja pg_connect().

Para habilitar uma conexão persistente, a diretiva pgsql.allow_persistent do php.ini deve ser definida como "On" (que é o padrão). O número máximo de conexões persistentes pode ser definida com a diretiva pgsql.max_persistent do php.ini (o padrão é -1 para sem limite). O número total de conexões pode ser definido com a diretiva pgsql.max_links do php.ini.

pg_close() não fechará links persistentes gerados por pg_pconnect().

Veja também pg_connect() e a seção sobre Conexões Persistentes para maiores informações.

Anterior | Principal | Próxima
pg_options | Acima | pg_ping


pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping -- Faz um ping na conexão com o banco de dados

Descrição

bool pg_ping ( resource connection)

pg_ping() faz um ping na conexão com o banco de dados, tenta reconectar se a conexão foi quebrada. Retorna TRUE se a conexão está ativa, do contrário, retorna FALSE.

Exemplo 1. Exemplo pg_ping()

<?php
$conn = pg_pconnect ("dbname=publicacao");
if (!$conn) {
    echo "Ocorreu um erro.\n";
    exit;
}

if (!pg_ping($conn))
    die("Conexão quebrada\n");
?>

Veja também pg_connection_status() e pg_connection_reset().

Anterior | Principal | Próxima
pg_pconnect | Acima | pg_port


pg_port

(PHP 3, PHP 4 , PHP 5)

pg_port -- Retorna o número da porta associada com a conexão.

Descrição

int pg_port ( resource connection)

pg_port() retorna o número da porta a qual o recurso de conexão PostgreSQL connection está conectado.

Anterior | Principal | Próxima
pg_ping | Acima | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line -- Envia uma string terminada em NULL para o backend PostgreSQL

Descrição

bool pg_put_line ( [resource connection, string data])

pg_put_line() envia uma string terminada em NULL para o servidor backend PostgreSQL. Isso é útil, por exemplo, para a inserção de dados em uma tabela em alta velocidade, iniciada através de uma operação de cópia PostgreSQL. O caractere NULL final é adicionado automaticamente. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: A aplicação deve enviar os dois caracteres "\." explicitamente na última linha para indicar ao backend que ela terminou de enviar seus dados.

Exemplo 1. Inserção de dados na tabela em alta velocidade

<?php
    $conn = pg_pconnect("nomebd=meubanco");
    pg_query($conn, "create table bar (a int4, b char(16), d float8)");
    pg_query($conn, "copy bar from stdin");
    pg_put_line($conn, "3\tola mundo\t4.5\n");
    pg_put_line($conn, "4\ttchau mundo\t7.11\n");
    pg_put_line($conn, "\\.\n");
    pg_end_copy($conn);
?>

Veja também pg_end_copy().

Anterior | Principal | Próxima
pg_port | Acima | pg_query


pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query -- Executa uma consulta (query)

Descrição

resource pg_query ( resource connection, string query)

pg_query() retorna um recurso (resource) de resultado da consulta (query) se a consulta pôde ser executada. Retorna FALSE em caso de falha ou se a conexão não é uma conexão válida. Detalhes sobre os erros podem ser recuperados usando a função pg_last_error() se a conexão é válida. pg_query() envia uma declaração SQL para o banco de dados PostgreSQL especificado pelo recurso de conexão connection. connection deve ser uma conexão válida que foi criado por pg_connect(). O valor de retorno dessa função é um recurso (resource) de resultado de consulta (query) para ser usado para acessar os resultados de outras funções PostgreSQL como pg_fetch_array().

Nota: connection é um parâmetro opcional para pg_query(). Se connection não for definido, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Apesar de connection poder ser omitido, isso não é recomendado já que pode ser uma causa de erros difíceis de encontrar no seu script.

Nota: Esta função era chamada pg_exec(). pg_exec() ainda está disponível por razões de compatibilidade, mas os usuários são encorajados a usar o novo nome.

Veja também pg_connect(),
pg_pconnect(),
pg_fetch_array(),
pg_fetch_object(),
pg_num_rows()
e pg_affected_rows().

Anterior | Principal | Próxima
pg_put_line | Acima | pg_result_error


pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error -- Retorna a mensagem de erro associada a um resultado

Descrição

string pg_result_error ( resource result)

pg_result_error() retorna a mensagem de erro associada ao recurso (resource) de resultado result. Deste modo, o usuário tem melhores chances de ter uma mensagem de erro melhor que a retornada por pg_last_error().

Veja também pg_query(),
pg_send_query(),
pg_get_result(),
pg_last_error() e
pg_last_notice()

Anterior | Principal | Próxima
pg_query | Acima | pg_result_seek


pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek -- Altera a posição do ponteiro interno de um recurso (resource) de resultado

Descrição

array pg_result_seek ( resource result, int offset)

pg_result_seek() altera a posição do ponteiro interno de um recurso (resource) de resultado. Retorna FALSE em caso de erro.

 Veja também pg_fetch_row(),
pg_fetch_assoc(),
pg_fetch_array(),
pg_fetch_object() e
pg_fetch_result().

Anterior | Principal | Próxima
pg_result_error | Acima | pg_result_status


pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_status -- Retorna o status do resultado da consulta (query)

Descrição

int pg_result_status ( resource result)

pg_result_status() retorna o status do recurso (resource) de resultado. Os valores de retorno possíveis são: PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_TO, PGSQL_COPY_FROM, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR e PGSQL_FATAL_ERROR.

Veja também pg_connection_status().

Anterior | Principal | Próxima
pg_result_seek | Acima | pg_select


pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select -- Seleciona registros.

Descrição

array pg_select ( resource connection, string table_name, array assoc_array [, int options])

pg_select() seleciona registros especificados por assoc_array, que contém pares do tipo campo=>valor. Para uma consulta (query) válida, retorna um array que contém todos os registros e campos que combinam com a condição especificada por assoc_array. Se options for especificado, pg_convert() será aplicada à assoc_array com as opções especificadas.

Exemplo 1. pg_select

<?php
    $db = pg_connect('nomebd=meubanco');
    // Isto é seguro já que $_POST é convertida automaticamente
    $rec = pg_select($bd, 'post_log', $_POST);
    if ($rec) {
        echo "Registros selecionados\n";
        var_dump($rec);
    }
    else {
    echo "O usuário deve ter inserido dados errados\n";
    }
?>

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Veja também pg_convert()

Anterior | Principal | Próxima
pg_result_status | Acima | pg_send_query


pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query -- Envia uma consulta (query) assincrona

Descrição

bool pg_send_query ( resource connection, string query)

bool pg_send_query ( string query)

pg_send_query() envia uma consulta (query) assíncrona para connection. Diferente de pg_query(), ela pode enviar consultas múltiplas para o PostgreSQL e carregar os resultados, um por um, usando pg_get_result(). A execução do script não é bloqueada enquanto as consultas estão sendo executadas. Use pg_connection_busy() para checar se a conexão está ocupada. (por exemplo, se uma consulta está sendo executada). A consulta pode ser cancelada chamando pg_cancel_query().

Apesar de ser possível enviar multiplas consultas de uma vez, você não pode enviar múltiplas consultas para uma conexão ocupada. Se a consulta é enviada enquando a conexão está ocupada ela espera até que a última cosulta seja finalizada e descarta todos os resultados.

Exemplo 1. Asynchronous Queries

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    if (!pg_connection_busy($dbconn)) {
        pg_send_query($dbconn,"select * from authors; select count(*) from authors;");
    }

    $res1 = pg_get_result($dbconn);
    echo "First call to pg_get_result(): $res1\n";
    $rows1 = pg_num_rows($res1);
    echo "$res1 has $rows1 records\n\n";

    $res2 = pg_get_result($dbconn);
    echo "second call to pg_get_result(): $res2\n";
    $rows2 = pg_num_rows($res2);
     echo "$res2 has $rows2 records\n";
?>

O exemplo acima deve mostrar a seguinte saída:

first call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records

Veja também pg_query(),
pg_cancel_query(),
pg_get_result() e
pg_connection_busy().

Anterior | Principal | Próxima
pg_select | Acima | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding -- Define a codificação do cliente

Descrição

int pg_set_client_encoding ( [resource connection, string encoding])

pg_set_client_encoding() define a codificação do cliente e retorna 0 caso haja sucesso e -1 se houver erro.

encoding é a codificação do cliente e pode ter os valores: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250. As codificações disponíveis dependem da versão do PostgreSQL e libpq. Vide o manual PostgreSQL para saber das codificações disponíveis para o seu PostgreSQL.

Nota: Esta função exige o PHP 4.0.3 ou maior e PostgreSQL 7.0 ou maior. As codificações suportadas dependem da versão do PostgreSQL. Vide o manual PostgreSQL para detalhes.

Esta função era chamada pg_setclientencoding()().

Veja também pg_client_encoding().

Anterior | Principal | Próxima
pg_send_query | Acima | pg_trace


pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace -- Habilita rastreamento em uma conexão PostgreSQL

Descrição

bool pg_trace ( string pathname [, string mode [, resource connection]])

pg_trace() habilita o rastreamento da comunicação frontend/backend do PostgreSQL para um arquivo de depuração especificado pelo parâmetro pathname. Para entender completamente estes resultados, você deve estar familiarizado com o protocolo de comunicação interno do PostgreSQL. Para aqueles que não estão, isso ainda pode ser útil para rastrear erros em consultas (queries) enviadas ao servidor, você poderia fazer por exemplo grep '^Para backend' rastro.log. Para maiores informações vide o manual PostgreSQL.

pathname e mode são os mesmos que na função fopen() (o mode padrão é 'w'), connection especifica a conexão a ser rastreada e seu padrão é a última conexão aberta.

Retorna TRUE se o pathname pode ser aberto para escrita, FALSE caso contrário.

Veja também fopen() e pg_untrace().

Anterior | Principal | Próxima
pg_set_client_encoding | Acima | pg_tty


pg_tty

(PHP 3, PHP 4 , PHP 5)

pg_tty -- Retorna o nome da tty associada com a conexão

Descrição

string pg_tty ( resource connection)

pg_tty() retorna o nome da tty que a saída do lado do servidor é enviada no recurso (resource) de conexão connection.

Anterior | Principal | Próxima
pg_trace | Acima | pg_unescape_bytea


pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea -- Faz escape binário para o tipo bytea

Descrição

string pg_unescape_bytea ( string data)

pg_unescape_bytea() faz uma versão binária da string do tipo bytea. Retorna a string em binário(binary).

Nota: Quando você faz SELECT bytea type, PostgreSQL returna um valor em octal prefixado por \ (por exemplo: \032). Usuários devem fazer a transformação em binário por si próprios.

Esta função exige PostgreSQL 7.2 ou superior. Com PostgreSQL 7.2.0 e 7.2.1, o tipo de dados bytea deve ser criado quando você habilita o suporte a multi-byte. Por exemplo, INSERT INTO tabela_teste (imagem) VALUES ('$imagem_escaped'::bytea); PostgreSQL 7.2.2 ou superior não precisa de coerção (cast). A exceção é quando a codificação de caracteres do cliente e do backend não combinam, então pode haver erro de fluxo de multi-byte. O usuário deve fazer a coerção (cast) para bytea para evitar este erro.

Veja também pg_escape_bytea() e pg_escape_string()

Anterior | Principal | Próxima
pg_tty | Acima | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace -- Desabilita o rastreamento de uma conexão PostgreSQL

Descrição

bool pg_untrace ( [resource connection])

Pára o rastreamento iniciado por pg_trace(). connection especifica a conexão que está sendo rastreada e seu padrão é a última conexão aberta.

Sempre retorna TRUE.

Veja também pg_trace().

Anterior | Principal | Próxima
pg_unescape_bytea | Acima | pg_update


pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update -- Atualiza uma tabela.

Descrição

mixed pg_update ( resource connection, string table_name, array data, array condition [, int options])

pg_update() atualiza registros que combinam com a condição especificada pelo argumento condition com os dados do parâmetro data. Se options for especificado, pg_convert() será aplicada a data com as opções especificadas.

Exemplo 1. pg_update

<?php
    $bd = pg_connect('dbname=meubanco');
    $dados = array('campo1'=>'AA', 'campo2'=>'BB');
    // Isto é seguro já que $_POST é convertido automaticamente
    $res = pg_update($bd, 'post_log', $_POST, $dados);
    if ($res) {
        echo "Dados atualizados: $res\n";
    }
    else {
        echo "Usuário deve ter enviado entradas inválidas\n";
    }
?>

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Veja também pg_convert()

Anterior | Principal | Próxima
pg_untrace | Acima | Process Control Functions


Process Control Functions

Manual do PHP
Anterior Próxima

LXXXV. Process Control Functions

Introdução

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a webserver environment and unexpected results may happen if any Process Control functions are used within a webserver environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Nota: Currently, this module will not function on non-Unix platforms (Windows).

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)

WUNTRACED (integer)

SIG_IGN (integer)

SIG_DFL (integer)

SIG_ERR (integer)

SIGHUP (integer)

SIGINT (integer)

SIGQUIT (integer)

SIGILL (integer)

SIGTRAP (integer)

SIGABRT (integer)

SIGIOT (integer)

SIGBUS (integer)

SIGFPE (integer)

SIGKILL (integer)

SIGUSR1 (integer)

SIGSEGV (integer)

SIGUSR2 (integer)

SIGPIPE (integer)

SIGALRM (integer)

SIGTERM (integer)

SIGSTKFLT (integer)

SIGCLD (integer)

SIGCHLD (integer)

SIGCONT (integer)

SIGSTOP (integer)

SIGTSTP (integer)

SIGTTIN (integer)

SIGTTOU (integer)

SIGURG (integer)

SIGXCPU (integer)

SIGXFSZ (integer)

SIGVTALRM (integer)

SIGPROF (integer)

SIGWINCH (integer)

SIGPOLL (integer)

SIGIO (integer)

SIGPWR (integer)

SIGSYS (integer)

SIGBABY (integer)

Exemplos

This example forks off a daemon process with a signal handler.

Exemplo 1. Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (!posix_setsid()) {
    die("could not detach from terminal");
}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>

Veja Também

A look at the section about POSIX functions may be useful.

Índice
pcntl_alarm -- Set an alarm clock for delivery of a signal
pcntl_exec -- Executes specified program in current process space
pcntl_fork -- Forks the currently running process
pcntl_getpriority -- Get the priority of any process
pcntl_setpriority -- Change the priority of any process
pcntl_signal -- Installs a signal handler
pcntl_wait -- Waits on or returns the status of a forked child
pcntl_waitpid -- Waits on or returns the status of a forked child
pcntl_wexitstatus -- Returns the return code of a terminated child
pcntl_wifexited -- Returns TRUE if status code represents a successful exit
pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal
pcntl_wifstopped -- Returns TRUE if child process is currently stopped
pcntl_wstopsig -- Returns the signal which caused the child to stop
pcntl_wtermsig -- Returns the signal which caused the child to terminate

Anterior | Principal | Próxima
pg_update | Acima | pcntl_alarm


pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm -- Set an alarm clock for delivery of a signal

Description

int pcntl_alarm ( int seconds)

The pcntl_alarm() function creates a timer that will send a SIGALRM signal to the process after seconds seconds. If seconds is zero, no new alarm is created. Any call to pcntl_alarm() will cancel any previously set alarm.

pcntl_alarm() will return the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.

Anterior | Principal | Próxima
Process Control Functions | Acima | pcntl_exec


pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_exec -- Executes specified program in current process space

Description

bool pcntl_exec ( string path [, array args [, array envs]])

pcntl_exec() executes the program path with arguments args. path must be the path to a binary executable or a script with a valid path pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as the first line. See your system's man execve(2) page for additional information.

args is an array of argument strings passed to the program.

envs is an array of strings which are passed as environment to the program. The array is in the format of name => value, the key being the name of the environmental variable and the value being the value of that variable.

pcntl_exec() returns FALSE on error and does not return on success.

Anterior | Principal | Próxima
pcntl_alarm | Acima | pcntl_fork


pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_fork -- Forks the currently running process

Description

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Exemplo 1. pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     // we are the parent
} else {
     // we are the child
}

?>

See also pcntl_waitpid() and pcntl_signal().

Anterior | Principal | Próxima
pcntl_exec | Acima | pcntl_getpriority


pcntl_getpriority

(PHP 5)

pcntl_getpriority -- Get the priority of any process

Description

int pcntl_getpriority ( [int pid])

pcntl_getpriority() gets the priority of pid. If pid is not specified, the pid of the current process is used. Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

pcntl_getpriority() returns the priority of the process or FALSE on error. A lower numerical value causes more favorable scheduling.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Anterior | Principal | Próxima
pcntl_fork | Acima | pcntl_setpriority


pcntl_setpriority

(PHP 5)

pcntl_setpriority -- Change the priority of any process

Description

bool pcntl_setpriority ( int priority [, int pid])

pcntl_setpriority() sets the priority of pid to priority. If pid is not specified, the pid of the current process is used.

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
pcntl_getpriority | Acima | pcntl_signal


pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signal -- Installs a signal handler

Description

bool pcntl_signal ( int signo, callback handle [, bool restart_syscalls])

The pcntl_signal() function installs a new signal handler for the signal indicated by signo. The signal handler is set to handler which may be the name of a user created function, or either of the two global constants SIG_IGN or SIG_DFL. The optional restart_syscalls specifies whether system call restarting should be used when this signal arrives and defaults to TRUE.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: The optional restart_syscalls parameter became available in PHP 4.3.0.

Nota: The ability to use an object method as a callback became available in PHP 4.3.0. Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

Exemplo 1. pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);

// signal handler function
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             echo "Caught SIGUSR1...\n";
             break;
         default:
             // handle all other signals
     }

}

echo "Installing signal handler...\n";

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo"Generating signal SIGTERM to self...\n";

// send SIGUSR1 to current process id
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n"

?>

Nota: As of PHP 4.3.0 PCNTL uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You must use the declare() statement to specify the locations in your program where callbacks are allowed to occur for the signal handler to function properly (as used in the above example).

See also pcntl_fork() and pcntl_waitpid().

Anterior | Principal | Próxima
pcntl_setpriority | Acima | pcntl_wait


pcntl_wait

(PHP 5)

pcntl_wait -- Waits on or returns the status of a forked child

Description

int pcntl_wait ( int &status [, int options])

The wait function suspends execution of the current process until a child has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's wait(2) man page for specific details as to how wait works on your system.

pcntl_wait() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for options will have no effect. The value of options is the value of zero or more of the following two constants OR'ed together:

Tabela 1. Possible values for options if wait3 is available

WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

pcntl_wait() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Nota: This function is equivalent to calling pcntl_waitpid() with a -1 pid and no options.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig(),
pcntl_wstopsig() and
pcntl_waitpid().

Anterior | Principal | Próxima
pcntl_signal | Acima | pcntl_waitpid


pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpid -- Waits on or returns the status of a forked child

Description

int pcntl_waitpid ( int pid, int &status, int options)

The pcntl_waitpid() function suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

The value of pid can be one of the following:

Tabela 1. possible values for pid

< -1 | wait for any child process whose process group ID is equal to the absolute value of pid.
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid.

Nota: Specifying -1 as the pid is equivalent to the functionality pcntl_wait() provides (minus options).

pcntl_waitpid() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

The value of options is the value of zero or more of the following two global constants OR'ed together:

Tabela 2. possible values for options

WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Anterior | Principal | Próxima
pcntl_wait | Acima | pcntl_wexitstatus


pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatus -- Returns the return code of a terminated child

Description

int pcntl_wexitstatus ( int status)

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifexited().

Anterior | Principal | Próxima
pcntl_waitpid | Acima | pcntl_wifexited


pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexited -- Returns TRUE if status code represents a successful exit

Description

int pcntl_wifexited ( int status)

Returns TRUE if the child status code represents a successful exit.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wexitstatus().

Anterior | Principal | Próxima
pcntl_wexitstatus | Acima | pcntl_wifsignaled


pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal

Description

int pcntl_wifsignaled ( int status)

Returns TRUE if the child process exited because of a signal which was not caught.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_signal().

Anterior | Principal | Próxima
pcntl_wifexited | Acima | pcntl_wifstopped


pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstopped -- Returns TRUE if child process is currently stopped

Description

int pcntl_wifstopped ( int status)

Returns TRUE if the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid().

Anterior | Principal | Próxima
pcntl_wifsignaled | Acima | pcntl_wstopsig


pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsig -- Returns the signal which caused the child to stop

Description

int pcntl_wstopsig ( int status)

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifstopped().

Anterior | Principal | Próxima
pcntl_wifstopped | Acima | pcntl_wtermsig


pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsig -- Returns the signal which caused the child to terminate

Description

int pcntl_wtermsig ( int status)

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid(),
pcntl_signal() and
pcntl_wifsignaled().

Anterior | Principal | Próxima
pcntl_wstopsig | Acima | Programas, Funções de Execução


Programas, Funções de Execução

Manual do PHP
Anterior Próxima

LXXXVI. Programas, Funções de Execução

Introdução

Estas funções prôvem meios para executar comandos no sistema em si, e meios de tornar seguros estes comandos.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Veja Também

Estas funções estão muito relacionadas com backtick operator. Também, quando em safe mode você deverá considerar a diretiva safe_mode_exec_dir.

Índice
escapeshellarg -- Escapa uma string para usar como um argumento shell
escapeshellcmd -- escapa metacaracteres shell
exec -- Executa um programa externo
passthru -- Executa um programa externo e mostra a saída crúa
proc_close -- Fecha um processo aberto por proc_open() e retorna o código de saída do processo.
proc_get_status -- Obtem informação sobre um processo aberto por proc_open()
proc_nice -- Muda a prioridade do processo atual
proc_open -- Executa um comando e abre ponteiros de arquivos para entrada/saída
proc_terminate -- Mata um processo aberto por proc_open
shell_exec -- Executa um comando via shell e retorna a saída inteira
system -- Executa um programa externo e mostra a saída

Anterior | Principal | Próxima
pcntl_wtermsig | Acima | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellarg -- Escapa uma string para usar como um argumento shell

Descrição

string escapeshellarg ( string arg)

escapeshellarg() adiciona aspas simples em torno de uma string e escapa qualquer as aspas simples existentes permitindo a você passar uma string diretamente para uma função shell e tendo ela tradata como um argumento seguro. Esta função deve ser usado para escapar argumentos para funções shell vindos de dados de usuários. As funções shell incluem exec(), system() e backtick operator. Um uso padrão seria:

<?php
system('ls '.escapeshellarg($dir));
?>

Veja também escapeshellcmd(), exec(), popen(), system(), e backtick operator.

Anterior | Principal | Próxima
Programas, Funções de Execução | Acima | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4 , PHP 5)

escapeshellcmd -- escapa metacaracteres shell

Descrição

string escapeshellcmd ( string command)

escapeshellcmd() escapa qualquer caractere em uma string que possa ser utilizado para enganar um comando shell para executar comandos arbritários. Esta função deve ser utilizada para ter certeza que quaisquer dados vindos do usuário é escapado antes que estes dados sejam passados para as funções exec() ou system(), ou para backtick operator. Um uso padrão seria:

<?php
$e = escapeshellcmd($userinput);

// Aqui não nos preocupamos se $e tem espaços
system("echo $e");
$f = escapeshellcmd($filename);

// aqui sim
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");
?>

Veja também escapeshellarg(), exec(), popen(), system(), e backtick operator.

Anterior | Principal | Próxima
escapeshellarg | Acima | exec


exec

(PHP 3, PHP 4 , PHP 5)

exec -- Executa um programa externo

Descrição

string exec ( string command [, array output [, int return_var]])

exec() executa o command dado, em todo o caso ele não mostra nada. Ele simplesmente retorna a última linha do resultado do comando. Se você precisar executar o comando e ter todos os dados do comando passado diretamente de volta sem interferencia, use a função passthru().

Se o argumento output estiver presente, então a matriz especificada será prenchida com cada linha da saída do comando. Finais de linha, como \n, não são incluídos nesta matriz. Note que se a matriz já contiver alguns elementos, exec() irá adicionar ao final da matriz. Se você não quiser que a função adicione elementos, use unset() antes de passar ela para exec().

Se o argumento return_var esta presente junto com o argumento output, então o status de retorno do comando executado será escrito nesta variável.

Atenção

Se você vai permitir que dados vindos dos usuários sejam passados para esta função, então você deve usar escapeshellarg() ou escapeshellcmd() para ter certeza que os usuários não possam enganar o sistema usando comandos arbritários.

Nota: Se você começar um programa usando esta função e quer deixar que ele seja executado em segundo plano, você deve ter certeza que a saída deste programa é redirecionado para um arquivo ou outra saída se não o PHP irá esperar até terminar a execução do programa.

Veja também system(),
passthru(), popen(),
escapeshellcmd(), e backtick operator.

Anterior | Principal | Próxima
escapeshellcmd | Acima | passthru


passthru

(PHP 3, PHP 4 , PHP 5)

passthru -- Executa um programa externo e mostra a saída crúa

Descrição

void passthru ( string command [, int return_var])

A função passthru() é similar a a função exec() no que ela executa um command. Se o argumento return_var estiver presente, o código de retorno de status do comando Unix será colocado aqui. Esta função deve ser usada no lugar de exec() ou system() quando a saída do comando Unix é dados binários que precisam ser passados diretamente de volta para o browser. Um uso comum para isso é para executar algo como pbmplus que podem enviar um stream com uma imagem diretamente. Definindo o Content-type para image/gif e então chamando o programa para mostrar um gif, você pode criar scripts PHP que mostram imagens diretamente.

Atenção

Se você irá permitir que dados vindos dos usuários sejam passados para esta função, então você deve usar escapeshellarg() ou escapeshellcmd() para ter certesa que os usuários não enganem o sistema executando comandos arbitrários.

Nota: Se você começar um programa usando esta função e quiser deixar ele sendo executado em segundo plano, você deve ter certesa que a saída do programa seja redirecionada para um arquivo ou outro stream de saída se não o PHP irá parar até que termine a execução do programa.

Veja também exec(), system(), popen(), escapeshellcmd(), e o operador backtick.

Anterior | Principal | Próxima
exec | Acima | proc_close


proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close -- Fecha um processo aberto por proc_open() e retorna o código de saída do processo.

Descrição

int proc_close ( resource process)

proc_close() é similar a pclose() exceto que ela só funciona em processos abertos por proc_open(). proc_close() espera pelo processo terminar, e retorna o seu código de saída. Se você tiver pipes abertos para este processo, você deve usar fclose() antes de usar esta função para previnir travamentos - o processo filho não será capaz de sair enquanto pipes estiverem abertos.

Anterior | Principal | Próxima
passthru | Acima | proc_get_status


proc_get_status

(PHP 5)

proc_get_status -- Obtem informação sobre um processo aberto por proc_open()

Descrição

array proc_get_status ( resource process)

proc_get_status() obtém dados sobre um processo aberto usando proc_open(). A informação coletada é retornada em uma matriz contendo od seguintes elementos:

elemento | type | descrição
command | string | A string de comando que foi passado para proc_open()
pid | int | id do processo
running | bool | TRUE se o processo ainda esta sendo executado, FALSE se ele terminou
signaled | bool | TRUE se o processo filho terminou por um sinal não capturado. Sempre definido como FALSE no Windows.
stopped | bool | TRUE se o processo filho foi parado por um sinal. Sempre definido como FALSE no Windows.
exitcode | int | O código de saída retornado pelo processo ( o qual só significativo se running é FALSE)
termsig | int | O número do sinal que fez o processo filho terminar a sua execução ( somente significativo se signaled é TRUE)
stopsig | int | O número do sinal que fez o processo filho terminar a sua execução ( somente significativo se stopped é TRUE)

Veja também proc_open().

Anterior | Principal | Próxima
proc_close | Acima | proc_nice


proc_nice

(PHP 5)

proc_nice -- Muda a prioridade do processo atual

Descrição

bool proc_nice ( int priority)

proc_nice() muda a prioridade do processo atual. Se acontecer um erro, como falta de permissões para o usuário mudar a prioridade, um erro de nível E_WARNING é gerado e é retornado FALSE. Se não é retornado TRUE.

Nota: proc_nice() irá existir apenas se seu sistema tiver capacidades 'nice'. 'nice' funciona em: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Isto significa que proc_nice() não esta disponível no windows.

proc_nice() não esta relacionada com proc_open() e suas funções associadas de nenhuma maneira.

Anterior | Principal | Próxima
proc_get_status | Acima | proc_open


proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open -- Executa um comando e abre ponteiros de arquivos para entrada/saída

Descrição

resource proc_open ( string cmd, array descriptorspec, array pipes)

proc_open() é similar a popen() mas provê um controle muito maior sobre a execução do programa. cmd é o comando a ser executado pelo shell. descriptorspec é uma mariz indexada aonde a chave representa o número do descritor e o valor representa como o PHP irá passar o descritor para o processo filho. pipes será definido como uma matriz de ponteiros de arquivos que corresponde no PHP a qualquer pipe que foi criado. O valor de retorno é um recurso representando o processo, você deve libera-lo usando proc_close() quando você tiver terminado com ela.

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin é um pipe a partir do qual o processo filho vai ler
   1 => array("pipe", "w"),  // stdout é um pipe a partir do qual o processo filho vai escrever
   2 => array("file", "/tmp/error-output.txt", "a") // stderr é um arquivo que será escrito
);
$process = proc_open("php", $descriptorspec, $pipes);
if (is_resource($process)) {
    // $pipes parece com isso agora:
    // 0 => manipulador de escrita conectado com o stdin do processo filho
    // 1 => manipulador de leitura conectado com o stdout do processo filho
    // Qualquer saída de erro será adicionada em /tmp/error-output.txt

    fwrite($pipes[0], "<?php echo \"Hello World!\"; ?>");
    fclose($pipes[0]);

    while(!feof($pipes[1])) {
        echo fgets($pipes[1], 1024);
    }
    fclose($pipes[1]);
    // É importante que você feche qualquer pipe antes de usar
    // proc_close para evitar um travamento
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}
?>

Os números de descritores em descriptorspec não saõ limitados a 0, 1 e 2 - você pode especificar qualquer número de descritor de arquivo válido e será passado para o processo filho. Isto permite ao seu script interagir com outros scripts que funcionam como "co-processos". Em particular, isto é útil para passar senhas para programas como PGP, GPG e openssl de uma maneira mais segura. É útil também para ler a informação de status provida por estes programas nos descritores de arquivos auxiliares.

Nota: Compatibilidade com o Windows: Descritores além do 2 (stderr) são disponibilizados para o Windows, mas desde que a arquitetura Windows não associa descritores de arquivos com os manipuladores de baixo nível, o processo filho não tem (ainda) meios de acessar estes manipuladores. Stdin, stdout e stderr funcionam como esperado.

Nota: Se você precisa de um pipe de processo uni-direcional, use a função popen() ao invés, já que ela é muito mais fácil de usar.

Veja também stream_select(), exec(),
system(),
passthru(), popen(),
escapeshellcmd(), e o operador backtick.

Anterior | Principal | Próxima
proc_nice | Acima | proc_terminate


proc_terminate

(PHP 5)

proc_terminate -- Mata um processo aberto por proc_open

Descrição

int proc_terminate ( resource process [, int signal])

Sinaliza um process (criado usando proc_open()) que ele deve terminar. proc_terminate() retorna imediatamente e não espera pelo processo terminar.

O parâmetro opcional signal é somente útil em sistemas operacionais POSIX, você deve especificar um sinal para enviar para o processo usando a chamada de sistema kill(2). O padrão é SIGTERM.

proc_terminate() permite a você terminar o processo e continuar com outras tarefas. Você pode descobrir se o processo já parou usando a função proc_get_status().

Veja também proc_open(), proc_close(), e proc_get_status().

Anterior | Principal | Próxima
proc_open | Acima | shell_exec


shell_exec

(PHP 4 , PHP 5)

shell_exec -- Executa um comando via shell e retorna a saída inteira

Descrição

string shell_exec ( string cmd)

Esta função é identica a backtick operator.

Anterior | Principal | Próxima
proc_terminate | Acima | system


system

(PHP 3, PHP 4 , PHP 5)

system -- Executa um programa externo e mostra a saída

Descrição

string system ( string command [, int return_var])

system() é igual a versão C desta função no que executa o command indicado e mostra o resultado. Se é dada uma variável como segundo argumento, então o código de status de retorno será escrito nesta variável.

Atenção

Se você irá permitir que dados vindos do usuário sejam passados para esta função, você deve usar escapeshellarg() ou escapeshellcmd() para ter certesa que os usuários não enganem o sistema executando comandos arbritários.

Nota: Se você iniciar um programa usando esta função e quiser deixar ele sendo executado em segundo plano, você deve ter certesa que a saída do programa é redirecionada para um arquivo ou outro stream de saída se não o PHP irá parar até que termine a execução do programa.

A função system() também tenta automaticamente limpar o buffer de saída do servidor mandando os dados para o browser após cada linha de saída se o PHP estiver sendo executado como módulo de servidor.

Retorna a última linha da saída do comando em caso de sucesso ou FALSE em caso de falha.

Se você precisa executar um comando e ter todos os dados do comando passados sem nenhuma interferencia, use a função passthru().

Exemplo 1. Exemplo system()

<?php
echo '<pre>';

// Mostra todo o resultado do comando do shell "ls", e retorna
// a última linha da saída em $last_line. Guarda o valor de retorno
// do comando shell em $retval.
$last_line = system('ls', $retval);

// Mostrando informação adicional
echo '
</pre>
<hr>Última linha da saída: '.$last_line.'
<hr>Valor de Retorno: '.$retval;
?>

Veja também exec(),
passthru(), popen(),
escapeshellcmd(), e backtick operator.

Anterior | Principal | Próxima
shell_exec | Acima | Impressão


Impressão

Manual do PHP
Anterior Próxima

LXXXVII. Impressão

Introdução

Estas funções somente estã disponíveis no Windows 9.x, ME, NT4 e 2000. Elas foram adicionadas no PHP 4.0.4.

Instalação

Adicione a linha extension=php_printer.dll no seu arquivo php.ini.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de configuração da impressora

Nome | Padrão | Modificável
printer.default_printer | "" | PHP_INI_ALL
Para maiores detalhes e definições das constantes do PHP_INI_* veja ini_set().

Índice
printer_abort -- Exclui o arquivo de impressão
printer_close -- Fecha uma conexão aberta com uma impressora
printer_create_brush -- Cria um novo pincel
printer_create_dc -- Cria um novo new device context
printer_create_font -- Cria uma nova fonte
printer_create_pen -- Cria uma nova caneta
printer_delete_brush -- Exclui um pincel
printer_delete_dc -- Exclui um device context
printer_delete_font -- Exclui uma fonte
printer_delete_pen -- Exclui a caneta
printer_draw_bmp -- Desenha um bitmap
printer_draw_chord -- Draw a chord
printer_draw_elipse -- Draw an ellipse
printer_draw_line -- Desenha uma linha
printer_draw_pie -- Draw a pie
printer_draw_rectangle -- Draw a rectangle
printer_draw_roundrect -- Draw a rectangle with rounded corners
printer_draw_text -- Desenha um texto
printer_end_doc -- Fecha o documento
printer_end_page -- Fecha a página ativa
printer_get_option -- Obtém dados de configuração da impressora
printer_list -- Retorna uma matriz das impressoras anexadas ao servidor
printer_logical_fontheight -- Obtém a altura lógica da fonte
printer_open -- Abre uma conexão com a impressora
printer_select_brush -- Seleciona um pincel
printer_select_font -- Seleciona uma fonte
printer_select_pen -- Seleciona uma caneta
printer_set_option -- Configura a conexão com a impressora
printer_start_doc -- Começa um novo documento
printer_start_page -- Começa uma nova página
printer_write -- Escreve daos na impressora

Anterior | Principal | Próxima
system | Acima | printer_abort


printer_abort

(no version information, might be only in CVS)

printer_abort -- Exclui o arquivo de impressão

Descrição

void printer_abort ( resource handle)

Esta função exclui o arquivo de impressão.

handle deve ser um manipulador válido para uma impressora.

Exemplo 1. Exemplo printer_abort()

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
Impressão | Acima | printer_close


printer_close

(no version information, might be only in CVS)

printer_close -- Fecha uma conexão aberta com uma impressora

Descrição

void printer_close ( resource handle)

Esta função fecha a conexão com a impressora. printer_close() também fecha o device context ativo.

handle deve ser um manipulador válido para uma impressora.

Exemplo 1. Exemplo printer_close()

<?php
$handle = printer_open();
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_abort | Acima | printer_create_brush


printer_create_brush

(no version information, might be only in CVS)

printer_create_brush -- Cria um novo pincel

Descrição

mixed printer_create_brush ( int style, string color)

A função cria um novo pincel e retorna um manipulador para ele. Um pincel é usado para prencher formas. Por exemplo, veja printer_select_brush(). color deve ser uma cor em RGB hexadecimal, ex. "000000" para preto, style deve ser uma das seguintes constantes:

  • PRINTER_BRUSH_SOLID: Cria um pincel com uma cor solida.

  • PRINTER_BRUSH_DIAGONAL: creates a brush with a 45-degree upward left-to-right hatch ( / ).

  • PRINTER_BRUSH_CROSS: creates a brush with a cross hatch ( + ).

  • PRINTER_BRUSH_DIAGCROSS: creates a brush with a 45 cross hatch ( x ).

  • PRINTER_BRUSH_FDIAGONAL: creates a brush with a 45-degree downward left-to-right hatch ( \ ).

  • PRINTER_BRUSH_HORIZONTAL: creates a brush with a horizontal hatch ( - ).

  • PRINTER_BRUSH_VERTICAL: creates a brush with a vertical hatch ( | ).

  • PRINTER_BRUSH_CUSTOM: creates a custom brush from an BMP file. The second parameter is used to specify the BMP instead of the RGB color code.

Anterior | Principal | Próxima
printer_close | Acima | printer_create_dc


printer_create_dc

(no version information, might be only in CVS)

printer_create_dc -- Cria um novo new device context

Descrição

void printer_create_dc ( resource handle)

A função cria um novo. Um device context é usado para customizar objetos gráficos do documento. handle deve ser um manipulador válido para uma impressora.

Exemplo 1. Exemplo printer_create_dc()

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* do some stuff with the dc */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* create another dc */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* do some stuff with the dc */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_create_brush | Acima | printer_create_font


printer_create_font

(no version information, might be only in CVS)

printer_create_font -- Cria uma nova fonte

Descrição

mixed printer_create_font ( string face, int height, int width, int font_weight, bool italic, bool underline, bool strikeout, int orientaton)

Esta função cria uma nova fonte e retorna um manipulador para ela. Uma fonte é usada para desenhar texto. Para um exemplo veja printer_select_font(). face deve ser uma string especificando a face da fonte. height especifica a altura da fonte, e width a largura da fonte. O font_weight especifica a espessura da fonte (400 é o normal), e pode ser uma das seguintes constantes predefinidas.

  • PRINTER_FW_THIN: define a espessura para fino (100).

  • PRINTER_FW_ULTRALIGHT: define a espessura para ultra leve (200).

  • PRINTER_FW_LIGHT: define a espessura para leve (300).

  • PRINTER_FW_NORMAL: define a espessura para normal (400).

  • PRINTER_FW_MEDIUM: define a espessura para medium (500).

  • PRINTER_FW_BOLD: define a espessura para negrito (700).

  • PRINTER_FW_ULTRABOLD: define a espessura para ultra negrito (800).

  • PRINTER_FW_HEAVY: define a espessura para pesada (900).

italic pode ser TRUE ou FALSE, e define se a fonte deve ser itálica.

underline pode ser TRUE ou FALSE, e define se a fonte deve ser sublinhada.

strikeout pode ser TRUE ou FALSE, e define se a fonte deve ser riscada.

orientation especifica a rotação. Para um exemplo veja printer_select_font().

Anterior | Principal | Próxima
printer_create_dc | Acima | printer_create_pen


printer_create_pen

(no version information, might be only in CVS)

printer_create_pen -- Cria uma nova caneta

Descrição

mixed printer_create_pen ( int style, int width, string color)

Esta função cria uma nova caneta e retorna um manipulador para ela. Uma caneta é usada para desenhar linhas e curvas. Para um exemplo veja printer_select_pen(). color deve ser uma cor em RGB hexadecimal, ex. "000000" para preto, width especifica a largura da caneta enquanto style deve ser uma das seguintes constantes:

  • PRINTER_PEN_SOLID: cria uma caneta solida.

  • PRINTER_PEN_DASH: cria uma caneta com traços.

  • PRINTER_PEN_DOT: cria uma caneta com pontos.

  • PRINTER_PEN_DASHDOT: cria uma caneta com traços e pontos.

  • PRINTER_PEN_DASHDOTDOT: cria uma canetas com traços e dois pontos.

  • PRINTER_PEN_INVISIBLE: cria uma caneta invisivel.

Anterior | Principal | Próxima
printer_create_font | Acima | printer_delete_brush


printer_delete_brush

(no version information, might be only in CVS)

printer_delete_brush -- Exclui um pincel

Descrição

bool printer_delete_brush ( resource handle)

Esta função exclui o pincel selecionado. Para um exemplo veja printer_select_brush(). Retorna TRUE em caso de sucesso ou FALSE em falhas. handle deve ser um manipulador válido para um pincel.

Anterior | Principal | Próxima
printer_create_pen | Acima | printer_delete_dc


printer_delete_dc

(no version information, might be only in CVS)

printer_delete_dc -- Exclui um device context

Descrição

bool printer_delete_dc ( resource handle)

A função exclui um device context. Retorna TRUE em caso de sucesso ou FALSE em falhas. Para um exemplo veja printer_create_dc(). handle deve ser um manipulador válido para uma impressora.

Anterior | Principal | Próxima
printer_delete_brush | Acima | printer_delete_font


printer_delete_font

(no version information, might be only in CVS)

printer_delete_font -- Exclui uma fonte

Descrição

bool printer_delete_font ( resource handle)

Esta função exclui a fonte selecionada. Para um exemplo veja printer_select_font(). Retorna TRUE em caso de sucesso ou FALSE em falhas. handle deve ser um manipulador válido para a fonte.

Anterior | Principal | Próxima
printer_delete_dc | Acima | printer_delete_pen


printer_delete_pen

(no version information, might be only in CVS)

printer_delete_pen -- Exclui a caneta

Descrição

bool printer_delete_pen ( resource handle)

Esta função exclui a caneta selecionada. Para um exemplo veja printer_select_pen(). Retorna TRUE em caso de sucesso ou FALSE em falhas. handle deve ser um manipilador válido para a caneta.

Anterior | Principal | Próxima
printer_delete_font | Acima | printer_draw_bmp


printer_draw_bmp

(no version information, might be only in CVS)

printer_draw_bmp -- Desenha um bitmap

Descrição

void printer_draw_bmp ( resource handle, string filename, int x, int y)

Esta função simplesmente desenha um bitmap filename na posição x, y. handle deve ser um manipulador válido para uma impressora.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo printer_draw_bmp()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_delete_pen | Acima | printer_draw_chord


printer_draw_chord

(no version information, might be only in CVS)

printer_draw_chord -- Draw a chord

Description

void printer_draw_chord ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad_x, int rad_y, int rad_x1, int rad_y1)

The function simply draws an chord. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad_x is x coordinate of the radial defining the beginning of the chord.

rad_y is y coordinate of the radial defining the beginning of the chord.

rad_x1 is x coordinate of the radial defining the end of the chord.

rad_y1 is y coordinate of the radial defining the end of the chord.

Exemplo 1. printer_draw_chord() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_bmp | Acima | printer_draw_elipse


printer_draw_elipse

(no version information, might be only in CVS)

printer_draw_elipse -- Draw an ellipse

Description

void printer_draw_elipse ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws an ellipse. handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the ellipse.

ul_y is the upper left y coordinate of the ellipse.

lr_x is the lower right x coordinate of the ellipse.

lr_y is the lower right y coordinate of the ellipse.

Exemplo 1. printer_draw_elipse() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_chord | Acima | printer_draw_line


printer_draw_line

(no version information, might be only in CVS)

printer_draw_line -- Desenha uma linha

Descrição

void printer_draw_line ( resource printer_handle, int from_x, int from_y, int to_x, int to_y)

A função simplesmente desenha uma linha da posição from_x, from_y para a posição to_x, to_y usando a caneta selecionada. printer_handle deve ser um manipulador válido para uma impressora.

Exemplo 1. Exemplo printer_draw_line()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_elipse | Acima | printer_draw_pie


printer_draw_pie

(no version information, might be only in CVS)

printer_draw_pie -- Draw a pie

Description

void printer_draw_pie ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad1_x, int rad1_y, int rad2_x, int rad2_y)

The function simply draws an pie. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad1_x is x coordinate of the first radial's ending.

rad1_y is y coordinate of the first radial's ending.

rad2_x is x coordinate of the second radial's ending.

rad2_y is y coordinate of the second radial's ending.

Exemplo 1. printer_draw_pie() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_line | Acima | printer_draw_rectangle


printer_draw_rectangle

(no version information, might be only in CVS)

printer_draw_rectangle -- Draw a rectangle

Description

void printer_draw_rectangle ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws a rectangle.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

Exemplo 1. printer_draw_rectangle() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_pie | Acima | printer_draw_roundrect


printer_draw_roundrect

(no version information, might be only in CVS)

printer_draw_roundrect -- Draw a rectangle with rounded corners

Description

void printer_draw_roundrect ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y, int width, int height)

The function simply draws a rectangle with rounded corners.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

width is the width of the ellipse.

height is the height of the ellipse.

Exemplo 1. printer_draw_roundrect() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_rectangle | Acima | printer_draw_text


printer_draw_text

(no version information, might be only in CVS)

printer_draw_text -- Desenha um texto

Descrição

void printer_draw_text ( resource printer_handle, string text, int x, int y)

A função simplesmente desenha text na posição x, y usando a fonte selecionada. printer_handle deve ser um manipulador válido para uma impressora.

Exemplo 1. Exemplo printer_draw_text()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial",72,48,400,false,false,false,0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_draw_roundrect | Acima | printer_end_doc


printer_end_doc

(no version information, might be only in CVS)

printer_end_doc -- Fecha o documento

Descrição

bool printer_end_doc ( resource handle)

Fecha um novo documento na fila de impressão. O documento agora estará pronto para ser impresso. Para um exemplo veja printer_start_doc(). handle deve ser um manipulador válido para a impressora.

Anterior | Principal | Próxima
printer_draw_text | Acima | printer_end_page


printer_end_page

(no version information, might be only in CVS)

printer_end_page -- Fecha a página ativa

Descrição

bool printer_end_page ( resource handle)

A função fecha a página ativa no documento ativo. Para um exemplo veja printer_start_doc(). handle deve ser um manipulador válido para a impressora.

Anterior | Principal | Próxima
printer_end_doc | Acima | printer_get_option


printer_get_option

(no version information, might be only in CVS)

printer_get_option -- Obtém dados de configuração da impressora

Descrição

mixed printer_get_option ( resource handle, string option)

A função obtém as definições de configuração de option. handle deve ser um manipulador válido para a impressora. De uma olhada em printer_set_option() para as definições que podem ser obtidas, adicionalmente as seguintes definições podem ser obtidas:

  • PRINTER_DEVICENAME retorna o devicename da impressora.

  • PRINTER_DRIVERVERSION retorna a versão do driver da impressora.

Exemplo 1. Exemplo printer_get_option()

<?php
$handle = printer_open();
print printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_end_page | Acima | printer_list


printer_list

(no version information, might be only in CVS)

printer_list -- Retorna uma matriz das impressoras anexadas ao servidor

Descrição

array printer_list ( int enumtype [, string name [, int level]])

Esta função lista as impressoras disponíveis e suas capacidades. level define o nível de informação que você quer. Pode ser 1,2,4 ou 5. enumtype deve ser uma das seguintes constantes predefinidas:

  • PRINTER_ENUM_LOCAL: lista as impressoras instaladas localmente.

  • PRINTER_ENUM_NAME: lista as impressoras de name, pode ser um servidor, um domínio ou um servidor de impressão.

  • PRINTER_ENUM_SHARED: Este parâmetro não pode ser usado sozinho, deve ser utilizado em conjunto com outro, ex. PRINTER_ENUM_LOCAL para detectar impressoras localmente compartilhadas.

  • PRINTER_ENUM_DEFAULT: (Win9.x somente) lista a impressora padrão.

  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 somente) listas as impressoras com as quais o usuário fez conexões.

  • PRINTER_ENUM_NETWORK: (WinNT/2000 only) lista as impressoras de rede no dominio. Válido somente se level for 1.

  • PRINTER_ENUM_REMOTE: (WinNT/2000 only) lista as impressoras de rede e os servidores de impressão no dominio. Válido somente se level for 1.

Exemplo 1. Exemplo printer_list()

<?php
/* detecta impressora compartilhada localmente */
var_dump( printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED) );
?>

Anterior | Principal | Próxima
printer_get_option | Acima | printer_logical_fontheight


printer_logical_fontheight

(no version information, might be only in CVS)

printer_logical_fontheight -- Obtém a altura lógica da fonte

Descrição

int printer_logical_fontheight ( resource handle, int height)

A função calcula a altura logica da fonte de height. handle deve ser um manipulador válido para a impressora.

Exemplo 1. Exemplo printer_logical_fontheight()

<?php
$handle = printer_open();
print printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_list | Acima | printer_open


printer_open

(no version information, might be only in CVS)

printer_open -- Abre uma conexão com a impressora

Descrição

mixed printer_open ( [string devicename])

Esta função tenta abrir uma conexão com a impressora devicename, e retorna um manipulador em caso de sucesso ou FALSE em caso de falha.

Se não for dado um parâmetro, ele tenta abrir uma conexão com a impressora padrão (se não especificado no php.ini como printer.default_printer, o PHP tenta detecta-lo).

printer_open() também inicia um device context.

Exemplo 1. Exemplo printer_open()

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

Anterior | Principal | Próxima
printer_logical_fontheight | Acima | printer_select_brush


printer_select_brush

(no version information, might be only in CVS)

printer_select_brush -- Seleciona um pincel

Descrição

void printer_select_brush ( resource printer_handle, resource brush_handle)

A função seleciona um pincel como o objeto de desenho do device context atual. Um pincel é usado para prencher formas. Se você desenhar um retângulo o pincel é usado para desenhar a forma, enquanto a caneta é usado para desenhar a borda. Se você não tiver selecionado um pincel andes de desenhar formas, a forma não será prenchida. printer_handle deve ser um manipulador válido para uma impressora. brush_handle deve ser um manipulador válido para um pincel.

Exemplo 1. Exemplo printer_select_brush()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1,1,500,500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1,501,500,1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_open | Acima | printer_select_font


printer_select_font

(no version information, might be only in CVS)

printer_select_font -- Seleciona uma fonte

Descrição

void printer_select_font ( resource printer_handle, resource font_handle)

A função seleciona uma fonte para desenhar texto. printer_handle deve ser um manipulador válido para uma impressora. font_handle deve ser um manipulador válido para uma fonte.

Exemplo 1. Exemplo printer_select_font()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_select_brush | Acima | printer_select_pen


printer_select_pen

(no version information, might be only in CVS)

printer_select_pen -- Seleciona uma caneta

Descrição

void printer_select_pen ( resource printer_handle, resource pen_handle)

A função seleciona uma caneta como objeto de desenho do device context atual. Uma caneta é usada para desenhar linhas e curvas. Ex. se você desenhar uma linha simples a caneta é usada. Se você desenhar um retângulo a caneta é usada para desenhar as bordas, enquanto o pincel é usado para prencher a forma. Se você ão tiver selecionado uma caneta antes de desenhar uma forma, a forma não terá borda. printer_handle deve ser um manipulador válido para uma impressora. pen_handle deve ser um manipulador válido para uma caneta.

Exemplo 1. Exemplo printer_select_pen()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_select_font | Acima | printer_set_option


printer_set_option

(no version information, might be only in CVS)

printer_set_option -- Configura a conexão com a impressora

Descrição

bool printer_set_option ( resource handle, int option, mixed value)

A função define as seguintes opções para a conexão atual. handle deve ser um manipulador válido para uma impressora. Para o parâmetro option pode ser uma das seguintes constantes:

  • PRINTER_COPIES: define quantas copias devem ser imprimidas, value deve ser um inteiro.

  • PRINTER_MODE: especifica o tipo de dados (text, raw ou emf), value deve ser uma string.

  • PRINTER_TITLE: especifica o nome do documento, value deve ser uma string.

  • PRINTER_ORIENTATION: especifica a orientação do papel, value pode ser PRINTER_ORIENTATION_PORTRAIT ou PRINTER_ORIENTATION_LANDSCAPE

  • PRINTER_RESOLUTION_Y: especifica a resolução y em DPI, value deve ser um inteiro.

  • PRINTER_RESOLUTION_X: especifica a resolução x em DPI, value deve ser um inteiro.

  • PRINTER_PAPER_FORMAT: especifica um formato predefinido de papel, defina value para PRINTER_FORMAT_CUSTOM se você quer especificar um formato próprio com PRINTER_PAPER_WIDTH e PRINTER_PAPER_LENGTH. value pode ser uma das seguintes constantes.

    • PRINTER_FORMAT_CUSTOM: permite a você especificar um formato próprio de papel.

    • PRINTER_FORMAT_LETTER: especifica o formato padrão letter (8 1/2- por 11-polegadas).

    • PRINTER_FORMAT_LETTER: especifica o formato padrão legal (8 1/2- por 14-polegadas).

    • PRINTER_FORMAT_A3: especifica o formato padrão A3 (297- por 420-milímetros).

    • PRINTER_FORMAT_A4: especifica o formato padrão A4 (210- por 297-milímetros).

    • PRINTER_FORMAT_A5: especifica o formato padrão A5 (148- por 210-milímetros).

    • PRINTER_FORMAT_B4: especifica o formato padrão B4 (250- por 354-milímetros).

    • PRINTER_FORMAT_B5: especifica o formato padrão B5 (182- por 257-milímetros).

    • PRINTER_FORMAT_FOLIO: especifica o formato padrão FOLIO (8 1/2- por 13-polegadas).

  • PRINTER_PAPER_LENGTH: se PRINTER_PAPER_FORMAT estiver definido como PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH especifica o tamanho do papel em milímetros mm, value deve ser um inteiro.

  • PRINTER_PAPER_WIDTH: se PRINTER_PAPER_FORMAT estiver definido como PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH especifica a largura do papel em milímetros, value deve ser um inteiro.

  • PRINTER_SCALE: especifica o fator pelo qual a saída impressa será escalada. O tamanho da pagina é escalado a partir do tamanho físico pelo fator de escala/100. Por exemplo, se você definir a escala para 50, a saída será a metade do tamanho original. value deve ser um inteiro.

  • PRINTER_BACKGROUND_COLOR: especifica a cor do fundo para o device context atual, value deve ser uma string contendo a informação rgb no formato hexadecimal, ex. "005533".

  • PRINTER_TEXT_COLOR: especifica a cor do texto para o device context atual, value deve ser uma string contendo a informação rgb no formato hexadecimal, ex. "005533".

  • PRINTER_TEXT_ALIGN: especifica o alinhamento do texto para o device context atual, value pode ser uma combinação das seguintes constantes:

    • PRINTER_TA_BASELINE: o texto será alinhado na base da linha.

    • PRINTER_TA_BOTTOM: o texto será alinhado em baixo.

    • PRINTER_TA_TOP: o texto será alinhado em cima.

    • PRINTER_TA_CENTER: o texto será alinhado no centro.

    • PRINTER_TA_LEFT: o texto será alinhado na esquerda.

    • PRINTER_TA_RIGHT: o texto será alinhado na direita.

Exemplo 1. Exemplo printer_set_option()

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_select_pen | Acima | printer_start_doc


printer_start_doc

(no version information, might be only in CVS)

printer_start_doc -- Começa um novo documento

Descrição

bool printer_start_doc ( resource handle [, string document])

A função cria um novo documento na fila de impressão da impressora. Um documento pode conter múltiplas páginas, é usado para agendar o trabalho na fila de impressão. handle deve ser um manipulador válido para uma impressora. O parâmetro opcional document pode ser usado para definir um nome alternativo para o documento.

Exemplo 1. Exemplo printer_start_doc()

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_set_option | Acima | printer_start_page


printer_start_page

(no version information, might be only in CVS)

printer_start_page -- Começa uma nova página

Descrição

bool printer_start_page ( resource handle)

A função cria uma nova página no documento ativo. Para um exemplo veja printer_start_doc(). handle deve ser um manipulador válido para a impressora.

Anterior | Principal | Próxima
printer_start_doc | Acima | printer_write


printer_write

(no version information, might be only in CVS)

printer_write -- Escreve daos na impressora

Descrição

bool printer_write ( resource handle, string content)

Escreve content diretamente para a impressora. Retorna TRUE em caso de sucesso ou FALSE em falhas.

handle deve ser um manipulador válido para a impressora.

Exemplo 1. Exemplo printer_write()

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>

Anterior | Principal | Próxima
printer_start_page | Acima | Pspell Functions


Pspell Functions

Manual do PHP
Anterior Próxima

LXXXVIII. Pspell Functions

Introdução

These functions allow you to check the spelling of a word and offer suggestions.

Requisitos

To compile PHP with pspell support, you need the aspell library, available from http://aspell.sourceforge.net/.

Instalação

If you have the libraries needed add the --with-pspell[=dir] option when compiling PHP.

Note to Win32 Users: win32 support is available only in PHP 4.3.3 and later versions. Also, you must have aspell 0.50 or newer installed. In order to enable this module under Windows, you must copy aspell-15.dll from the bin folder of your aspell installation to a folder where PHP will be able to find it. C:\PHP or the SYSTEM32 folder of your windows machine (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32) are good choices.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

PSPELL_FAST (integer)

PSPELL_NORMAL (integer)

PSPELL_BAD_SPELLERS (integer)

PSPELL_RUN_TOGETHER (integer)

Índice
pspell_add_to_personal -- Add the word to a personal wordlist
pspell_add_to_session -- Add the word to the wordlist in the current session
pspell_check -- Check a word
pspell_clear_session -- Clear the current session
pspell_config_create -- Create a config used to open a dictionary
pspell_config_ignore -- Ignore words less than N characters long
pspell_config_mode -- Change the mode number of suggestions returned
pspell_config_personal -- Set a file that contains personal wordlist
pspell_config_repl -- Set a file that contains replacement pairs
pspell_config_runtogether -- Consider run-together words as valid compounds
pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist
pspell_new_config -- Load a new dictionary with settings based on a given config
pspell_new_personal -- Load a new dictionary with personal wordlist
pspell_new -- Load a new dictionary
pspell_save_wordlist -- Save the personal wordlist to a file
pspell_store_replacement -- Store a replacement pair for a word
pspell_suggest -- Suggest spellings of a word

Anterior | Principal | Próxima
printer_write | Acima | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personal -- Add the word to a personal wordlist

Description

int pspell_add_to_personal ( int dictionary_link, string word)

pspell_add_to_personal() adds a word to the personal wordlist. If you used pspell_new_config() with pspell_config_personal() to open the dictionary, you can save the wordlist later with pspell_save_wordlist(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Exemplo 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Anterior | Principal | Próxima
Pspell Functions | Acima | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_session -- Add the word to the wordlist in the current session

Description

int pspell_add_to_session ( int dictionary_link, string word)

pspell_add_to_session() adds a word to the wordlist associated with the current session. It is very similar to pspell_add_to_personal()

Anterior | Principal | Próxima
pspell_add_to_personal | Acima | pspell_check


pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_check -- Check a word

Description

bool pspell_check ( int dictionary_link, string word)

pspell_check() checks the spelling of a word and returns TRUE if the spelling is correct, FALSE if not.

Exemplo 1. pspell_check()

<?php
$pspell_link = pspell_new("en");

if (pspell_check($pspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}
?>

Anterior | Principal | Próxima
pspell_add_to_session | Acima | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_session -- Clear the current session

Description

int pspell_clear_session ( int dictionary_link)

pspell_clear_session() clears the current session. The current wordlist becomes blank, and, for example, if you try to save it with pspell_save_wordlist(), nothing happens.

Exemplo 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //"Vlad" will not be saved
?>

Anterior | Principal | Próxima
pspell_check | Acima | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_create -- Create a config used to open a dictionary

Description

int pspell_config_create ( string language [, string spelling [, string jargon [, string encoding]]])

pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() immediately followed by pspell_new_config() will produce the exact same result. However, after creating a new config, you can also use pspell_config_*() functions before calling pspell_new_config() to take advantage of some advanced functionality.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Exemplo 1. pspell_config_create()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "en");
?>

Anterior | Principal | Próxima
pspell_clear_session | Acima | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignore -- Ignore words less than N characters long

Description

int pspell_config_ignore ( int dictionary_link, int n)

pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spellchecker. Words less then n characters will be skipped.

Exemplo 1. pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    //will not result in an error
?>

Anterior | Principal | Próxima
pspell_config_create | Acima | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_mode -- Change the mode number of suggestions returned

Description

int pspell_config_mode ( int dictionary_link, int mode)

pspell_config_mode() should be used on a config before calling pspell_new_config(). This function determines how many suggestions will be returned by pspell_suggest().

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

Exemplo 1. pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Anterior | Principal | Próxima
pspell_config_ignore | Acima | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personal -- Set a file that contains personal wordlist

Description

int pspell_config_personal ( int dictionary_link, string file)

pspell_config_personal() should be used on a config before calling pspell_new_config(). The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). If the file does not exist, it will be created. The file is also the file where pspell_save_wordlist() will save personal wordlist to. The file should be writable by whoever PHP runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Exemplo 1. pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Anterior | Principal | Próxima
pspell_config_mode | Acima | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_repl -- Set a file that contains replacement pairs

Description

int pspell_config_repl ( int dictionary_link, string file)

pspell_config_repl() should be used on a config before calling pspell_new_config(). The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a proper suggestion was not found in the list, pspell_store_replacement() can be used to store a replacement pair and then pspell_save_wordlist() to save the wordlist along with the replacement pairs. The file should be writable by whoever PHP runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Exemplo 1. pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Anterior | Principal | Próxima
pspell_config_personal | Acima | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogether -- Consider run-together words as valid compounds

Description

int pspell_config_runtogether ( int dictionary_link, bool flag)

pspell_config_runtogether() should be used on a config before calling pspell_new_config(). This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Exemplo 1. pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Anterior | Principal | Próxima
pspell_config_repl | Acima | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist

Description

int pspell_config_save_repl ( int dictionary_link, bool flag)

pspell_config_save_repl() should be used on a config before calling pspell_new_config(). It determines whether pspell_save_wordlist() will save the replacement pairs along with the wordlist. Usually there is no need to use this function because if pspell_config_repl() is used, the replacement pairs will be saved by pspell_save_wordlist() anyway, and if it is not, the replacement pairs will not be saved. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Anterior | Principal | Próxima
pspell_config_runtogether | Acima | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_config -- Load a new dictionary with settings based on a given config

Description

int pspell_new_config ( int config)

pspell_new_config() opens up a new dictionary with settings specified in a config, created with with pspell_config_create() and modified with pspell_config_*() functions. This method provides you with the most flexibility and has all the functionality provided by pspell_new() and pspell_new_personal().

The config parameter is the one returned by pspell_config_create() when the config was created.

Exemplo 1. pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>

Anterior | Principal | Próxima
pspell_config_save_repl | Acima | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personal -- Load a new dictionary with personal wordlist

Description

int pspell_new_personal ( string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

pspell_new_personal() opens up a new dictionary with a personal wordlist and returns the dictionary link identifier for use in other pspell functions. The wordlist can be modified and saved with pspell_save_wordlist(), if desired. However, the replacement pairs are not saved. In order to save replacement pairs, you should create a config using pspell_config_create(), set the personal wordlist file with pspell_config_personal(), set the file for replacement pairs with pspell_config_repl(), and open a new dictionary with pspell_new_config().

The personal parameter specifies the file where words added to the personal list will be stored. It should be an absolute filename beginning with '/' because otherwise it will be relative to $HOME, which is "/root" for most systems, and is probably not what you want.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Exemplo 1. pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

Anterior | Principal | Próxima
pspell_new_config | Acima | pspell_new


pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_new -- Load a new dictionary

Description

int pspell_new ( string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

pspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other pspell functions.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Exemplo 1. pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

Anterior | Principal | Próxima
pspell_new_personal | Acima | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlist -- Save the personal wordlist to a file

Description

int pspell_save_wordlist ( int dictionary_link)

pspell_save_wordlist() saves the personal wordlist from the current session. The dictionary has to be open with pspell_new_personal(), and the location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Exemplo 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Anterior | Principal | Próxima
pspell_new | Acima | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacement -- Store a replacement pair for a word

Description

int pspell_store_replacement ( int dictionary_link, string misspelled, string correct)

pspell_store_replacement() stores a replacement pair for a word, so that replacement can be returned by pspell_suggest() later. In order to be able to take advantage of this function, you have to use pspell_new_personal() to open the dictionary. In order to permanently save the replacement pair, you have to use pspell_config_personal() and pspell_config_repl() to set the path where to save your custom wordlists, and then use pspell_save_wordlist() for the changes to be written to disk. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Exemplo 1. pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

Anterior | Principal | Próxima
pspell_save_wordlist | Acima | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggest -- Suggest spellings of a word

Description

array pspell_suggest ( int dictionary_link, string word)

pspell_suggest() returns an array of possible spellings for the given word.

Exemplo 1. pspell_suggest() example

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br />";
    }
}
?>

Anterior | Principal | Próxima
pspell_store_replacement | Acima | GNU Readline


GNU Readline

Manual do PHP
Anterior Próxima

LXXXIX. GNU Readline

Introdução

As funções readline() implementam uma interface para a biblioteca GNU Readline. Estas são funções que provem uma linha de comando editável. Um exeplo é o bash que permite a você usar as setas para inserir caracteres ou navegas no historico dos comandos. Por causa da naturesa interativa desta biblioteca, ela será de pouco uso para escrever aplicações web, mas será util quando você estiver escrevendo scripts que usem o PHP a partir da linha de comando.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Para usar as funções readline, você precisa instalar a libreadline. Você pode encontrar a libreadline na página do projeto GNU Readline, em http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. É mantida por Chet Ramey, que também é o autor do Bash.

Você também pode utilizar estas funções com a biblioteca libedit, uma substituição não-GLP para a biblioteca readline. A biblioteca libedit esta sobre a licença BSD e esta disponível para download a partir de http://sourceforge.net/projects/libedit/.

Instalação

Para usar estas funções você deverá compilar as versões CGI ou CLI version do PHP com suporte readline. Você precisa configurar o PHP com --with-readline[=DIR]. Para usar a substituiçao libedit readline, configure o PHP com --with-libedit[=DIR].

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
readline_add_history -- Adiciona uma linha ao histórico
readline_clear_history -- Limpa a história
readline_completion_function -- Registra uma função de completar
readline_info -- Obtém/Define várias variáveis internas do readline
readline_list_history -- Lista a história
readline_read_history -- Lê a história
readline_write_history -- Grava a história
readline -- Lê uma linha

Anterior | Principal | Próxima
pspell_suggest | Acima | readline_add_history


readline_add_history

(PHP 4 , PHP 5)

readline_add_history -- Adiciona uma linha ao histórico

Descrição

void readline_add_history ( string line)

Esta função adiciona uma linha ao histórico da linha de comando.

Anterior | Principal | Próxima
GNU Readline | Acima | readline_clear_history


readline_clear_history

(PHP 4 , PHP 5)

readline_clear_history -- Limpa a história

Descrição

bool readline_clear_history ( void )

Esta função limpa todo o histórico da linha de comando.

Anterior | Principal | Próxima
readline_add_history | Acima | readline_completion_function


readline_completion_function

(PHP 4 , PHP 5)

readline_completion_function -- Registra uma função de completar

Descrição

bool readline_completion_function ( string line)

Esta função registra uma função de completar. Você deve usar o nome de uma função existente a qual aceita uma linha de comando parcial e retorna uma matriz de possíveis combinações. Este é o mesmo tipo de funcionamento que você tem se você pressionar a tecla tab enquanto estiver usando o Bash.

Anterior | Principal | Próxima
readline_clear_history | Acima | readline_info


readline_info

(PHP 4 , PHP 5)

readline_info -- Obtém/Define várias variáveis internas do readline

Descrição

mixed readline_info ( [string varname [, string newvalue]])

Se for utilizada sem parâmetros, esta função retorna uma matriz de valores para as configurações que a readline usa. Os elementos serão indexados pelos seguintes valores: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, e terminal_name.

Se for utulizada com um parâmetro, o valor da definição para esse parâmetro é retornada. Se for utilizada com dois parâmetros, a definição derá mudada para o valor dado.

Anterior | Principal | Próxima
readline_completion_function | Acima | readline_list_history


readline_list_history

(PHP 4 , PHP 5)

readline_list_history -- Lista a história

Descrição

array readline_list_history ( void )

Esta função retorna uma matriz de toda a história da linha de comando. O índice é um número inteiro começando em zero.

Anterior | Principal | Próxima
readline_info | Acima | readline_read_history


readline_read_history

(PHP 4 , PHP 5)

readline_read_history -- Lê a história

Descrição

bool readline_read_history ( string filename)

Esta função lê a história dos comandos de um arquivo.

Anterior | Principal | Próxima
readline_list_history | Acima | readline_write_history


readline_write_history

(PHP 4 , PHP 5)

readline_write_history -- Grava a história

Descrição

bool readline_write_history ( string filename)

Esta função escreve a história dos comandos em um arquivo.

Anterior | Principal | Próxima
readline_read_history | Acima | readline


readline

(PHP 4 , PHP 5)

readline -- Lê uma linha

Descrição

string readline ( [string prompt])

Esta função retorna uma simples string do usuário. Você deve especificar uma string com a qual perguntar ao usuário. O fim de linha é removido. Você deve adicionar esta linha ao historico você mesmo usando readline_add_history().

Exemplo 1. readline()

<?php
//obtém 3 comandos do usuário
for ($i=0; $i < 3; $i++) {
        $line = readline ("Comando: ");
        readline_add_history ($line);
}

//mostra a história
print_r (readline_list_history());

//mostra as variáveis
print_r (readline_info());
?>

Anterior | Principal | Próxima
readline_write_history | Acima | GNU Recode Functions


GNU Recode Functions

Manual do PHP
Anterior Próxima

XC. GNU Recode Functions

Introdução

This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most RFC 1345 character sets are supported.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

You must have GNU Recode 3.5 or higher installed on your system. You can download the package from http://www.gnu.org/directory/All_GNU_Packages/recode.html.

Atenção

The Recode library version 3.6 adds weird characters behind converted strings under certain circumstances. Thus it's safer to use Recode v3.5 or one of the available alternatives like the iconv or mbstring extension.

Instalação

To be able to use the functions defined in this module you must compile your PHP interpreter using the --with-recode[=DIR] option.

Atenção

Crashes and startup problems of PHP may be encountered when loading the recode as extension after loading any extension of mysql or imap. Loading the recode before those extension has proved to fix the problem. This is due a technical problem that both the c-client library used by imap and recode have their own hash_lookup() function and both mysql and recode have their own hash_insert function.

Atenção

A extensão IMAP não pode ser utilizada em conjunto com as extensões recode ou YAZ. Isto ocorre pelo fato de ambas compartilham os mesmos símbolos internos.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
recode_file -- Recode from file to file according to recode request
recode_string -- Recode a string according to a recode request
recode -- Alias of recode_string()

Anterior | Principal | Próxima
readline | Acima | recode_file


recode_file

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

recode_file -- Recode from file to file according to recode request

Description

bool recode_file ( string request, resource input, resource output)

Recode the file referenced by file handle input into the file referenced by file handle output according to the recode request. Returns FALSE, if unable to comply, TRUE otherwise.

This function does not currently process filehandles referencing remote files (URLs). Both filehandles must refer to local files.

Exemplo 1. Basic recode_file() example

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Anterior | Principal | Próxima
GNU Recode Functions | Acima | recode_string


recode_string

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

recode_string -- Recode a string according to a recode request

Description

string recode_string ( string request, string string)

Recode the string string according to the recode request request. Returns the recoded string or FALSE, if unable to perform the recode request.

A simple recode request may be "lat1..iso646-de". See also the GNU Recode documentation of your installation for detailed instructions about recode requests.

Exemplo 1. Basic recode_string() example:

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: &aacute;");
?>

Anterior | Principal | Próxima
recode_file | Acima | recode


recode

recode -- Alias of recode_string()

Description

This function is an alias of recode_string().

Anterior | Principal | Próxima
recode_string | Acima | Regular Expression Functions (Perl-Compatible)


Regular Expression Functions (Perl-Compatible)

Manual do PHP
Anterior Próxima

XCI. Regular Expression Functions (Perl-Compatible)

Introdução

The syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation.

The ending delimiter may be followed by various modifiers that affect the matching. See Pattern Modifiers.

PHP also supports regular expressions using a POSIX-extended syntax using the POSIX-extended regex functions.

Atenção

You should be aware of some limitations of PCRE. Read http://www.pcre.org/pcre.txt for more info.

Requisitos

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. It is available at ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Instalação

Beginning with PHP 4.2.0 these functions are enabled by default. You can disable the pcre functions with --without-pcre-regex. Use --with-pcre-regex=DIR to specify DIR where PCRE's include and library files are located, if not using bundled library. For older versions you have to configure and compile PHP with --with-pcre-regex[=DIR] in order to use these functions.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Tabela 1. PREG constants

constant | description
PREG_PATTERN_ORDER | Orders results so that $matches[0] is an array of full pattern matches, $matches[1] is an array of strings matched by the first parenthesized subpattern, and so on. This flag is only used with preg_match_all().
PREG_SET_ORDER | Orders results so that $matches[0] is an array of first set of matches, $matches[1] is an array of second set of matches, and so on. This flag is only used with preg_match_all().
PREG_OFFSET_CAPTURE | See the description of PREG_SPLIT_OFFSET_CAPTURE. This flag is available since PHP 4.3.0.
PREG_SPLIT_NO_EMPTY | This flag tells preg_split() to return only non-empty pieces.
PREG_SPLIT_DELIM_CAPTURE | This flag tells preg_split() to capture parenthesized expression in the delimiter pattern as well. This flag is available since PHP 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE | If this flag is set, for every occurring match the appendant string offset will also be returned. Note that this changes the return values in an array where every element is an array consisting of the matched string at offset 0 and its string offset within subject at offset 1. This flag is available since PHP 4.3.0 and is only used for preg_split().

Exemplos

Exemplo 1. Examples of valid patterns

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Exemplo 2. Examples of invalid patterns

  • /href='(.*)' - missing ending delimiter

  • /\w+\s*\w+/J - unknown modifier 'J'

  • 1-\d3-\d3-\d4| - missing starting delimiter

Índice
Pattern Modifiers -- Describes possible modifiers in regex patterns
Pattern Syntax -- Describes PCRE regex syntax
preg_grep -- Return array entries that match the pattern
preg_match_all -- Perform a global regular expression match
preg_match -- Perform a regular expression match
preg_quote -- Quote regular expression characters
preg_replace_callback -- Perform a regular expression search and replace using a callback
preg_replace -- Perform a regular expression search and replace
preg_split -- Split string by a regular expression

Anterior | Principal | Próxima
recode | Acima | Pattern Modifiers


Pattern Modifiers

Pattern Modifiers -- Describes possible modifiers in regex patterns

Description

The current possible PCRE modifiers are listed below. The names in parentheses refer to internal PCRE names for these modifiers.

i (PCRE_CASELESS)

If this modifier is set, letters in the pattern match both upper and lower case letters.

m (PCRE_MULTILINE)

By default, PCRE treats the subject string as consisting of a single "line" of characters (even if it actually contains several newlines). The "start of line" metacharacter (^) matches only at the start of the string, while the "end of line" metacharacter ($) matches only at the end of the string, or before a terminating newline (unless D modifier is set). This is the same as Perl.

When this modifier is set, the "start of line" and "end of line" constructs match immediately following or immediately before any newline in the subject string, respectively, as well as at the very start and end. This is equivalent to Perl's /m modifier. If there are no "\n" characters in a subject string, or no occurrences of ^ or $ in a pattern, setting this modifier has no effect.

s (PCRE_DOTALL)

If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.

x (PCRE_EXTENDED)

If this modifier is set, whitespace data characters in the pattern are totally ignored except when escaped or inside a character class, and characters between an unescaped # outside a character class and the next newline character, inclusive, are also ignored. This is equivalent to Perl's /x modifier, and makes it possible to include comments inside complicated patterns. Note, however, that this applies only to data characters. Whitespace characters may never appear within special character sequences in a pattern, for example within the sequence (?( which introduces a conditional subpattern.

e

If this modifier is set, preg_replace() does normal substitution of backreferences in the replacement string, evaluates it as PHP code, and uses the result for replacing the search string.

Only preg_replace() uses this modifier; it is ignored by other PCRE functions.

Nota: This modifier was not available in PHP 3.

A (PCRE_ANCHORED)

If this modifier is set, the pattern is forced to be "anchored", that is, it is constrained to match only at the start of the string which is being searched (the "subject string"). This effect can also be achieved by appropriate constructs in the pattern itself, which is the only way to do it in Perl.

D (PCRE_DOLLAR_ENDONLY)

If this modifier is set, a dollar metacharacter in the pattern matches only at the end of the subject string. Without this modifier, a dollar also matches immediately before the final character if it is a newline (but not before any other newlines). This modifier is ignored if m modifier is set. There is no equivalent to this modifier in Perl.

S

When a pattern is going to be used several times, it is worth spending more time analyzing it in order to speed up the time taken for matching. If this modifier is set, then this extra analysis is performed. At present, studying a pattern is useful only for non-anchored patterns that do not have a single fixed starting character.

U (PCRE_UNGREEDY)

This modifier inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by "?". It is not compatible with Perl. It can also be set by a (?U) modifier setting within the pattern.

X (PCRE_EXTRA)

This modifier turns on additional functionality of PCRE that is incompatible with Perl. Any backslash in a pattern that is followed by a letter that has no special meaning causes an error, thus reserving these combinations for future expansion. By default, as in Perl, a backslash followed by a letter with no special meaning is treated as a literal. There are at present no other features controlled by this modifier.

u (PCRE_UTF8)

This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32.

Anterior | Principal | Próxima
Regular Expression Functions (Perl-Compatible) | Acima | Pattern Syntax


Pattern Syntax

Pattern Syntax -- Describes PCRE regex syntax

Description

The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5, with just a few differences (see below). The current implementation corresponds to Perl 5.005.

Differences From Perl

The differences described here are with respect to Perl 5.005.

  1. By default, a whitespace character is any character that the C library function isspace() recognizes, though it is possible to compile PCRE with alternative character type tables. Normally isspace() matches space, formfeed, newline, carriage return, horizontal tab, and vertical tab. Perl 5 no longer includes vertical tab in its set of whitespace characters. The \v escape that was in the Perl documentation for a long time was never in fact recognized. However, the character itself was treated as whitespace at least up to 5.002. In 5.004 and 5.005 it does not match \s.

  2. PCRE does not allow repeat quantifiers on lookahead assertions. Perl permits them, but they do not mean what you might think. For example, (?!a){3} does not assert that the next three characters are not "a". It just asserts that the next character is not "a" three times.

  3. Capturing subpatterns that occur inside negative lookahead assertions are counted, but their entries in the offsets vector are never set. Perl sets its numerical variables from any such patterns that are matched before the assertion fails to match something (thereby succeeding), but only if the negative lookahead assertion contains just one branch.

  4. Though binary zero characters are supported in the subject string, they are not allowed in a pattern string because it is passed as a normal C string, terminated by zero. The escape sequence "\\x00" can be used in the pattern to represent a binary zero.

  5. The following Perl escape sequences are not supported: \l, \u, \L, \U, \E, \Q. In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine.

  6. The Perl \G assertion is not supported as it is not relevant to single pattern matches.

  7. Fairly obviously, PCRE does not support the (?{code}) construction.

  8. There are at the time of writing some oddities in Perl 5.005_02 concerned with the settings of captured strings when part of a pattern is repeated. For example, matching "aba" against the pattern /^(a(b)?)+$/ sets $2 to the value "b", but matching "aabbaa" against /^(aa(bb)?)+$/ leaves $2 unset. However, if the pattern is changed to /^(aa(b(b))?)+$/ then $2 (and $3) get set. In Perl 5.004 $2 is set in both cases, and that is also TRUE of PCRE. If in the future Perl changes to a consistent state that is different, PCRE may change to follow.

  9. Another as yet unresolved discrepancy is that in Perl 5.005_02 the pattern /^(a)?(?(1)a|b)+$/ matches the string "a", whereas in PCRE it does not. However, in both Perl and PCRE /^(a)?a/ matched against "a" leaves $1 unset.

  10. PCRE provides some extensions to the Perl regular expression facilities:

    1. Although lookbehind assertions must match fixed length strings, each alternative branch of a lookbehind assertion can match a different length of string. Perl 5.005 requires them all to have the same length.

    2. If PCRE_DOLLAR_ENDONLY is set and PCRE_MULTILINE is not set, the $ meta-character matches only at the very end of the string.

    3. If PCRE_EXTRA is set, a backslash followed by a letter with no special meaning is faulted.

    4. If PCRE_UNGREEDY is set, the greediness of the repetition quantifiers is inverted, that is, by default they are not greedy, but if followed by a question mark they are.

Regular Expression Details

Introduction

The syntax and semantics of the regular expressions supported by PCRE are described below. Regular expressions are also described in the Perl documentation and in a number of other books, some of which have copious examples. Jeffrey Friedl's "Mastering Regular Expressions", published by O'Reilly (ISBN 1-56592-257-3), covers them in great detail. The description here is intended as reference documentation.

A regular expression is a pattern that is matched against a subject string from left to right. Most characters stand for themselves in a pattern, and match the corresponding characters in the subject. As a trivial example, the pattern The quick brown fox matches a portion of a subject string that is identical to itself.

Meta-characters

The power of regular expressions comes from the ability to include alternatives and repetitions in the pattern. These are encoded in the pattern by the use of meta-characters, which do not stand for themselves but instead are interpreted in some special way.

There are two different sets of meta-characters: those that are recognized anywhere in the pattern except within square brackets, and those that are recognized in square brackets. Outside square brackets, the meta-characters are as follows:

\

general escape character with several uses

^

assert start of subject (or line, in multiline mode)

$

assert end of subject (or line, in multiline mode)

.

match any character except newline (by default)

[

start character class definition

]

end character class definition

|

start of alternative branch

(

start subpattern

)

end subpattern

?

extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer

*

0 or more quantifier

+

1 or more quantifier

{

start min/max quantifier

}

end min/max quantifier

Part of a pattern that is in square brackets is called a "character class". In a character class the only meta-characters are:

\

general escape character

^

negate the class, but only if the first character

-

indicates character range

]

terminates the character class

The following sections describe the use of each of the meta-characters.

backslash

The backslash character has several uses. Firstly, if it is followed by a non-alphanumeric character, it takes away any special meaning that character may have. This use of backslash as an escape character applies both inside and outside character classes.

For example, if you want to match a "*" character, you write "\*" in the pattern. This applies whether or not the following character would otherwise be interpreted as a meta-character, so it is always safe to precede a non-alphanumeric with "\" to specify that it stands for itself. In particular, if you want to match a backslash, you write "\\".

If a pattern is compiled with the PCRE_EXTENDED option, whitespace in the pattern (other than in a character class) and characters between a "#" outside a character class and the next newline character are ignored. An escaping backslash can be used to include a whitespace or "#" character as part of the pattern.

A second use of backslash provides a way of encoding non-printing characters in patterns in a visible manner. There is no restriction on the appearance of non-printing characters, apart from the binary zero that terminates a pattern, but when a pattern is being prepared by text editing, it is usually easier to use one of the following escape sequences than the binary character it represents:

\a

alarm, that is, the BEL character (hex 07)

\cx

"control-x", where x is any character

\e

escape (hex 1B)

\f

formfeed (hex 0C)

\n

newline (hex 0A)

\r

carriage return (hex 0D)

\t

tab (hex 09)

\xhh

character with hex code hh

\ddd

character with octal code ddd, or backreference

The precise effect of "\cx" is as follows: if "x" is a lower case letter, it is converted to upper case. Then bit 6 of the character (hex 40) is inverted. Thus "\cz" becomes hex 1A, but "\c{" becomes hex 3B, while "\c;" becomes hex 7B.

After "\x", up to two hexadecimal digits are read (letters can be in upper or lower case).

After "\0" up to two further octal digits are read. In both cases, if there are fewer than two digits, just those that are present are used. Thus the sequence "\0\x\07" specifies two binary zeros followed by a BEL character. Make sure you supply two digits after the initial zero if the character that follows is itself an octal digit.

The handling of a backslash followed by a digit other than 0 is complicated. Outside a character class, PCRE reads it and any following digits as a decimal number. If the number is less than 10, or if there have been at least that many previous capturing left parentheses in the expression, the entire sequence is taken as a back reference. A description of how this works is given later, following the discussion of parenthesized subpatterns.

Inside a character class, or if the decimal number is greater than 9 and there have not been that many capturing subpatterns, PCRE re-reads up to three octal digits following the backslash, and generates a single byte from the least significant 8 bits of the value. Any subsequent digits stand for themselves. For example:

\040

is another way of writing a space

\40

is the same, provided there are fewer than 40 previous capturing subpatterns

\7

is always a back reference

\11

might be a back reference, or another way of writing a tab

\011

is always a tab

\0113

is a tab followed by the character "3"

\113

is the character with octal code 113 (since there can be no more than 99 back references)

\377

is a byte consisting entirely of 1 bits

\81

is either a back reference, or a binary zero followed by the two characters "8" and "1"

Note that octal values of 100 or greater must not be introduced by a leading zero, because no more than three octal digits are ever read.

All the sequences that define a single byte value can be used both inside and outside character classes. In addition, inside a character class, the sequence "\b" is interpreted as the backspace character (hex 08). Outside a character class it has a different meaning (see below).

The third use of backslash is for specifying generic character types:

\d

any decimal digit

\D

any character that is not a decimal digit

\s

any whitespace character

\S

any character that is not a whitespace character

\w

any "word" character

\W

any "non-word" character

Each pair of escape sequences partitions the complete set of characters into two disjoint sets. Any given character matches one, and only one, of each pair.

A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place (see "Locale support" above). For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.

These character type sequences can appear both inside and outside character classes. They each match one character of the appropriate type. If the current matching point is at the end of the subject string, all of them fail, since there is no character to match.

The fourth use of backslash is for certain simple assertions. An assertion specifies a condition that has to be met at a particular point in a match, without consuming any characters from the subject string. The use of subpatterns for more complicated assertions is described below. The backslashed assertions are

\b

word boundary

\B

not a word boundary

\A

start of subject (independent of multiline mode)

\Z

end of subject or newline at end (independent of multiline mode)

\z

end of subject(independent of multiline mode)

These assertions may not appear in character classes (but note that "\b" has a different meaning, namely the backspace character, inside a character class).

A word boundary is a position in the subject string where the current character and the previous character do not both match \w or \W (i.e. one matches \w and the other matches \W), or the start or end of the string if the first or last character matches \w, respectively.

The \A, \Z, and \z assertions differ from the traditional circumflex and dollar (described below) in that they only ever match at the very start and end of the subject string, whatever options are set. They are not affected by the PCRE_MULTILINE or PCRE_DOLLAR_ENDONLY options. The difference between \Z and \z is that \Z matches before a newline that is the last character of the string as well as at the end of the string, whereas \z matches only at the end.

Circumflex and dollar

Outside a character class, in the default matching mode, the circumflex character is an assertion which is true only if the current matching point is at the start of the subject string. Inside a character class, circumflex has an entirely different meaning (see below).

Circumflex need not be the first character of the pattern if a number of alternatives are involved, but it should be the first thing in each alternative in which it appears if the pattern is ever to match that branch. If all possible alternatives start with a circumflex, that is, if the pattern is constrained to match only at the start of the subject, it is said to be an "anchored" pattern. (There are also other constructs that can cause a pattern to be anchored.)

A dollar character is an assertion which is TRUE only if the current matching point is at the end of the subject string, or immediately before a newline character that is the last character in the string (by default). Dollar need not be the last character of the pattern if a number of alternatives are involved, but it should be the last item in any branch in which it appears. Dollar has no special meaning in a character class.

The meaning of dollar can be changed so that it matches only at the very end of the string, by setting the PCRE_DOLLAR_ENDONLY option at compile or matching time. This does not affect the \Z assertion.

The meanings of the circumflex and dollar characters are changed if the PCRE_MULTILINE option is set. When this is the case, they match immediately after and immediately before an internal "\n" character, respectively, in addition to matching at the start and end of the subject string. For example, the pattern /^abc$/ matches the subject string "def\nabc" in multiline mode, but not otherwise. Consequently, patterns that are anchored in single line mode because all branches start with "^" are not anchored in multiline mode. The PCRE_DOLLAR_ENDONLY option is ignored if PCRE_MULTILINE is set.

Note that the sequences \A, \Z, and \z can be used to match the start and end of the subject in both modes, and if all branches of a pattern start with \A is it always anchored, whether PCRE_MULTILINE is set or not.

FULL STOP

Outside a character class, a dot in the pattern matches any one character in the subject, including a non-printing character, but not (by default) newline. If the PCRE_DOTALL option is set, then dots match newlines as well. The handling of dot is entirely independent of the handling of circumflex and dollar, the only relationship being that they both involve newline characters. Dot has no special meaning in a character class.

Square brackets

An opening square bracket introduces a character class, terminated by a closing square bracket. A closing square bracket on its own is not special. If a closing square bracket is required as a member of the class, it should be the first data character in the class (after an initial circumflex, if present) or escaped with a backslash.

A character class matches a single character in the subject; the character must be in the set of characters defined by the class, unless the first character in the class is a circumflex, in which case the subject character must not be in the set defined by the class. If a circumflex is actually required as a member of the class, ensure it is not the first character, or escape it with a backslash.

For example, the character class [aeiou] matches any lower case vowel, while [^aeiou] matches any character that is not a lower case vowel. Note that a circumflex is just a convenient notation for specifying the characters which are in the class by enumerating those that are not. It is not an assertion: it still consumes a character from the subject string, and fails if the current pointer is at the end of the string.

When caseless matching is set, any letters in a class represent both their upper case and lower case versions, so for example, a caseless [aeiou] matches "A" as well as "a", and a caseless [^aeiou] does not match "A", whereas a caseful version would.

The newline character is never treated in any special way in character classes, whatever the setting of the PCRE_DOTALL or PCRE_MULTILINE options is. A class such as [^a] will always match a newline.

The minus (hyphen) character can be used to specify a range of characters in a character class. For example, [d-m] matches any letter between d and m, inclusive. If a minus character is required in a class, it must be escaped with a backslash or appear in a position where it cannot be interpreted as indicating a range, typically as the first or last character in the class.

It is not possible to have the literal character "]" as the end character of a range. A pattern such as [W-]46] is interpreted as a class of two characters ("W" and "-") followed by a literal string "46]", so it would match "W46]" or "-46]". However, if the "]" is escaped with a backslash it is interpreted as the end of range, so [W-\]46] is interpreted as a single class containing a range followed by two separate characters. The octal or hexadecimal representation of "]" can also be used to end a range.

Ranges operate in ASCII collating sequence. They can also be used for characters specified numerically, for example [\000-\037]. If a range that includes letters is used when caseless matching is set, it matches the letters in either case. For example, [W-c] is equivalent to [][\^_`wxyzabc], matched caselessly, and if character tables for the "fr" locale are in use, [\xc8-\xcb] matches accented E characters in both cases.

The character types \d, \D, \s, \S, \w, and \W may also appear in a character class, and add the characters that they match to the class. For example, [\dABCDEF] matches any hexadecimal digit. A circumflex can conveniently be used with the upper case character types to specify a more restricted set of characters than the matching lower case type. For example, the class [^\W_] matches any letter or digit, but not underscore.

All non-alphanumeric characters other than \, -, ^ (at the start) and the terminating ] are non-special in character classes, but it does no harm if they are escaped.

Vertical bar

Vertical bar characters are used to separate alternative patterns. For example, the pattern gilbert|sullivan matches either "gilbert" or "sullivan". Any number of alternatives may appear, and an empty alternative is permitted (matching the empty string). The matching process tries each alternative in turn, from left to right, and the first one that succeeds is used. If the alternatives are within a subpattern (defined below), "succeeds" means matching the rest of the main pattern as well as the alternative in the subpattern.

Internal option setting

The settings of PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, and PCRE_EXTENDED can be changed from within the pattern by a sequence of Perl option letters enclosed between "(?" and ")". The option letters are

Tabela 1. Internal option letters

i | for PCRE_CASELESS
m | for PCRE_MULTILINE
s | for PCRE_DOTALL
x | for PCRE_EXTENDED

For example, (?im) sets caseless, multiline matching. It is also possible to unset these options by preceding the letter with a hyphen, and a combined setting and unsetting such as (?im-sx), which sets PCRE_CASELESS and PCRE_MULTILINE while unsetting PCRE_DOTALL and PCRE_EXTENDED, is also permitted. If a letter appears both before and after the hyphen, the option is unset.

The scope of these option changes depends on where in the pattern the setting occurs. For settings that are outside any subpattern (defined below), the effect is the same as if the options were set or unset at the start of matching. The following patterns all behave in exactly the same way:

(?i)abc
a(?i)bc
ab(?i)c
abc(?i)

which in turn is the same as compiling the pattern abc with PCRE_CASELESS set. In other words, such "top level" settings apply to the whole pattern (unless there are other changes inside subpatterns). If there is more than one setting of the same option at top level, the rightmost setting is used.

If an option change occurs inside a subpattern, the effect is different. This is a change of behaviour in Perl 5.005. An option change inside a subpattern affects only that part of the subpattern that follows it, so (a(?i)b)c matches abc and aBc and no other strings (assuming PCRE_CASELESS is not used). By this means, options can be made to have different settings in different parts of the pattern. Any changes made in one alternative do carry on into subsequent branches within the same subpattern. For example, (a(?i)b|c) matches "ab", "aB", "c", and "C", even though when matching "C" the first branch is abandoned before the option setting. This is because the effects of option settings happen at compile time. There would be some very weird behaviour otherwise.

The PCRE-specific options PCRE_UNGREEDY and PCRE_EXTRA can be changed in the same way as the Perl-compatible options by using the characters U and X respectively. The (?X) flag setting is special in that it must always occur earlier in the pattern than any of the additional features it turns on, even when it is at top level. It is best put at the start.

subpatterns

Subpatterns are delimited by parentheses (round brackets), which can be nested. Marking part of a pattern as a subpattern does two things:

1. It localizes a set of alternatives. For example, the pattern cat(aract|erpillar|) matches one of the words "cat", "cataract", or "caterpillar". Without the parentheses, it would match "cataract", "erpillar" or the empty string.

2. It sets up the subpattern as a capturing subpattern (as defined above). When the whole pattern matches, that portion of the subject string that matched the subpattern is passed back to the caller via the ovector argument of pcre_exec(). Opening parentheses are counted from left to right (starting from 1) to obtain the numbers of the capturing subpatterns.

For example, if the string "the red king" is matched against the pattern the ((red|white) (king|queen)) the captured substrings are "red king", "red", and "king", and are numbered 1, 2, and 3.

The fact that plain parentheses fulfil two functions is not always helpful. There are often times when a grouping subpattern is required without a capturing requirement. If an opening parenthesis is followed by "?:", the subpattern does not do any capturing, and is not counted when computing the number of any subsequent capturing subpatterns. For example, if the string "the white queen" is matched against the pattern the ((?:red|white) (king|queen)) the captured substrings are "white queen" and "queen", and are numbered 1 and 2. The maximum number of captured substrings is 99, and the maximum number of all subpatterns, both capturing and non-capturing, is 200.

As a convenient shorthand, if any option settings are required at the start of a non-capturing subpattern, the option letters may appear between the "?" and the ":". Thus the two patterns

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

match exactly the same set of strings. Because alternative branches are tried from left to right, and options are not reset until the end of the subpattern is reached, an option setting in one branch does affect subsequent branches, so the above patterns match "SUNDAY" as well as "Saturday".

Repetition

Repetition is specified by quantifiers, which can follow any of the following items:

  • a single character, possibly escaped

  • the . metacharacter

  • a character class

  • a back reference (see next section)

  • a parenthesized subpattern (unless it is an assertion - see below)

The general repetition quantifier specifies a minimum and maximum number of permitted matches, by giving the two numbers in curly brackets (braces), separated by a comma. The numbers must be less than 65536, and the first must be less than or equal to the second. For example: z{2,4} matches "zz", "zzz", or "zzzz". A closing brace on its own is not a special character. If the second number is omitted, but the comma is present, there is no upper limit; if the second number and the comma are both omitted, the quantifier specifies an exact number of required matches. Thus [aeiou]{3,} matches at least 3 successive vowels, but may match many more, while \d{8} matches exactly 8 digits. An opening curly bracket that appears in a position where a quantifier is not allowed, or one that does not match the syntax of a quantifier, is taken as a literal character. For example, {,6} is not a quantifier, but a literal string of four characters.

The quantifier {0} is permitted, causing the expression to behave as if the previous item and the quantifier were not present.

For convenience (and historical compatibility) the three most common quantifiers have single-character abbreviations:

Tabela 2. Single-character quantifiers

* | equivalent to {0,}
+ | equivalent to {1,}
? | equivalent to {0,1}

It is possible to construct infinite loops by following a subpattern that can match no characters with a quantifier that has no upper limit, for example: (a?)*

Earlier versions of Perl and PCRE used to give an error at compile time for such patterns. However, because there are cases where this can be useful, such patterns are now accepted, but if any repetition of the subpattern does in fact match no characters, the loop is forcibly broken.

By default, the quantifiers are "greedy", that is, they match as much as possible (up to the maximum number of permitted times), without causing the rest of the pattern to fail. The classic example of where this gives problems is in trying to match comments in C programs. These appear between the sequences /* and */ and within the sequence, individual * and / characters may appear. An attempt to match C comments by applying the pattern /\*.*\*/ to the string /* first command */ not comment /* second comment */ fails, because it matches the entire string due to the greediness of the .* item.

However, if a quantifier is followed by a question mark, then it ceases to be greedy, and instead matches the minimum number of times possible, so the pattern /\*.*?\*/ does the right thing with the C comments. The meaning of the various quantifiers is not otherwise changed, just the preferred number of matches. Do not confuse this use of question mark with its use as a quantifier in its own right. Because it has two uses, it can sometimes appear doubled, as in \d??\d which matches one digit by preference, but can match two if that is the only way the rest of the pattern matches.

If the PCRE_UNGREEDY option is set (an option which is not available in Perl) then the quantifiers are not greedy by default, but individual ones can be made greedy by following them with a question mark. In other words, it inverts the default behaviour.

When a parenthesized subpattern is quantified with a minimum repeat count that is greater than 1 or with a limited maximum, more store is required for the compiled pattern, in proportion to the size of the minimum or maximum.

If a pattern starts with .* or .{0,} and the PCRE_DOTALL option (equivalent to Perl's /s) is set, thus allowing the . to match newlines, then the pattern is implicitly anchored, because whatever follows will be tried against every character position in the subject string, so there is no point in retrying the overall match at any position after the first. PCRE treats such a pattern as though it were preceded by \A. In cases where it is known that the subject string contains no newlines, it is worth setting PCRE_DOTALL when the pattern begins with .* in order to obtain this optimization, or alternatively using ^ to indicate anchoring explicitly.

When a capturing subpattern is repeated, the value captured is the substring that matched the final iteration. For example, after (tweedle[dume]{3}\s*)+ has matched "tweedledum tweedledee" the value of the captured substring is "tweedledee". However, if there are nested capturing subpatterns, the corresponding captured values may have been set in previous iterations. For example, after /(a|(b))+/ matches "aba" the value of the second captured substring is "b".

BACK REFERENCES

Outside a character class, a backslash followed by a digit greater than 0 (and possibly further digits) is a back reference to a capturing subpattern earlier (i.e. to its left) in the pattern, provided there have been that many previous capturing left parentheses.

However, if the decimal number following the backslash is less than 10, it is always taken as a back reference, and causes an error only if there are not that many capturing left parentheses in the entire pattern. In other words, the parentheses that are referenced need not be to the left of the reference for numbers less than 10. See the section entitled "Backslash" above for further details of the handling of digits following a backslash.

A back reference matches whatever actually matched the capturing subpattern in the current subject string, rather than anything matching the subpattern itself. So the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If caseful matching is in force at the time of the back reference, then the case of letters is relevant. For example, ((?i)rah)\s+\1 matches "rah rah" and "RAH RAH", but not "RAH rah", even though the original capturing subpattern is matched caselessly.

There may be more than one back reference to the same subpattern. If a subpattern has not actually been used in a particular match, then any back references to it always fail. For example, the pattern (a|(bc))\2 always fails if it starts to match "a" rather than "bc". Because there may be up to 99 back references, all digits following the backslash are taken as part of a potential back reference number. If the pattern continues with a digit character, then some delimiter must be used to terminate the back reference. If the PCRE_EXTENDED option is set, this can be whitespace. Otherwise an empty comment can be used.

A back reference that occurs inside the parentheses to which it refers fails when the subpattern is first used, so, for example, (a\1) never matches. However, such references can be useful inside repeated subpatterns. For example, the pattern (a|b\1)+ matches any number of "a"s and also "aba", "ababaa" etc. At each iteration of the subpattern, the back reference matches the character string corresponding to the previous iteration. In order for this to work, the pattern must be such that the first iteration does not need to match the back reference. This can be done using alternation, as in the example above, or by a quantifier with a minimum of zero.

Assertions

An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters. The simple assertions coded as \b, \B, \A, \Z, \z, ^ and $ are described above. More complicated assertions are coded as subpatterns. There are two kinds: those that look ahead of the current position in the subject string, and those that look behind it.

An assertion subpattern is matched in the normal way, except that it does not cause the current matching position to be changed. Lookahead assertions start with (?= for positive assertions and (?! for negative assertions. For example, \w+(?=;) matches a word followed by a semicolon, but does not include the semicolon in the match, and foo(?!bar) matches any occurrence of "foo" that is not followed by "bar". Note that the apparently similar pattern (?!foo)bar does not find an occurrence of "bar" that is preceded by something other than "foo"; it finds any occurrence of "bar" whatsoever, because the assertion (?!foo) is always TRUE when the next three characters are "bar". A lookbehind assertion is needed to achieve this effect.

Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. However, if there are several alternatives, they do not all have to have the same fixed length. Thus (?<=bullock|donkey) is permitted, but (?<!dogs?|cats?) causes an error at compile time. Branches that match different length strings are permitted only at the top level of a lookbehind assertion. This is an extension compared with Perl 5.005, which requires all branches to match the same length of string. An assertion such as (?<=ab(c|de)) is not permitted, because its single top-level branch can match two different lengths, but it is acceptable if rewritten to use two top-level branches: (?<=abc|abde) The implementation of lookbehind assertions is, for each alternative, to temporarily move the current position back by the fixed width and then try to match. If there are insufficient characters before the current position, the match is deemed to fail. Lookbehinds in conjunction with once-only subpatterns can be particularly useful for matching at the ends of strings; an example is given at the end of the section on once-only subpatterns.

Several assertions (of any sort) may occur in succession. For example, (?<=\d{3})(?<!999)foo matches "foo" preceded by three digits that are not "999". Notice that each of the assertions is applied independently at the same point in the subject string. First there is a check that the previous three characters are all digits, then there is a check that the same three characters are not "999". This pattern does not match "foo" preceded by six characters, the first of which are digits and the last three of which are not "999". For example, it doesn't match "123abcfoo". A pattern to do that is (?<=\d{3}...)(?<!999)foo

This time the first assertion looks at the preceding six characters, checking that the first three are digits, and then the second assertion checks that the preceding three characters are not "999".

Assertions can be nested in any combination. For example, (?<=(?<!foo)bar)baz matches an occurrence of "baz" that is preceded by "bar" which in turn is not preceded by "foo", while (?<=\d{3}(?!999)...)foo is another pattern which matches "foo" preceded by three digits and any three characters that are not "999".

Assertion subpatterns are not capturing subpatterns, and may not be repeated, because it makes no sense to assert the same thing several times. If any kind of assertion contains capturing subpatterns within it, these are counted for the purposes of numbering the capturing subpatterns in the whole pattern. However, substring capturing is carried out only for positive assertions, because it does not make sense for negative assertions.

Assertions count towards the maximum of 200 parenthesized subpatterns.

Once-only subpatterns

With both maximizing and minimizing repetition, failure of what follows normally causes the repeated item to be re-evaluated to see if a different number of repeats allows the rest of the pattern to match. Sometimes it is useful to prevent this, either to change the nature of the match, or to cause it fail earlier than it otherwise might, when the author of the pattern knows there is no point in carrying on.

Consider, for example, the pattern \d+foo when applied to the subject line 123456bar

After matching all 6 digits and then failing to match "foo", the normal action of the matcher is to try again with only 5 digits matching the \d+ item, and then with 4, and so on, before ultimately failing. Once-only subpatterns provide the means for specifying that once a portion of the pattern has matched, it is not to be re-evaluated in this way, so the matcher would give up immediately on failing to match "foo" the first time. The notation is another kind of special parenthesis, starting with (?> as in this example: (?>\d+)bar

This kind of parenthesis "locks up" the part of the pattern it contains once it has matched, and a failure further into the pattern is prevented from backtracking into it. Backtracking past it to previous items, however, works as normal.

An alternative description is that a subpattern of this type matches the string of characters that an identical standalone pattern would match, if anchored at the current point in the subject string.

Once-only subpatterns are not capturing subpatterns. Simple cases such as the above example can be thought of as a maximizing repeat that must swallow everything it can. So, while both \d+ and \d+? are prepared to adjust the number of digits they match in order to make the rest of the pattern match, (?>\d+) can only match an entire sequence of digits.

This construction can of course contain arbitrarily complicated subpatterns, and it can be nested.

Once-only subpatterns can be used in conjunction with look-behind assertions to specify efficient matching at the end of the subject string. Consider a simple pattern such as abcd$ when applied to a long string which does not match. Because matching proceeds from left to right, PCRE will look for each "a" in the subject and then see if what follows matches the rest of the pattern. If the pattern is specified as ^.*abcd$ then the initial .* matches the entire string at first, but when this fails (because there is no following "a"), it backtracks to match all but the last character, then all but the last two characters, and so on. Once again the search for "a" covers the entire string, from right to left, so we are no better off. However, if the pattern is written as ^(?>.*)(?<=abcd) then there can be no backtracking for the .* item; it can match only the entire string. The subsequent lookbehind assertion does a single test on the last four characters. If it fails, the match fails immediately. For long strings, this approach makes a significant difference to the processing time.

When a pattern contains an unlimited repeat inside a subpattern that can itself be repeated an unlimited number of times, the use of a once-only subpattern is the only way to avoid some failing matches taking a very long time indeed. The pattern (\D+|<\d+>)*[!?] matches an unlimited number of substrings that either consist of non-digits, or digits enclosed in <>, followed by either ! or ?. When it matches, it runs quickly. However, if it is applied to aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa it takes a long time before reporting failure. This is because the string can be divided between the two repeats in a large number of ways, and all have to be tried. (The example used [!?] rather than a single character at the end, because both PCRE and Perl have an optimization that allows for fast failure when a single character is used. They remember the last single character that is required for a match, and fail early if it is not present in the string.) If the pattern is changed to ((?>\D+)|<\d+>)*[!?] sequences of non-digits cannot be broken, and failure happens quickly.

Conditional subpatterns

It is possible to cause the matching process to obey a subpattern conditionally or to choose between two alternative subpatterns, depending on the result of an assertion, or whether a previous capturing subpattern matched or not. The two possible forms of conditional subpattern are

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

If the condition is satisfied, the yes-pattern is used; otherwise the no-pattern (if present) is used. If there are more than two alternatives in the subpattern, a compile-time error occurs.

There are two kinds of condition. If the text between the parentheses consists of a sequence of digits, then the condition is satisfied if the capturing subpattern of that number has previously matched. Consider the following pattern, which contains non-significant white space to make it more readable (assume the PCRE_EXTENDED option) and to divide it into three parts for ease of discussion: ( \( )? [^()]+ (?(1) \) )

The first part matches an optional opening parenthesis, and if that character is present, sets it as the first captured substring. The second part matches one or more characters that are not parentheses. The third part is a conditional subpattern that tests whether the first set of parentheses matched or not. If they did, that is, if subject started with an opening parenthesis, the condition is TRUE, and so the yes-pattern is executed and a closing parenthesis is required. Otherwise, since no-pattern is not present, the subpattern matches nothing. In other words, this pattern matches a sequence of non-parentheses, optionally enclosed in parentheses.

If the condition is not a sequence of digits, it must be an assertion. This may be a positive or negative lookahead or lookbehind assertion. Consider this pattern, again containing non-significant white space, and with the two alternatives on the second line:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )

The condition is a positive lookahead assertion that matches an optional sequence of non-letters followed by a letter. In other words, it tests for the presence of at least one letter in the subject. If a letter is found, the subject is matched against the first alternative; otherwise it is matched against the second. This pattern matches strings in one of the two forms dd-aaa-dd or dd-dd-dd, where aaa are letters and dd are digits.

Comments

The sequence (?# marks the start of a comment which continues up to the next closing parenthesis. Nested parentheses are not permitted. The characters that make up a comment play no part in the pattern matching at all.

If the PCRE_EXTENDED option is set, an unescaped # character outside a character class introduces a comment that continues up to the next newline character in the pattern.

Recursive patterns

Consider the problem of matching a string in parentheses, allowing for unlimited nested parentheses. Without the use of recursion, the best that can be done is to use a pattern that matches up to some fixed depth of nesting. It is not possible to handle an arbitrary nesting depth. Perl 5.6 has provided an experimental facility that allows regular expressions to recurse (among other things). The special item (?R) is provided for the specific case of recursion. This PCRE pattern solves the parentheses problem (assume the PCRE_EXTENDED option is set so that white space is ignored): \( ( (?>[^()]+) | (?R) )* \)

First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non-parentheses, or a recursive match of the pattern itself (i.e. a correctly parenthesized substring). Finally there is a closing parenthesis.

This particular example pattern contains nested unlimited repeats, and so the use of a once-only subpattern for matching strings of non-parentheses is important when applying the pattern to strings that do not match. For example, when it is applied to (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() it yields "no match" quickly. However, if a once-only subpattern is not used, the match runs for a very long time indeed because there are so many different ways the + and * repeats can carve up the subject, and all have to be tested before failure can be reported.

The values set for any capturing subpatterns are those from the outermost level of the recursion at which the subpattern value is set. If the pattern above is matched against (ab(cd)ef) the value for the capturing parentheses is "ef", which is the last value taken on at the top level. If additional parentheses are added, giving \( ( ( (?>[^()]+) | (?R) )* ) \) then the string they capture is "ab(cd)ef", the contents of the top level parentheses. If there are more than 15 capturing parentheses in a pattern, PCRE has to obtain extra memory to store data during a recursion, which it does by using pcre_malloc, freeing it via pcre_free afterwards. If no memory can be obtained, it saves data for the first 15 capturing parentheses only, as there is no way to give an out-of-memory error from within a recursion.

Performances

Certain items that may appear in patterns are more efficient than others. It is more efficient to use a character class like [aeiou] than a set of alternatives such as (a|e|i|o|u). In general, the simplest construction that provides the required behaviour is usually the most efficient. Jeffrey Friedl's book contains a lot of discussion about optimizing regular expressions for efficient performance.

When a pattern begins with .* and the PCRE_DOTALL option is set, the pattern is implicitly anchored by PCRE, since it can match only at the start of a subject string. However, if PCRE_DOTALL is not set, PCRE cannot make this optimization, because the . metacharacter does not then match a newline, and if the subject string contains newlines, the pattern may match from the character immediately following one of them instead of from the very start. For example, the pattern (.*) second matches the subject "first\nand second" (where \n stands for a newline character) with the first captured substring being "and". In order to do this, PCRE has to retry the match starting after every newline in the subject.

If you are using such a pattern with subject strings that do not contain newlines, the best performance is obtained by setting PCRE_DOTALL, or starting the pattern with ^.* to indicate explicit anchoring. That saves PCRE from having to scan along the subject looking for a newline to restart at.

Beware of patterns that contain nested indefinite repeats. These can take a long time to run when applied to a string that does not match. Consider the pattern fragment (a+)*

This can match "aaaa" in 33 different ways, and this number increases very rapidly as the string gets longer. (The * repeat can match 0, 1, 2, 3, or 4 times, and for each of those cases other than 0, the + repeats can match different numbers of times.) When the remainder of the pattern is such that the entire match is going to fail, PCRE has in principle to try every possible variation, and this can take an extremely long time.

An optimization catches some of the more simple cases such as (a+)*b where a literal character follows. Before embarking on the standard matching procedure, PCRE checks that there is a "b" later in the subject string, and if there is not, it fails the match immediately. However, when there is no following literal this optimization cannot be used. You can see the difference by comparing the behaviour of (a+)*\d with the pattern above. The former gives a failure almost instantly when applied to a whole line of "a" characters, whereas the latter takes an appreciable time with strings longer than about 20 characters.

Anterior | Principal | Próxima
Pattern Modifiers | Acima | preg_grep


preg_grep

(PHP 4 , PHP 5)

preg_grep -- Return array entries that match the pattern

Description

array preg_grep ( string pattern, array input [, int flags])

preg_grep() returns the array consisting of the elements of the input array that match the given pattern.

flags can be the following flag:

PREG_GREP_INVERT

If this flag is passed, preg_grep() returns the elements of the input array that do not match the given pattern. This flag is available since PHP 4.2.0.

Since PHP 4.0.4, the results returned by preg_grep() are indexed using the keys from the input array. If this behavior is undesirable, use array_values() on the array returned by preg_grep() to reindex the values.

Exemplo 1. preg_grep() example

<?php
// return all array elements
// containing floating point numbers
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Anterior | Principal | Próxima
Pattern Syntax | Acima | preg_match_all


preg_match_all

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match_all -- Perform a global regular expression match

Description

int preg_match_all ( string pattern, string subject, array matches [, int flags [, int offset]])

Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by flags.

After the first match is found, the subsequent searches are continued on from end of the last match.

flags can be a combination of the following flags (note that it doesn't make sense to use PREG_PATTERN_ORDER together with PREG_SET_ORDER):

PREG_PATTERN_ORDER

Orders results so that $matches[0] is an array of full pattern matches, $matches[1] is an array of strings matched by the first parenthesized subpattern, and so on.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

This example will produce:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

So, $out[0] contains array of strings that matched full pattern, and $out[1] contains array of strings enclosed by tags.

PREG_SET_ORDER

Orders results so that $matches[0] is an array of first set of matches, $matches[1] is an array of second set of matches, and so on.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=\"left\">this is a test</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

This example will produce:

<b>example: </b>, example:
<div align="left">this is a test</div>, this is a test

In this case, $matches[0] is the first set of matches, and $matches[0][0] has text matched by full pattern, $matches[0][1] has text matched by first subpattern and so on. Similarly, $matches[1] is the second set of matches, etc.

PREG_OFFSET_CAPTURE

If this flag is passed, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1. This flag is available since PHP 4.3.0 .

If no order flag is given, PREG_PATTERN_ORDER is assumed.

Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search. It is equivalent to passing substr()($subject, $offset) to preg_match() in place of the subject string. The offset parameter is available since PHP 4.3.3.

Returns the number of full pattern matches (which might be zero), or FALSE if an error occurred.

Exemplo 1. Getting all phone numbers out of some text.

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Call 555-1212 or 1-800-555-1212", $phones);
?>

Exemplo 2. Find matching HTML tags (greedy)

<?php
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) {
  echo "matched: " . $matches[0][$i] . "\n";
  echo "part 1: " . $matches[1][$i] . "\n";
  echo "part 2: " . $matches[3][$i] . "\n";
  echo "part 3: " . $matches[4][$i] . "\n\n";
}
?>

This example will produce:

matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>

See also preg_match(),
preg_replace(),
and preg_split().

Anterior | Principal | Próxima
preg_grep | Acima | preg_match


preg_match

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match -- Perform a regular expression match

Description

int preg_match ( string pattern, string subject [, array matches [, int flags [, int offset]]])

Searches subject for a match to the regular expression given in pattern.

If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

flags can be the following flag:

PREG_OFFSET_CAPTURE

If this flag is passed, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1. This flag is available since PHP 4.3.0 .

The flags parameter is available since PHP 4.3.0.

Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search. It is equivalent to passing substr()($subject, $offset) to preg_match() in place of the subject string. The offset parameter is available since PHP 4.3.3.

preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject. preg_match() returns FALSE if an error occurred.

Dica: Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.

Exemplo 1. Find the string of text "php"

<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>

Exemplo 2. Find the word "web"

<?php
/* The \b in the pattern indicates a word boundary, so only the distinct
 * word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>

Exemplo 3. Getting the domain name out of a URL

<?php
// get host name from URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
    "http://www.php.net/index.html", $matches);
$host = $matches[2];

// get last two segments of host name
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

This example will produce:

domain name is: php.net

See also preg_match_all(),
preg_replace(), and
preg_split().

Anterior | Principal | Próxima
preg_match_all | Acima | preg_quote


preg_quote

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_quote -- Quote regular expression characters

Description

string preg_quote ( string str [, string delimiter])

preg_quote() takes str and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.

If the optional delimiter is specified, it will also be escaped. This is useful for escaping the delimiter that is required by the PCRE functions. The / is the most commonly used delimiter.

The special regular expression characters are: . \\ + * ? [ ^ ] $ ( ) { } = ! < > | :

Exemplo 1. preg_quote() example

<?php
$keywords = "$40 for a g3/400";
$keywords = preg_quote($keywords, "/");
echo $keywords; // returns \$40 for a g3\/400
?>

Exemplo 2. Italicizing a word within some text

<?php
// In this example, preg_quote($word) is used to keep the
// asterisks from having special meaning to the regular
// expression.

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word) . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Anterior | Principal | Próxima
preg_match | Acima | preg_replace_callback


preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback -- Perform a regular expression search and replace using a callback

Description

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit])

The behavior of this function is almost identical to preg_replace(), except for the fact that instead of replacement parameter, one should specify a callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string.

Exemplo 1. preg_replace_callback() example

<?php
  // this text was used in 2002
  // we want to get this up to date for 2003
  $text = "April fools day is 04/01/2002\n";
  $text.= "Last christmas was 12/24/2001\n";

  // the callback function
  function next_year($matches)
  {
    // as usual: $matches[0] is the complete match
    // $matches[1] the match for the first subpattern
    // enclosed in '(...)' and so on
    return $matches[1].($matches[2]+1);
  }

  echo preg_replace_callback(
              "|(\d{2}/\d{2}/)(\d{4})|",
              "next_year",
              $text);

  // result is:
  // April fools day is 04/01/2003
  // Last christmas was 12/24/2002
?>

You'll often need the callback function for a preg_replace_callback() in just one place. In this case you can use create_function() to declare an anonymous function as callback within the call to preg_replace_callback(). By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback functions name not used anywhere else.

Exemplo 2. preg_replace_callback() and create_function()

<?php
  /* a unix-style command line filter to convert uppercase
   * letters at the beginning of paragraphs to lowercase */

  $fp = fopen("php://stdin", "r") or die("can't read stdin");
  while (!feof($fp)) {
      $line = fgets($fp);
      $line = preg_replace_callback(
          '|<p>\s*\w|',
          create_function(
              // single quotes are essential here,
              // or alternative escape all $ as \$
              '$matches',
              'return strtolower($matches[0]);'
          ),
          $line
      );
      echo $line;
  }
  fclose($fp);
?>

See also preg_replace() and create_function().

Anterior | Principal | Próxima
preg_quote | Acima | preg_replace


preg_replace

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_replace -- Perform a regular expression search and replace

Description

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

Searches subject for matches to pattern and replaces them with replacement. If limit is specified, then only limit matches will be replaced; if limit is omitted or is -1, then all matches are replaced.

Replacement may contain references of the form \\n or (since PHP 4.0.4) $n, with the latter form being the preferred one. Every such reference will be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \\0 or $0 refers to the text matched by the whole pattern. Opening parentheses are counted from left to right (starting from 1) to obtain the number of the capturing subpattern.

When working with a replacement pattern where a backreference is immediately followed by another number (i.e.: placing a literal number immediately after a matched pattern), you cannot use the familiar \\1 notation for your backreference. \\11, for example, would confuse preg_replace() since it does not know whether you want the \\1 backreference followed by a literal 1, or the \\11 backreference followed by nothing. In this case the solution is to use \${1}1. This creates an isolated $1 backreference, leaving the 1 as a literal.

Exemplo 1. Using backreferences followed by numeric literals

<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo preg_replace($pattern, $replacement, $string);
?>

This example will output :

April1,2003

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Every parameter to preg_replace() (except limit) can be an unidimensional array. When using arrays with pattern and replacement, the keys are processed in the order they appear in the array. This is not necessarily the same as the numerical index order. If you use indexes to identify which pattern should be replaced by which replacement, you should perform a ksort() on each array prior to calling preg_replace().

Exemplo 2. Using indexed arrays with preg_replace()

<?php
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

echo preg_replace($patterns, $replacements, $string);
?>

Output:

The bear black slow jumped over the lazy dog.

By ksorting patterns and replacements, we should get what we wanted.

<?php

ksort($patterns);
ksort($replacements);

echo preg_replace($patterns, $replacements, $string);

?>

Output :

The slow black bear jumped over the lazy dog.

If subject is an array, then the search and replace is performed on every entry of subject, and the return value is an array as well.

If pattern and replacement are arrays, then preg_replace() takes a value from each array and uses them to do search and replace on subject. If replacement has fewer values than pattern, then empty string is used for the rest of replacement values. If pattern is an array and replacement is a string, then this replacement string is used for every value of pattern. The converse would not make sense, though.

/e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done. Tip: make sure that replacement constitutes a valid PHP code string, otherwise PHP will complain about a parse error at the line containing preg_replace().

Exemplo 3. Replacing several values

<?php
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
                   "/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
echo preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?>

This example will produce:

$startDate = 5/27/1999

Exemplo 4. Using /e modifier

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
              "'\\1'.strtoupper('\\2').'\\3'",
              $html_body);
?>

This would capitalize all HTML tags in the input text.

Exemplo 5. Convert HTML to text

<?php
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.

$search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out javascript
                 "'<[\/\!]*?[^<>]*?>'si",           // Strip out HTML tags
                 "'([\r\n])[\s]+'",                 // Strip out white space
                 "'&(quot|#34);'i",                 // Replace HTML entities
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // evaluate as php

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace($search, $replace, $document);
?>

Nota: Parameter limit was added after PHP 4.0.1pl2.

See also preg_match(),
preg_match_all(), and
preg_split().

Anterior | Principal | Próxima
preg_replace_callback | Acima | preg_split


preg_split

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_split -- Split string by a regular expression

Description

array preg_split ( string pattern, string subject [, int limit [, int flags]])

Returns an array containing substrings of subject split along boundaries matched by pattern.

If limit is specified, then only substrings up to limit are returned, and if limit is -1, it actually means "no limit", which is useful for specifying the flags.

flags can be any combination of the following flags (combined with bitwise | operator):

PREG_SPLIT_NO_EMPTY

If this flag is set, only non-empty pieces will be returned by preg_split().

PREG_SPLIT_DELIM_CAPTURE

If this flag is set, parenthesized expression in the delimiter pattern will be captured and returned as well. This flag was added for 4.0.5.

PREG_SPLIT_OFFSET_CAPTURE

If this flag is set, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1. This flag is available since PHP 4.3.0 .

Exemplo 1. preg_split() example : Get the parts of a search string

<?php
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>

Exemplo 2. Splitting a string into component characters

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Exemplo 3. Splitting a string into matches and their offsets

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

will yield:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Nota: Parameter flags was added in PHP 4 Beta 3.

See also spliti(), split(),
implode(), preg_match(),
preg_match_all(), and
preg_replace().

Anterior | Principal | Próxima
preg_replace | Acima | Funções qtdom


Funções qtdom

Manual do PHP
Anterior Próxima

XCII. Funções qtdom

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Você precisa ter Qt-library >=2.2.0

Instalação

É necessário compilar o PHP com --with-qtdom para usar essas funções.

Índice
qdom_error -- Retorna uma string de erro da última operação QDOM ou FALSE se não houver erros
qdom_tree -- Cria uma nova árvore de uma string XML

Anterior | Principal | Próxima
preg_split | Acima | qdom_error


qdom_error

(PHP 4 >= 4.0.5)

qdom_error -- Retorna uma string de erro da última operação QDOM ou FALSE se não houver erros

Descrição

string qdom_error ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
Funções qtdom | Acima | qdom_tree


qdom_tree

(PHP 4 >= 4.0.4)

qdom_tree -- Cria uma nova árvore de uma string XML

Descrição

object qdom_tree ( string )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
qdom_error | Acima | Regex : Expressões Regulares (compatíveis com o padrão POSIX)


Regex : Expressões Regulares (compatíveis com o padrão POSIX)

Manual do PHP
Anterior Próxima

XCIII. Regex : Expressões Regulares (compatíveis com o padrão POSIX)

Introdução

Dica: PHP também suporta expressões regulares compatatíveis com a sintaxe do PERL usando as Funções PCRE. Essas funções suportam non-greedy matching, assertions, conditional subpatterns, e várias outras características que não são suportadas pelas Expressões Regulares compatíveis com o padrão POSIX.

Atenção

Estas expressões regulares não são seguras para dados binários. As Funções PCRE são.

Expressões regulares são usadas para manipulações complexas de strings no PHP. As funções suportadas pelas expressões regulares são:

  • ereg()

  • ereg_replace()

  • eregi()

  • eregi_replace()

  • split()

  • spliti()

Em todas funções coloque a string da expressão regular no primeiro argumento. PHP usa expressões regulares compatíveis com POSIX definidas pelo POSIX 1003.2. Para um descrição completa das expressões regulares no POSIX veja as man pages sobre regex incluídas no diretório regex de sua distribuição PHP. Por estar no formato de manpages você terá que Utilizar o comando man /usr/local/src/regex/regex.7 para ler a documentação.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Atenção

Do not change the TYPE unless you know what you are doing.

To enable regexp support configure PHP --with-regex[=TYPE]. TYPE can be one of system, apache, php. The default is to use php.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Exemplo 1. Exemplos de Expressões Regulares

<?php
// Retorna true se "abc" existir em qualquer lugar de $string.
ereg ("abc", $string);

// Retorna true se "abc" existir no início de $string.
ereg ("^abc", $string);

// Retorna true se "abc" existir no final de $string.
ereg ("abc$", $string);

// Retorna true se o navegador do cliente  for Netscape 2, 3 ou MSIE 3.
eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);

// Adiciona três palavras separadas por espaço em $regs[1], $regs[2] e $regs[3].
ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string,$regs);

// Acrescenta a tag <br /> no início de $string.
$string = ereg_replace ("^", "<br />", $string);

// Acrescenta a tag <br />; no final de $string.
$string = ereg_replace ("$", "<br />", $string);

// Remove todos caracteres de nova linha (newline) em $string.
$string = ereg_replace ("\n", "", $string);
?>

Veja Também

Para expressões regulares compatatíveis com o padrão PERL veja PCRE, Funções. O estilo simples de wildcard do shell pode ser usado com a função fnmatch().

Índice
ereg_replace -- Substituição através de expressões regulares
ereg -- Casando expressões regulares
eregi_replace -- Substituição utilizando expressões regulares insensíveis a maiúsculas e minúsculas
eregi -- Casando expressões regulares insensíveis a maiúsculas e minúsculas
split -- Separa strings em matrizes(array) utilizando expressões regulares
spliti -- Separa strings em matrizes(array) utilizando expressões regulares insensíveis a maiúsculas e minúsculas
sql_regcase -- Cria expressões regulares insensíveis a maiúsculas e minúsculas.

Anterior | Principal | Próxima
qdom_tree | Acima | ereg_replace


ereg_replace

(PHP 3, PHP 4 , PHP 5)

ereg_replace -- Substituição através de expressões regulares

Descrição

string ereg_replace ( string expressao, string substituicao, string variavel)

Essa função busca em variavel resultados para a expressao, substituindo se casar pelo texto em substituicao.

A variavel modificada será retornada (poderá ocorrer da string original ser retornada caso não aconteça nenhuma substituição .)

Se a expressao conter parênteses de substrings, a substituicao será realizada através do formato \\digit, que indicará qual parte do texto substituido deverá ser retornada; \\0 retornará a string na integra. Até nove substrings podem ser usadas. Os parenteses podem ser aninhados, sendo que a contagem será feita através da quantidade de paranteses abertos.

Se não tiverem valores que casem com o parâmetro variavel, o resultado será a variavel inalterada.

Por exemplo, o pedaço de código seguinte imprimirá "Esse foi um teste" três vezes:

Exemplo 1. Exemplo ereg_replace()

<?php
$string = "Esse e um teste";
echo ereg_replace (" e", " foi", $string);
echo ereg_replace ("( )e", "\\1foi", $string);
echo ereg_replace ("(( )e)", "\\2foi", $string);
?>

Preste atenção se usar uma variável integer no parâmetro substituicao, pois o resultado pode não ser exatamente o esperado. Isso acontece porque a função ereg_replace() interpreta o valor ordinal do número. Por exemplo:

Exemplo 2. Exemplo ereg_replace()

<?php
/* Esse exemplo não funcionará. */
$num = 5;
$string = "Essa frase tem cinco palavras.";
$string = ereg_replace('cinco', $num, $string);
echo $string;   /* Resultado: 'Essa frase tem   palavras.' */

/* Esse exemplo funcionará. */
$num = '5';
$string = "Essa frase tem cinco palavras.";
$string = ereg_replace('cinco', $num, $string);
echo $string;   /* Resultado: 'Essa frase tem 5 palavras.' */
?>

Exemplo 3. Substitui URLs por links

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);
?>

Dica: preg_replace(), você pode também utilizar as expressões regulares compátiveis com perl, frequentemente uma alternativar veloz a função ereg_replace().

Veja mais em ereg(), eregi(),
eregi_replace(), str_replace() e
preg_match().

Anterior | Principal | Próxima
Regex : Expressões Regulares (compatíveis com o padrão POSIX) | Acima | ereg


ereg

(PHP 3, PHP 4 , PHP 5)

ereg -- Casando expressões regulares

Descrição

bool ereg ( string expressao, string variavel [, array registros])

Nota: preg_match(), você pode também utilizar as expressões regulares compátiveis com perl, uma alternativar veloz a função ereg().

Verifica se a variavel casa com a expressão regular definida em expressao em um modo sensível a distinção de caracteres (case sensitive).

Se existirem parenteses de substrings na expressao e for passado o terceiro parâmetro registros para a função, a execução guardará os elementos resultantes na matriz registros. $registros[1] irá conter a substring indicada pelo primeiro parenteses da esquerda; $registros[2] contém a segunda substring, e assim por diante. $registros[0] conterá uma cópia completa da variavel casada.

Nota: Nas versões superiores ao PHP 4.1.0 (inclusive) se você colocar exatamente dez elementos em $registros, ou até mesmo mais elementos, a expressão será executada. A quantidade não causará efeitos na função ereg() que tem habilidade de suportar muitas substrings. Se a expressão não casar, $registros não será alterada por ereg().

Retorna TRUE se string casar com pattern, e FALSE se a expressão não casar ou se acontecer algum erro.

O exemplo seguinte pega uma data no padrão ISO (AAAA-MM-DD) e imprime na no formato DD.MM.YYYY

Exemplo 1. Exemplo da função ereg()

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $data, $registros)) {
    echo "$registros[3].$registros[2].$registros[1]";
} else {
    echo "Formato de data inválido: $data";
}
?>

Veja mais em eregi(),  ereg_replace(),
eregi_replace(),  preg_match(),
strpos() e strstr().

Anterior | Principal | Próxima
ereg_replace | Acima | eregi_replace


eregi_replace

(PHP 3, PHP 4 , PHP 5)

eregi_replace -- Substituição utilizando expressões regulares insensíveis a maiúsculas e minúsculas

Descrição

string eregi_replace ( string expressao, string substituicao, string variavel)

Essa função é idêntica a ereg_replace() com exceção de não fazer distinções alfabéticas entre caracteres (case insensitive) na hora de casar resultados.

Veja mais em ereg(), eregi() e ereg_replace().

Anterior | Principal | Próxima
ereg | Acima | eregi


eregi

(PHP 3, PHP 4 , PHP 5)

eregi -- Casando expressões regulares insensíveis a maiúsculas e minúsculas

Descrição

bool eregi ( string expressao, string variavel [, array registros])

Essa função é idêntica a função ereg() com exceção de não fazer distinções alfabéticas entre caracteres (case insensitive) na hora de casar resultados.

Exemplo 1. Exemplo da função eregi()

<?php
if (eregi("z", $variavel)) {
    echo "A '$variavel' contém a letra 'z' ou 'Z'!";
}
?>

Veja mais em ereg(), ereg_replace(),
eregi_replace(), stripos() e
stristr().

Anterior | Principal | Próxima
eregi_replace | Acima | split


split

(PHP 3, PHP 4 , PHP 5)

split -- Separa strings em matrizes(array) utilizando expressões regulares

Descrição

array split ( string expressao, string variavel [, int limite])

Dica: Utilize também as expressões regulares compátiveis com perl preg_split(), que são frequentemente uma alternativa veloz para split(). Se não necessitar de todo poder das expressões regulares, é mais rápido usar a função explode(), a qual não carrega o sistema (engine) de expressões regulares

Retorna uma matriz de strings, contendo as substrings de variavel separadas pelos limites descritos na expressão regular expressao. Se limite for passado, o retorno será uma matriz com no máximo limite elementos, sendo que o último elemento irá conter o resto da variavel. Se algum erro acontecer, split() retornará FALSE.

Separa os quatro primeiro elementos de uma linha do arquivo /etc/passwd:

Exemplo 1. Exemplo split()

<?php
list($user,$pass,$uid,$gid,$extra) =
    split (":", $passwd_line, 5);
?>

Se existirem n ocorrências da expressao, será retornado uma matriz(array) contendo n+1 items. Por exemplo, se não existir uma ocorrência de expressao, uma matriz de um único elemento será retornada. Certamente, retornará TRUE se a string estiver vazia.

Separação de dados delimitados por barras, pontos, ou traços:

Exemplo 2. Exemplo split()

<?php
// Delimitado por barras, pontos ou traços
$data = "04/30/1973";
list ($mes, $dia, $ano) = split ('[/.-]', $data);
echo "Mês: $mes; Dia: $dia; Ano: $ano<br />\n";
?>

Para visualizar uma emulação do Perl e seus métodos@chars = split('', $str), por favor veja os exemplos de preg_split().

Preste atenção expressao é a expressão regular. Se separar caracteres que são consideredos especiais para as expressões regulares, será necessário usar o caracter de escape primeiramente. Se você pensar que split() (ou outra função para execução de expressões regulares) é muito estranha, por favor leia o arquivo regex.7, incluido na pasta regex/ no subdiretório da distribuição do PHP. Está no formato manpage e você deverá usar o comando man /usr/local/src/regex/regex.7 para maiores informações.

Veja mais em: preg_split(), spliti(),
explode(), implode(),
chunk_split() e wordwrap().

Anterior | Principal | Próxima
eregi | Acima | spliti


spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti -- Separa strings em matrizes(array) utilizando expressões regulares insensíveis a maiúsculas e minúsculas

Descrição

array spliti ( string expressao, string variavel [, int limite])

Essa função é idêntica a split() com exceção de não fazer distinções alfabéticas entre caracteres (case insensitive) quando casar resultados.

Veja mais em preg_spliti(), split(), explode() e implode().

Anterior | Principal | Próxima
split | Acima | sql_regcase


sql_regcase

(PHP 3, PHP 4 , PHP 5)

sql_regcase -- Cria expressões regulares insensíveis a maiúsculas e minúsculas.

Descrição

string sql_regcase ( string variavel)

Retorna uma expressão regular válida para casar com variavel, ignorando a diferença entre maiúsculas e minúsculas. A expressão será variavel com os caracteres convertidos a uma expressão de colchetes; essa expressão terá os caracteres escritos em maiúsculas e minúsculas quando puder ser aplicado, em outros casos conterá o caractere original.

Exemplo 1. Exemplo sql_regcase()

<?php
echo sql_regcase ("Foo - bar.");
?>

Mostra:

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Você pode utilizar esse recurso quando quando existir somente suporte a expressões regulares sensíveis a maiúsculas e minúsculas

Anterior | Principal | Próxima
spliti | Acima | Semaphore, Shared Memory and IPC Functions


Semaphore, Shared Memory and IPC Functions

Manual do PHP
Anterior Próxima

XCIV. Semaphore, Shared Memory and IPC Functions

Introdução

This module provides wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).

Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource.

This module provides also shared memory functions using System V shared memory. Shared memory may be used to provide access to global variables. Different httpd-daemons and even other programs (such as Perl, C, ...) are able to access this data to provide a global data-exchange. Remember, that shared memory is NOT safe against simultaneous access. Use semaphores for synchronization.

Tabela 1. Limits of Shared Memory by the Unix OS

SHMMAX | max size of shared memory, normally 131072 bytes
SHMMIN | minimum size of shared memory, normally 1 byte
SHMMNI | max amount of shared memory segments on a system, normally 100
SHMSEG | max amount of shared memory segments per process, normally 6

The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using Unix domain sockets.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Support for this functions are not enabled by default. To enable System V semaphore support compile PHP with the option --enable-sysvsem. To enable the System V shared memory support compile PHP with the option --enable-sysvshm. To enable the System V messages support compile PHP with the option --enable-sysvmsg.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Tabela 2. System V message constants

Constant | Type
MSG_IPC_NOWAIT | integer
MSG_NOERROR | integer
MSG_EXCEPT | integer

Índice
ftok -- Convert a pathname and a project identifier to a System V IPC key
msg_get_queue -- Create or attach to a message queue
msg_receive -- Receive a message from a message queue
msg_remove_queue -- Destroy a message queue
msg_send -- Send a message to a message queue
msg_set_queue -- Set information in the message queue data structure
msg_stat_queue -- Returns information from the message queue data structure
sem_acquire -- Acquire a semaphore
sem_get -- Get a semaphore id
sem_release -- Release a semaphore
sem_remove -- Remove a semaphore
shm_attach -- Creates or open a shared memory segment
shm_detach -- Disconnects from shared memory segment
shm_get_var -- Returns a variable from shared memory
shm_put_var -- Inserts or updates a variable in shared memory
shm_remove_var -- Removes a variable from shared memory
shm_remove -- Removes shared memory from Unix systems

Anterior | Principal | Próxima
sql_regcase | Acima | ftok


ftok

(PHP 4 >= 4.2.0, PHP 5)

ftok -- Convert a pathname and a project identifier to a System V IPC key

Description

int ftok ( string pathname, string proj)

The function converts the pathname of an existing accessible file and a project identifier (proj) into a integer for use with for example shmop_open() and other System V IPC keys. The proj parameter should be a one character string.

On success the return value will be the created key value, otherwise -1 is returned.

See also shmop_open() and sem_get().

Anterior | Principal | Próxima
Semaphore, Shared Memory and IPC Functions | Acima | msg_get_queue


msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queue -- Create or attach to a message queue

Description

resource msg_get_queue ( int key [, int perms])

msg_get_queue() returns an id that can be used to access the System V message queue with the given key. The first call creates the message queue with the optional perms (default: 0666). A second call to msg_get_queue() for the same key will return a different message queue identifier, but both identifiers access the same underlying message queue. If the message queue already exists, the perms will be ignored.

See also msg_remove_queue(),
msg_receive(), msg_send(),
msg_stat_queue() and
msg_set_queue().

Anterior | Principal | Próxima
ftok | Acima | msg_receive


msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receive -- Receive a message from a message queue

Description

bool msg_receive ( resource queue, int desiredmsgtype, int msgtype, int maxsize, mixed message [, bool unserialize [, int flags [, int errorcode]]])

msg_receive() will receive the first message from the specified queue of the type specified by desiredmsgtype. The type of the message that was received will be stored in msgtype. The maximum size of message to be accepted is specified by the maxsize; if the message in the queue is larger than this size the function will fail (unless you set flags as described below). The received message will be stored in message, unless there were errors receiving the message, in which case the optional errorcode will be set to the value of the system errno variable to help you identify the cause.

If desiredmsgtype is 0, the message from the front of the queue is returned. If desiredmsgtype is greater than 0, then the first message of that type is returned. If desiredmsgtype is less than 0, the first message on the queue with the lowest type less than or equal to the absolute value of desiredmsgtype will be read. If no messages match the criteria, your script will wait until a suitable message arrives on the queue. You can prevent the script from blocking by specifying MSG_IPC_NOWAIT in the flags parameter.

unserialize defaults to TRUE; if it is set to TRUE, the message is treated as though it was serialized using the same mechanism as the session module. The message will be unserialized and then returned to your script. This allows you to easily receive arrays or complex object structures from other PHP scripts, or if you are using the WDDX serializer, from any WDDX compatible source. If unserialize is FALSE, the message will be returned as a binary-safe string.

The optional flags allows you to pass flags to the low-level msgrcv system call. It defaults to 0, but you may specify one or more of the following values (by adding or ORing them together).

Tabela 1. Flag values for msg_receive

MSG_IPC_NOWAIT | If there are no messages of the desiredmsgtype, return immediately and do not wait. The function will fail and return an integer value corresponding to ENOMSG.
MSG_EXCEPT | Using this flag in combination with a desiredmsgtype greater than 0 will cause the function to receive the first message that is not equal to desiredmsgtype.
MSG_NOERROR | If the message is longer than maxsize, setting this flag will truncate the message to maxsize and will not signal an error.

Upon successful completion the message queue data structure is updated as follows: msg_lrpid is set to the process-ID of the calling process, msg_qnum is decremented by 1 and msg_rtime is set to the current time.

msg_receive() returns TRUE on success or FALSE on failure. If the function fails, the optional errorcode will be set to the value of the system errno variable.

See also msg_remove_queue(),
msg_send(),
msg_stat_queue() and
msg_set_queue().

Anterior | Principal | Próxima
msg_get_queue | Acima | msg_remove_queue


msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queue -- Destroy a message queue

Description

bool msg_remove_queue ( resource queue)

msg_remove_queue() destroys the message queue specified by the queue. Only use this function when all processes have finished working with the message queue and you need to release the system resources held by it.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Principal | Próxima
msg_receive | Acima | msg_send


msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send -- Send a message to a message queue

Description

bool msg_send ( resource queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int errorcode]]])

msg_send() sends a message of type msgtype (which MUST be greater than 0) to a the message queue specified by queue.

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to FALSE, in which case msg_send() will immediately return FALSE if the message is too big for the queue, and set the optional errorcode to EAGAIN, indicating that you should try to send your message again a little later on.

The optional serialize controls how the message is sent. serialize defaults to TRUE which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Principal | Próxima
msg_remove_queue | Acima | msg_set_queue


msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queue -- Set information in the message queue data structure

Description

bool msg_set_queue ( resource queue, array data)

msg_set_queue() allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the underlying message queue data structure. You specify the values you require by setting the value of the keys that you require in the data array.

Changing the data structure will require that PHP be running as the same user that created the queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root privileges. root privileges are required to raise the msg_qbytes values above the system defined limit.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Principal | Próxima
msg_send | Acima | msg_stat_queue


msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queue -- Returns information from the message queue data structure

Description

array msg_stat_queue ( resource queue)

msg_stat_queue() returns the message queue meta data for the message queue specified by the queue. This is useful, for example, to determine which process sent the message that was just received.

The return value is an array whose keys and values have the following meanings:

Tabela 1. Array structure for msg_stat_queue

msg_perm.uid | The uid of the owner of the queue.
msg_perm.gid | The gid of the owner of the queue.
msg_perm.mode | The file access mode of the queue.
msg_stime | The time that the last message was sent to the queue.
msg_rtime | The time that the last message was received from the queue.
msg_ctime | The time that the queue was last changed.
msg_qnum | The number of messages waiting to be read from the queue.
msg_qbytes | The number of bytes of space currently available in the queue to hold sent messages until they are received.
msg_lspid | The pid of the process that sent the last message to the queue.
msg_lrpid | The pid of the process that received the last message from the queue.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Principal | Próxima
msg_set_queue | Acima | sem_acquire


sem_acquire

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_acquire -- Acquire a semaphore

Description

bool sem_acquire ( resource sem_identifier)

sem_acquire() blocks (if necessary) until the semaphore can be acquired. A process attempting to acquire a semaphore which it has already acquired will block forever if acquiring the semaphore would cause its max_acquire value to be exceeded.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

After processing a request, any semaphores acquired by the process but not explicitly released will be released automatically and a warning will be generated.

See also: sem_get() and sem_release().

Anterior | Principal | Próxima
msg_stat_queue | Acima | sem_get


sem_get

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_get -- Get a semaphore id

Description

resource sem_get ( int key [, int max_acquire [, int perm]])

sem_get() returns an id that can be used to access the System V semaphore with the given key. The semaphore is created if necessary using the permission bits specified in perm (defaults to 0666). The number of processes that can acquire the semaphore simultaneously is set to max_acquire (defaults to 1). Actually this value is set only if the process finds it is the only process currently attached to the semaphore.

Returns: A positive semaphore identifier on success, or FALSE on error.

A second call to sem_get() for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.

See also sem_acquire(), sem_release(), and ftok().

Anterior | Principal | Próxima
sem_acquire | Acima | sem_release


sem_release

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_release -- Release a semaphore

Description

bool sem_release ( resource sem_identifier)

sem_release() releases the semaphore if it is currently acquired by the calling process, otherwise a warning is generated.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

After releasing the semaphore, sem_acquire() may be called to re-acquire it.

See also sem_get() and sem_acquire().

Anterior | Principal | Próxima
sem_get | Acima | sem_remove


sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_remove -- Remove a semaphore

Description

bool sem_remove ( resource sem_identifier)

sem_remove() removes the semaphore sem_identifier if it has been created by sem_get(), otherwise generates a warning.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

After removing the semaphore, it is no more accessible.

See also sem_get(),
sem_release() and
sem_acquire().

Anterior | Principal | Próxima
sem_release | Acima | shm_attach


shm_attach

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_attach -- Creates or open a shared memory segment

Description

int shm_attach ( int key [, int memsize [, int perm]])

shm_attach() returns an id that that can be used to access the System V shared memory with the given key, the first call creates the shared memory segment with memsize (default: sysvshm.init_mem in the php.ini, otherwise 10000 bytes) and the optional perm-bits perm (default: 0666).

A second call to shm_attach() for the same key will return a different shared memory identifier, but both identifiers access the same underlying shared memory. Memsize and perm will be ignored.

See also ftok(), and shm_detach().

Anterior | Principal | Próxima
sem_remove | Acima | shm_detach


shm_detach

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_detach -- Disconnects from shared memory segment

Description

bool shm_detach ( int shm_identifier)

shm_detach() disconnects from the shared memory given by the shm_identifier created by shm_attach(). Remember, that shared memory still exist in the Unix system and the data is still present.

shm_detach() always returns TRUE.

See also shm_attach(), shm_remove(), and shm_remove_var().

Anterior | Principal | Próxima
shm_attach | Acima | shm_get_var


shm_get_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_get_var -- Returns a variable from shared memory

Description

mixed shm_get_var ( int id, int variable_key)

shm_get_var() returns the variable with a given variable_key. The variable is still present in the shared memory.

Anterior | Principal | Próxima
shm_detach | Acima | shm_put_var


shm_put_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_put_var -- Inserts or updates a variable in shared memory

Description

bool shm_put_var ( int shm_identifier, int variable_key, mixed variable)

Inserts or updates a variable with a given variable_key. All variable-types are supported.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Warnings (E_WARNING level) will be issued if shm_identifier is not a valid SysV shared memory index or if there was not enough shared memory remaining to complete your request.

Anterior | Principal | Próxima
shm_get_var | Acima | shm_remove_var


shm_remove_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_remove_var -- Removes a variable from shared memory

Description

int shm_remove_var ( int id, int variable_key)

Removes a variable with a given variable_key and frees the occupied memory.

See also shm_remove().

Anterior | Principal | Próxima
shm_put_var | Acima | shm_remove


shm_remove

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_remove -- Removes shared memory from Unix systems

Description

int shm_remove ( int shm_identifier)

Removes shared memory from Unix systems. All data will be destroyed.

See also shm_remove_var().

Anterior | Principal | Próxima
shm_remove_var | Acima | SESAM Database Functions


SESAM Database Functions

Manual do PHP
Anterior Próxima

XCV. SESAM Database Functions

Introdução

SESAM/SQL-Server is a mainframe database system, developed by Fujitsu Siemens Computers, Germany. It runs on high-end mainframe servers using the operating system BS2000/OSD.

In numerous productive BS2000 installations, SESAM/SQL-Server has proven

  • the ease of use of Java-, Web- and client/server connectivity,

  • the capability to work with an availability of more than 99.99%,

  • the ability to manage tens and even hundreds of thousands of users.

There is a PHP3 SESAM interface available which allows database operations via PHP-scripts.

Nota: Access to SESAM is only available with the latest CVS-Version of PHP3. PHP 4 does not support the SESAM database.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

sesam_oml string

Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions. The BS2000 PLAM library must be set ACCESS=READ,SHARE=YES because it must be readable by the apache server's user id.

sesam_configfile string

Name of SESAM application configuration file. Required for using SESAM functions. The BS2000 file must be readable by the apache server's user id.

The application configuration file will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Name of SESAM message catalog file. In most cases, this directive is not necessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

The message catalog must be set ACCESS=READ,SHARE=YES because it must be readable by the apache server's user id.

Configuration notes

There is no standalone support for the PHP SESAM interface, it works only as an integrated Apache module. In the Apache PHP module, this SESAM interface is configured using Apache directives.

Tabela 1. SESAM Configuration directives

Directive Meaning
php3_sesam_oml Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions.

Example:

php3_sesam_oml $.SYSLNK.SESAM-SQL.030

php3_sesam_configfile Name of SESAM application configuration file. Required for using SESAM functions.

Example:

php3_sesam_configfile $SESAM.SESAM.CONF.AW

It will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

php3_sesam_messagecatalog Name of SESAM message catalog file. In most cases, this directive is not necessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

Example:

php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030

In addition to the configuration of the PHP/SESAM interface, you have to configure the SESAM-Database server itself on your mainframe as usual. That means:

  • starting the SESAM database handler (DBH), and

  • connecting the databases with the SESAM database handler

To get a connection between a PHP script and the database handler, the CNF and NAM parameters of the selected SESAM configuration file must match the id of the started database handler.

In case of distributed databases you have to start a SESAM/SQL-DCN agent with the distribution table including the host and database names.

The communication between PHP (running in the POSIX subsystem) and the database handler (running outside the POSIX subsystem) is realized by a special driver module called SQLSCI and SESAM connection modules using common memory. Because of the common memory access, and because PHP is a static part of the web server, database accesses are very fast, as they do not require remote accesses via ODBC, JDBC or UTM.

Only a small stub loader (SESMOD) is linked with PHP, and the SESAM connection modules are pulled in from SESAM's OML PLAM library. In the configuration, you must tell PHP the name of this PLAM library, and the file link to use for the SESAM configuration file (As of SESAM V3.0, SQLSCI is available in the SESAM Tool Library, which is part of the standard distribution).

Because the SQL command quoting for single quotes uses duplicated single quotes (as opposed to a single quote preceded by a backslash, used in some other databases), it is advisable to set the PHP configuration directives php3_magic_quotes_gpc and php3_magic_quotes_sybase to On for all PHP scripts using the SESAM interface.

Runtime considerations

Because of limitations of the BS2000 process model, the driver can be loaded only after the Apache server has forked off its server child processes. This will slightly slow down the initial SESAM request of each child, but subsequent accesses will respond at full speed.

When explicitly defining a Message Catalog for SESAM, that catalog will be loaded each time the driver is loaded (i.e., at the initial SESAM request). The BS2000 operating system prints a message after successful load of the message catalog, which will be sent to Apache's error_log file. BS2000 currently does not allow suppression of this message, it will slowly fill up the log.

Make sure that the SESAM OML PLAM library and SESAM configuration file are readable by the user id running the web server. Otherwise, the server will be unable to load the driver, and will not allow to call any SESAM functions. Also, access to the database must be granted to the user id under which the Apache server is running. Otherwise, connections to the SESAM database handler will fail.

Cursor Types

The result cursors which are allocated for SQL "select type" queries can be either "sequential" or "scrollable". Because of the larger memory overhead needed by "scrollable" cursors, the default is "sequential".

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row(). When fetching a row using a "scrollable" cursor, the following post-processing is done for the global default values for the scrolling type and scrolling offset:

Tabela 2. Scrolled Cursor Post-Processing

Scroll Type | Action
SESAM_SEEK_NEXT | none
SESAM_SEEK_PRIOR | none
SESAM_SEEK_FIRST | set scroll type to SESAM_SEEK_NEXT
SESAM_SEEK_LAST | set scroll type to SESAM_SEEK_PRIOR
SESAM_SEEK_ABSOLUTE | Auto-Increment internal offset value
SESAM_SEEK_RELATIVE | none. (maintain global default offset value, which allows for, e.g., fetching each 10th row backwards)

Porting note

Because in the PHP world it is natural to start indexes at zero (rather than 1), some adaptions have been made to the SESAM interface: whenever an indexed array is starting with index 1 in the native SESAM interface, the PHP interface uses index 0 as a starting point. E.g., when retrieving columns with sesam_fetch_row(), the first column has the index 0, and the subsequent columns have indexes up to (but not including) the column count ($array["count"]). When porting SESAM applications from other high level languages to PHP, be aware of this changed interface. Where appropriate, the description of the respective PHP sesam functions include a note that the index is zero based.

Security concerns

When allowing access to the SESAM databases, the web server user should only have as little privileges as possible. For most databases, only read access privilege should be granted. Depending on your usage scenario, add more access rights as you see fit. Never allow full control to any database for any user from the 'net! Restrict access to PHP scripts which must administer the database by using password control and/or SSL security.

Migration from other SQL databases

No two SQL dialects are ever 100% compatible. When porting SQL applications from other database interfaces to SESAM, some adaption may be required. The following typical differences should be noted:

  • Vendor specific data types

    Some vendor specific data types may have to be replaced by standard SQL data types (e.g., TEXT could be replaced by VARCHAR(max. size)).

  • Keywords as SQL identifiers

    In SESAM (as in standard SQL), such identifiers must be enclosed in double quotes (or renamed).

  • Display length in data types

    SESAM data types have a precision, not a display length. Instead of int(4) (intended use: integers up to '9999'), SESAM requires simply int for an implied size of 31 bits. Also, the only datetime data types available in SESAM are: DATE, TIME(3) and TIMESTAMP(3).

  • SQL types with vendor-specific unsigned, zerofill, or auto_increment attributes

    Unsigned and zerofill are not supported. Auto_increment is automatic (use "INSERT ... VALUES(*, ...)" instead of "... VALUES(0, ...)" to take advantage of SESAM-implied auto-increment.

  • int ... DEFAULT '0000'

    Numeric variables must not be initialized with string constants. Use DEFAULT 0 instead. To initialize variables of the datetime SQL data types, the initialization string must be prefixed with the respective type keyword, as in: CREATE TABLE exmpl ( xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT NULL );

  • $count = xxxx_num_rows();

    Some databases promise to guess/estimate the number of the rows in a query result, even though the returned value is grossly incorrect. SESAM does not know the number of rows in a query result before actually fetching them. If you REALLY need the count, try SELECT COUNT(...) WHERE ..., it will tell you the number of hits. A second query will (hopefully) return the results.

  • DROP TABLE thename;

    In SESAM, in the DROP TABLE command, the table name must be either followed by the keyword RESTRICT or CASCADE. When specifying RESTRICT, an error is returned if there are dependent objects (e.g., VIEWs), while with CASCADE, dependent objects will be deleted along with the specified table.

Notes on the use of various SQL types

SESAM does not currently support the BLOB type. A future version of SESAM will have support for BLOB.

At the PHP interface, the following type conversions are automatically applied when retrieving SQL fields:

Tabela 3. SQL to PHP Type Conversions

SQL Type | PHP Type
SMALLINT, INTEGER | integer
NUMERIC, DECIMAL, FLOAT, REAL, DOUBLE | float
DATE, TIME, TIMESTAMP | string
VARCHAR, CHARACTER | string
When retrieving a complete row, the result is returned as an array. Empty fields are not filled in, so you will have to check for the existence of the individual fields yourself (use isset() or empty() to test for empty fields). That allows more user control over the appearance of empty fields (than in the case of an empty string as the representation of an empty field).

Support of SESAM's "multiple fields" feature

The special "multiple fields" feature of SESAM allows a column to consist of an array of fields. Such a "multiple field" column can be created like this:

Exemplo 1. Creating a "multiple field" column

CREATE TABLE multi_field_test (
    pkey CHAR(20) PRIMARY KEY,
    multi(3) CHAR(12)
)
and can be filled in using:

Exemplo 2. Filling a "multiple field" column

INSERT INTO multi_field_test (pkey, multi(2..3) )
    VALUES ('Second', <'first_val', 'second_val'>)
Note that (like in this case) leading empty sub-fields are ignored, and the filled-in values are collapsed, so that in the above example the result will appear as multi(1..2) instead of multi(2..3).

When retrieving a result row, "multiple columns" are accessed like "inlined" additional columns. In the example above, "pkey" will have the index 0, and the three "multi(1..3)" columns will be accessible as indices 1 through 3.

Veja Também

For specific SESAM details, please refer to the SESAM/SQL-Server documentation (english) or the SESAM/SQL-Server documentation (german), both available online, or use the respective manuals.

Índice
sesam_affected_rows -- Get number of rows affected by an immediate query
sesam_commit -- Commit pending updates to the SESAM database
sesam_connect -- Open SESAM database connection
sesam_diagnostic -- Return status information for last SESAM call
sesam_disconnect -- Detach from SESAM connection
sesam_errormsg -- Returns error message of last SESAM call
sesam_execimm -- Execute an "immediate" SQL-statement
sesam_fetch_array -- Fetch one row as an associative array
sesam_fetch_result -- Return all or part of a query result
sesam_fetch_row -- Fetch one row as an array
sesam_field_array -- Return meta information about individual columns in a result
sesam_field_name -- Return one column name of the result set
sesam_free_result -- Releases resources for the query
sesam_num_fields -- Return the number of fields/columns in a result set
sesam_query -- Perform a SESAM SQL query and prepare the result
sesam_rollback -- Discard any pending updates to the SESAM database
sesam_seek_row -- Set scrollable cursor mode for subsequent fetches
sesam_settransaction -- Set SESAM transaction parameters

Anterior | Principal | Próxima
shm_remove | Acima | sesam_affected_rows


sesam_affected_rows

(PHP 3 CVS only)

sesam_affected_rows -- Get number of rows affected by an immediate query

Description

int sesam_affected_rows ( string result_id)

result_id is a valid result id returned by sesam_query().

Returns the number of rows affected by a query associated with result_id.

The sesam_affected_rows() function can only return useful values when used in combination with "immediate" SQL statements (updating operations like INSERT, UPDATE and DELETE) because SESAM does not deliver any "affected rows" information for "select type" queries. The number returned is the number of affected rows.

Exemplo 1. sesam_affected_rows() example

<?php
$result = sesam_execimm("DELETE FROM PHONE WHERE LASTNAME = '" . strtoupper($name) . "'");
if (!$result) {
    /* ... error ... */
}
echo sesam_affected_rows($result).
    " entries with last name " . $name . " deleted.\n";
?>

See also sesam_query() and sesam_execimm().

Anterior | Principal | Próxima
SESAM Database Functions | Acima | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Commit pending updates to the SESAM database

Description

bool sesam_commit ( void )

Returns: TRUE on success, FALSE on errors

sesam_commit() commits any pending updates to the database.

Note that there is no "auto-commit" feature as in other databases, as it could lead to accidental data loss. Uncommitted data at the end of the current script (or when calling sesam_disconnect()) will be discarded by an implied sesam_rollback() call.

See also: sesam_rollback().

Exemplo 1. Committing an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (!sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)"))
        die("insert failed");
    if (!sesam_commit())
        die("commit failed");
}
?>

Anterior | Principal | Próxima
sesam_affected_rows | Acima | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Open SESAM database connection

Description

bool sesam_connect ( string catalog, string schema, string user)

Returns TRUE if a connection to the SESAM database was made, or FALSE on error.

sesam_connect() establishes a connection to an SESAM database handler task. The connection is always "persistent" in the sense that only the very first invocation will actually load the driver from the configured SESAM OML PLAM library. Subsequent calls will reuse the driver and will immediately use the given catalog, schema, and user.

When creating a database, the "catalog" name is specified in the SESAM configuration directive //ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

The "schema" references the desired database schema (see SESAM handbook).

The "user" argument references one of the users which are allowed to access this "catalog" / "schema" combination. Note that "user" is completely independent from both the system's user id's and from HTTP user/password protection. It appears in the SESAM configuration only.

See also sesam_disconnect().

Exemplo 1. Connect to a SESAM database

<?php
if (!sesam_connect ("mycatalog", "myschema", "otto")) {
    die("Unable to connect to SESAM");
}
?>

Anterior | Principal | Próxima
sesam_commit | Acima | sesam_diagnostic


sesam_diagnostic

(PHP 3 CVS only)

sesam_diagnostic -- Return status information for last SESAM call

Description

array sesam_diagnostic ( void )

Returns an associative array of status and return codes for the last SQL query/statement/command. Elements of the array are:

Tabela 1. Status information returned by sesam_diagnostic()

Element | Contents
$array["sqlstate"] | 5 digit SQL return code (see the SESAM manual for the description of the possible values of SQLSTATE)
$array["rowcount"] | number of affected rows in last update/insert/delete (set after "immediate" statements only)
$array["errmsg"] | "human readable" error message string (set after errors only)
$array["errcol"] | error column number of previous error (0-based; or -1 if undefined. Set after errors only)
$array["errlin"] | error line number of previous error (0-based; or -1 if undefined. Set after errors only)

In the following example, a syntax error (E SEW42AE ILLEGAL CHARACTER) is displayed by including the offending SQL statement and pointing to the error location:

Exemplo 1. Displaying SESAM error messages with error position

<?php
// Function which prints a formatted error message,
// displaying a pointer to the syntax error in the
// SQL statement
function PrintReturncode($exec_str)
{
    $err = Sesam_Diagnostic();
    $colspan=4; // 4 cols for: sqlstate, errlin, errcol, rowcount
    if ($err["errlin"] == -1)
        --$colspan;
    if ($err["errcol"] == -1)
        --$colspan;
    if ($err["rowcount"] == 0)
        --$colspan;
    echo "<table border=\"1\">\n";
    echo "<tr><th colspan=\"" . $colspan . "\"><span class=\"spanred\">ERROR:</span> ".
              htmlspecialchars($err["errmsg"]) . "</th></tr>\n";
    if ($err["errcol"] >= 0) {
        echo "<tr><td colspan=\"" . $colspan . "\"><pre>\n";
        $errstmt = $exec_str . "\n";
        for ($lin=0; $errstmt != ""; ++$lin) {
            if ($lin != $err["errlin"]) { // $lin is less or greater than errlin
                if (!($i = strchr($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                if ($line != "\n")
                    echo htmlspecialchars($line);
            } else {
                if (! ($i = strchr ($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen ($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                for ($col=0; $col < $err["errcol"]; ++$col) {
                    echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
                }
                echo "<span class=\"spanred\">\\</span>\n";
                echo "<span class=\"normal\">" . htmlspecialchars($line) . "</span>";
                for ($col=0; $col < $err["errcol"]; ++$col) {
                    echo (substr ($line, $col, 1) == "\t") ? "\t" : ".";
                }
                echo "<span class=\"spanred\">/</span>\n";
            }
        }
        echo "</pre></td></tr>\n";
    }
    echo "<tr>\n";
    echo " <td>sqlstate=" . $err["sqlstate"] . "</td>\n";
    if ($err["errlin"] != -1)
        echo " <td>errlin=" . $err["errlin"] . "</td>\n";
    if ($err["errcol"] != -1)
        echo " <td>errcol=" . $err["errcol"] . "</td>\n";
    if ($err["rowcount"] != 0)
         echo " <td>rowcount=" . $err["rowcount"] . "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
}

if (!sesam_connect ("mycatalog", "phoneno", "otto"))
  die ("cannot connect");

$stmt = "SELECT * FROM phone\n" .
        " WHERE@ LASTNAME='KRAEMER'\n" .
        " ORDER BY FIRSTNAME";
if (!($result = sesam_query ($stmt)))
    PrintReturncode ($stmt);
?>

See also: sesam_errormsg() for simple access to the error string only

Anterior | Principal | Próxima
sesam_connect | Acima | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Detach from SESAM connection

Description

bool sesam_disconnect ( void )

Returns: always TRUE.

sesam_disconnect() closes the logical link to a SESAM database (without actually disconnecting and unloading the driver).

Note that this isn't usually necessary, as the open connection is automatically closed at the end of the script's execution. Uncommitted data will be discarded, because an implicit sesam_rollback() is executed.

sesam_disconnect() will not close the persistent link, it will only invalidate the currently defined "catalog", "schema" and "user" triple, so that any sesam function called after sesam_disconnect() will fail.

Exemplo 1. Closing a SESAM connection

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    /* ... some queries and stuff ... */
    sesam_disconnect();
}
?>

See also sesam_connect().

Anterior | Principal | Próxima
sesam_diagnostic | Acima | sesam_errormsg


sesam_errormsg

(PHP 3 CVS only)

sesam_errormsg -- Returns error message of last SESAM call

Description

string sesam_errormsg ( void )

Returns the SESAM error message associated with the most recent SESAM error.

Exemplo 1. sesam_errormsg() example

<?php
if (!sesam_execimm($stmt)) {
  echo sesam_errormsg() . "<br />\n";
}
?>

See also sesam_diagnostic() for the full set of SESAM SQL status information.

Anterior | Principal | Próxima
sesam_disconnect | Acima | sesam_execimm


sesam_execimm

(PHP 3 CVS only)

sesam_execimm -- Execute an "immediate" SQL-statement

Description

string sesam_execimm ( string query)

Returns: A SESAM "result identifier" on success, or FALSE on error.

sesam_execimm() executes an "immediate" statement (i.e., a statement like UPDATE, INSERT or DELETE which returns no result, and has no INPUT or OUTPUT variables). "select type" queries can not be used with sesam_execimm(). Sets the affected_rows value for retrieval by the sesam_affected_rows() function.

Note that sesam_query() can handle both "immediate" and "select-type" queries. Use sesam_execimm() only if you know beforehand what type of statement will be executed. An attempt to use SELECT type queries with sesam_execimm() will return $err["sqlstate"] == "42SBW".

The returned "result identifier" can not be used for retrieving anything but the sesam_affected_rows(); it is only returned for symmetry with the sesam_query() function.

<?php
$stmt = "INSERT INTO mytable VALUES ('one', 'two')";
$result = sesam_execimm($stmt);
$err = sesam_diagnostic();
echo "sqlstate = " . $err["sqlstate"] . "\n".
       "Affected rows = " . $err["rowcount"] . " == " .
       sesam_affected_rows($result) . "\n";
?>

See also sesam_query() and sesam_affected_rows().

Anterior | Principal | Próxima
sesam_errormsg | Acima | sesam_fetch_array


sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Fetch one row as an associative array

Description

array sesam_fetch_array ( string result_id [, int whence [, int offset]])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sesam_fetch_array() is an alternative version of sesam_fetch_row(). Instead of storing the data in the numeric indices of the result array, it stores the data in associative indices, using the field names as keys.

result_id is a valid result id returned by sesam_query() (select type queries only!).

For the valid values of the optional whenceand offset parameters, see the sesam_fetch_row() function for details.

sesam_fetch_array() fetches one row of data from the result associated with the specified result identifier. The row is returned as an associative array. Each result column is stored with an associative index equal to its column (aka. field) name. The column names are converted to lower case.

Columns without a field name (e.g., results of arithmetic operations) and empty fields are not stored in the array. Also, if two or more columns of the result have the same column names, the later column will take precedence. In this situation, either call sesam_fetch_row() or make an alias for the column.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

A special handling allows fetching "multiple field" columns (which would otherwise all have the same column names). For each column of a "multiple field", the index name is constructed by appending the string "(n)" where n is the sub-index of the multiple field column, ranging from 1 to its declared repetition factor. The indices are NOT zero based, in order to match the nomenclature used in the respective query syntax. For a column declared as:

CREATE TABLE ... ( ... MULTI(3) INT )

the associative indices used for the individual "multiple field" columns would be "multi(1)", "multi(2)", and "multi(3)" respectively.

Subsequent calls to sesam_fetch_array() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Exemplo 1. SESAM fetch array

<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table:
echo "<table border=\"1\">\n";
while (($row = sesam_fetch_array($result)) && count($row) > 0) {
    echo "<tr>\n";
    echo "<td>" . htmlspecialchars($row["firstname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["lastname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["phoneno"]) . "</td>\n";
    echo "</tr>\n";
}
echo "</table>\n";
sesam_free_result($result);
?>

See also: sesam_fetch_row() which returns an indexed array.

Anterior | Principal | Próxima
sesam_execimm | Acima | sesam_fetch_result


sesam_fetch_result

(PHP 3 CVS only)

sesam_fetch_result -- Return all or part of a query result

Description

mixed sesam_fetch_result ( string result_id [, int max_rows])

Returns a mixed array with the query result entries, optionally limited to a maximum of max_rows rows. Note that both row and column indexes are zero-based.

Tabela 1. Mixed result set returned by sesam_fetch_result()

Array Element | Contents
int $arr["count"] | number of columns in result set (or zero if this was an "immediate" query)
int $arr["rows"] | number of rows in result set (between zero and max_rows)
bool $arr["truncated"] | TRUE if the number of rows was at least max_rows, FALSE otherwise. Note that even when this is TRUE, the next sesam_fetch_result() call may return zero rows because there are no more result entries.
mixed $arr[col][row] | result data for all the fields at row(row) and column(col), (where the integer index row is between 0 and $arr["rows"]-1, and col is between 0 and $arr["count"]-1). Fields may be empty, so you must check for the existence of a field by using the php isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.
Note that the amount of memory used up by a large query may be gigantic. Use the max_rows parameter to limit the maximum number of rows returned, unless you are absolutely sure that your result will not use up all available memory.

See also: sesam_fetch_row(), and sesam_field_array() to check for "multiple fields". See the description of the sesam_query() function for a complete example using sesam_fetch_result().

Anterior | Principal | Próxima
sesam_fetch_array | Acima | sesam_fetch_row


sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Fetch one row as an array

Description

array sesam_fetch_row ( string result_id [, int whence [, int offset]])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

The number of columns in the result set is returned in an associative array element $array["count"]. Because some of the result columns may be empty, the count() function can not be used on the result row returned by sesam_fetch_row().

result_id is a valid result id returned by sesam_query() (select type queries only!).

whence is an optional parameter for a fetch operation on "scrollable" cursors, which can be set to the following predefined constants:

Tabela 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially (after fetch, the internal default is set to SESAM_SEEK_NEXT)
1 | SESAM_SEEK_PRIOR | read sequentially backwards (after fetch, the internal default is set to SESAM_SEEK_PRIOR)
2 | SESAM_SEEK_FIRST | rewind to first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | seek to last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | seek to absolute row number given as offset (Zero-based. After fetch, the internal default is set to SESAM_SEEK_ABSOLUTE, and the internal offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | seek relative to current scroll position, where offset can be a positive or negative offset value.
This parameter is only valid for "scrollable" cursors.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. If the whence parameter is omitted, the global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT, and settable by sesam_seek_row()) are used. If whence is supplied, its value replaces the global default.

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE. This parameter is only valid for "scrollable" cursors.

sesam_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array (indexed by values between 0 and $array["count"]-1). Fields may be empty, so you must check for the existence of a field by using the isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.

Subsequent calls to sesam_fetch_row() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Exemplo 1. SESAM fetch rows

<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n" .
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table in backward order
echo "<table border=\"1\">\n";
$row = sesam_fetch_row($result, SESAM_SEEK_LAST);
while (is_array($row)) {
    echo "<tr>\n";
    for ($col = 0; $col < $row["count"]; ++$col) {
        echo "<td>" . htmlspecialchars($row[$col]) . "</td>\n";
    }
    echo "</tr>\n";
    // use implied SESAM_SEEK_PRIOR
    $row = sesam_fetch_row($result);
}
echo "</table>\n";
sesam_free_result($result);
?>

See also: sesam_fetch_array() which returns an associative array, and sesam_fetch_result() which returns many rows per invocation.

Anterior | Principal | Próxima
sesam_fetch_result | Acima | sesam_field_array


sesam_field_array

(PHP 3 CVS only)

sesam_field_array -- Return meta information about individual columns in a result

Description

array sesam_field_array ( string result_id)

result_id is a valid result id returned by sesam_query().

Returns a mixed associative/indexed array with meta information (column name, type, precision, ...) about individual columns of the result after the query associated with result_id.

Tabela 1. Mixed result set returned by sesam_field_array()

Array Element | Contents
int $arr["count"] | Total number of columns in result set (or zero if this was an "immediate" query). SESAM "multiple fields" are "inlined" and treated like the respective number of columns.
string $arr[col]["name"] | column name for column(col), where col is between 0 and $arr["count"]-1. The returned value can be the empty string (for dynamically computed columns). SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same column name.
string $arr[col]["count"] | The "count" attribute describes the repetition factor when the column has been declared as a "multiple field". Usually, the "count" attribute is 1. The first column of a "multiple field" column however contains the number of repetitions (the second and following column of the "multiple field" contain a "count" attribute of 1). This can be used to detect "multiple fields" in the result set. See the example shown in the sesam_query() description for a sample use of the "count" attribute.
string $arr[col]["type"] PHP variable type of the data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • integer

  • float

  • string

depending on the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same PHP type.
string $arr[col]["sqltype"] SQL variable type of the column data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • "CHARACTER"

  • "VARCHAR"

  • "NUMERIC"

  • "DECIMAL"

  • "INTEGER"

  • "SMALLINT"

  • "FLOAT"

  • "REAL"

  • "DOUBLE"

  • "DATE"

  • "TIME"

  • "TIMESTAMP"

describing the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same SQL type.
string $arr[col]["length"] | The SQL "length" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "length" attribute is used with "CHARACTER" and "VARCHAR" SQL types to specify the (maximum) length of the string variable. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same length attribute.
string $arr[col]["precision"] | The "precision" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "precision" attribute is used with numeric and time data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same precision attribute.
string $arr[col]["scale"] | The "scale" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "scale" attribute is used with numeric data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same scale attribute.

See also sesam_query() for an example of the sesam_field_array() use.

Anterior | Principal | Próxima
sesam_fetch_row | Acima | sesam_field_name


sesam_field_name

(PHP 3 CVS only)

sesam_field_name -- Return one column name of the result set

Description

int sesam_field_name ( string result_id, int index)

Returns the name of a field (i.e., the column name) in the result set, or FALSE on error.

For "immediate" queries, or for dynamic columns, an empty string is returned.

Nota: The column index is zero-based, not one-based as in SESAM.

See also: sesam_field_array(). It provides an easier interface to access the column names and types, and allows for detection of "multiple fields".

Anterior | Principal | Próxima
sesam_field_array | Acima | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Releases resources for the query

Description

int sesam_free_result ( string result_id)

Releases resources for the query associated with result_id. Returns FALSE on error.

Anterior | Principal | Próxima
sesam_field_name | Acima | sesam_num_fields


sesam_num_fields

(PHP 3 CVS only)

sesam_num_fields -- Return the number of fields/columns in a result set

Description

int sesam_num_fields ( string result_id)

After calling sesam_query() with a "select type" query, this function gives you the number of columns in the result. Returns an integer describing the total number of columns (aka. fields) in the current result_id result set or FALSE on error.

For "immediate" statements, the value zero is returned. The SESAM "multiple field" columns count as their respective dimension, i.e., a three-column "multiple field" counts as three columns.

See also: sesam_query() and sesam_field_array() for a way to distinguish between "multiple field" columns and regular columns.

Anterior | Principal | Próxima
sesam_free_result | Acima | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Perform a SESAM SQL query and prepare the result

Description

string sesam_query ( string query [, bool scrollable])

Returns: A SESAM "result identifier" on success, or FALSE on error.

A "result_id" resource is used by other functions to retrieve the query results.

sesam_query() sends a query to the currently active database on the server. It can execute both "immediate" SQL statements and "select type" queries. If an "immediate" statement is executed, then no cursor is allocated, and any subsequent sesam_fetch_row() or sesam_fetch_result() call will return an empty result (zero columns, indicating end-of-result). For "select type" statements, a result descriptor and a (scrollable or sequential, depending on the optional boolean scrollable parameter) cursor will be allocated. If scrollable is omitted, the cursor will be sequential.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row().

For "immediate" statements, the number of affected rows is saved for retrieval by the sesam_affected_rows() function.

See also: sesam_fetch_row() and sesam_fetch_result().

Exemplo 1. Show all rows of the "phone" table as a HTML table

<?php
if (!sesam_connect("phonedb", "demo", "otto"))
    die("cannot connect");
$result = sesam_query("select * from phone");
if (!$result) {
    $err = sesam_diagnostic();
    die $err["errmsg"]);
}
echo "<table border>\n";
// Add title header with column names above the result:
if ($cols = sesam_field_array($result)) {
    echo "<tr><th colspan=" . $cols["count"] . ">Result:</th></tr>\n";
    echo "<tr>\n";
    for ($col = 0; $col < $cols["count"]; ++$col) {
        $colattr = $cols[$col];
        /* Span the table head over SESAM's "Multiple Fields": */
        if ($colattr["count"] > 1) {
            echo "<th colspan=\"" . $colattr["count"] . "\">" . $colattr["name"] .
                "(1.." . $colattr["count"] . ")</th>\n";
            $col += $colattr["count"] - 1;
        } else
            echo "<th>" . $colattr["name"] . "</th>\n";
    }
    echo "</tr>\n";
}

do {
    // Fetch the result in chunks of 100 rows max.
    $ok = sesam_fetch_result($result, 100);
    for ($row=0; $row < $ok["rows"]; ++$row) {
        echo " <tr>\n";
        for ($col = 0; $col < $ok["cols"]; ++$col) {
            if (isset($ok[$col][$row])) {
                echo "<td>" . $ok[$col][$row] . "</td>\n";
            } else {
                echo "<td>-empty-</td>\n";
            }
        }
        echo "</tr>\n";
    }
} while ($ok["truncated"]); // while there may be more data

echo "</table>\n";
// free result id
sesam_free_result($result);
?>

Anterior | Principal | Próxima
sesam_num_fields | Acima | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Discard any pending updates to the SESAM database

Description

bool sesam_rollback ( void )

Returns: TRUE on success, FALSE on errors

sesam_rollback() discards any pending updates to the database. Also affected are result cursors and result descriptors.

At the end of each script, and as part of the sesam_disconnect() function, an implied sesam_rollback() is executed, discarding any pending changes to the database.

See also: sesam_commit().

Exemplo 1. Discarding an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")
        && sesam_execimm ("INSERT INTO othertable VALUES (*, 'Another Test', 1)")) {
        sesam_commit();
    } else {
        sesam_rollback();
    }
}
?>

Anterior | Principal | Próxima
sesam_query | Acima | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Set scrollable cursor mode for subsequent fetches

Description

bool sesam_seek_row ( string result_id, int whence [, int offset])

result_id is a valid result id (select type queries only, and only if a "scrollable" cursor was requested when calling sesam_query()).

whence sets the global default value for the scrolling type, it specifies the scroll type to use in subsequent fetch operations on "scrollable" cursors, which can be set to the following predefined constants:

Tabela 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially
1 | SESAM_SEEK_PRIOR | read sequentially backwards
2 | SESAM_SEEK_FIRST | fetch first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | fetch last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | fetch absolute row number given as offset (Zero-based. After fetch, the default is set to SESAM_SEEK_ABSOLUTE, and the offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | fetch relative to current scroll position, where offset can be a positive or negative offset value (this also sets the default "offset" value for subsequent fetches).

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE.

Anterior | Principal | Próxima
sesam_rollback | Acima | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Set SESAM transaction parameters

Description

bool sesam_settransaction ( int isolation_level, int read_only)

Returns: TRUE if the values are valid, and the settransaction() operation was successful, FALSE otherwise.

sesam_settransaction() overrides the default values for the "isolation level" and "read-only" transaction parameters (which are set in the SESAM configuration file), in order to optimize subsequent queries and guarantee database consistency. The overridden values are used for the next transaction only.

sesam_settransaction() can only be called before starting a transaction, not after the transaction has been started already.

To simplify the use in PHP scripts, the following constants have been predefined in PHP (see SESAM handbook for detailed explanation of the semantics):

Tabela 1. Valid values for "Isolation_Level" parameter

Value | Constant | Meaning
1 | SESAM_TXISOL_READ_UNCOMMITTED | Read Uncommitted
2 | SESAM_TXISOL_READ_COMMITTED | Read Committed
3 | SESAM_TXISOL_REPEATABLE_READ | Repeatable Read
4 | SESAM_TXISOL_SERIALIZABLE | Serializable

Tabela 2. Valid values for "Read_Only" parameter

Value | Constant | Meaning
0 | SESAM_TXREAD_READWRITE | Read/Write
1 | SESAM_TXREAD_READONLY | Read-Only

The values set by sesam_settransaction() will override the default setting specified in the SESAM configuration file.

Exemplo 1. Setting SESAM transaction parameters

<?php
sesam_settransaction (SESAM_TXISOL_REPEATABLE_READ,
                     SESAM_TXREAD_READONLY);
?>

Anterior | Principal | Próxima
sesam_seek_row | Acima | Sessões


Sessões

Manual do PHP
Anterior Próxima

XCVI. Sessões

Introdução

Suporte a sessões no PHP consiste em uma forma de preservar certos dados através de acessos subseqüentes. Isto te permite construir aplicações mais personalizadas e aumenta a atração ao seu web site.

Se você está familiarizado com o gerenciamento de sessões do PHPLIB, você irá notar que alguns conceitos são similares ao suporte de sessões do PHP.

Um visitante acessando seu web site está determinado por uma única id, a então chamada id de sessão. Esta ou é guardada em um cookie do lado do usuário ou está na URL.

Sessões te permite registrar arbitrariamente números de variáveis para estarem lado a lado com os requerimentos. Quando um visitante acessa seu site, o PHP checará automaticamente (se session.auto_start está definida para 1) ou no seu pedido (explicitamente através da session_start() ou implicitamente através da session_register()) se uma id de sessão especifica foi enviada com o pedido. Se este é o caso, o ambiente anterior guardado é restaurado.

Todas as variáveis registradas são publicadas em série após o pedido terminar. Variáveis registradas que estão indefinidas estão marcadas como estando não definida. Num acesso subseqüente, estas não estarão definidas pelo módulo da sessão a menos que o usuário defina elas mais tarde.

Nota: Manipulação de sessões foi adicionado no PHP 4.0.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Suporte a sessões esta habilitado no PHP 4.0 por definição. Se você não gostaria de seu PHP com suporte a sessão, você especifica a opção de configuração --disable-session.

Configuração durante execução

O sistema de suporte de sessão oferece no arquivo php.ini numerosas opções de configuração. nós daremos um breve resumo.

  • session.save_handlerdefine o nome do operador(funções-handler) que é usado para guardar e resgatar dados associados com a sessão. Por definição files.

  • session.save_path define o argumento que que é passado para o save handler. Se você escolher o default files handler, este é o caminho onde os arquivos serão criados. Por definição para /tmp. Se a profundidade do caminho de session.save_path é maior do que 2, coleção de lixo não será executada(garbage collection - gc).

    Atenção

    Se você deixar isto definido para um diretório muito visível, tal como /tmp (o padrão), outros usuários do servidor poderão ser capazes de assumir o controle da sessão obtendo a lista de arquivos naquele diretório.

  • session.name especifica o nome da sessão que é usada como nome de cookie. Ela poderia apenas conter caracteres alfanuméricos. Por definição PHPSESSID.

  • session.auto_start especifica se o módulo da sessão inicia a sessão automaticamente num pedido na inicialização. Por definição 0 (desabilitado).

  • session.cookie_lifetime especifica o tempo de vida de um cookie em segundos que é enviado para o navegador. O valor 0 significa "até que o navegador seja fechado." Por definição 0.

  • session.serialize_handler define o nome do operador(handler) que é usado para serializar/deserializar dados. Correntemente, um formato interno do PHP (nome php) e WDDX é suportado (nome wddx). WDDX está apenas disponível, se o PHP está compilado com o suporteWDDX support. Por definição php.

  • session.gc_probability especifica a probabilidade que a rotina gc (coleção de lixo-garbage collection) é iniciada em cada pedido em porcentagem. Por definição 1.

  • session.gc_maxlifetime especifica o número de segundos depois que o dado será visto como 'lixo' e limpado.

  • session.referer_check contém a substring que você quer checar cada HTTP Referer para. Se o Referer foi enviado pelo cliente e a substring não foi encontrada, a id de sessão embutida será percebida como inválida. Por definição uma string vazia.

  • session.entropy_file dá um caminho para um recurso externo(file) que será usado como um entropy source na criação da id de sessão. São exemplos /dev/random ou /dev/urandom que estão disponéveis em muitos Sistemas Unix.

  • session.entropy_length especifíca o número de bytes que serão lidos do arquivo especificado acima. Por definição 0 (desabilitada).

  • session.use_cookies especifica se o módulo usará cookies para gravar a id de sessão no lado do cliente. Por definição 1 (habilitada).

  • session.use_only_cookies especifica se o módulo usaráapenas cookies para gravar a id de sessão no lado do cliente. Por definição 0 (desabilitada). Habilitar esta definição previni ataques envolvendo id de sessão passadas em URLs. Esta definição foi adicionada no PHP 4.3.0.

  • session.cookie_path especifica o caminho para definir em session_cookie. Por definição /.

  • session.cookie_domain especifica o domínio para para definir em session_cookie. Nenhuma definição.

  • session.cache_limiter especifica o método de controle do cache para usar para páginas de sessão (none/nocache/private/private_no_expire/public). Por definição nocache.

  • session.cache_expire especifica o tempo de vida para páginas de sessão no cache em minutos, isto não tem efeito para para limitador sem cache. Por definição 180.

  • session.use_trans_sid se o suporte de sid transparente está habilitado ou não, se habilitado por compilação com --enable-trans-sid. Por definição 1 (habilitado).

  • url_rewriter.tags especifica quais tags html estão reescritas para incluir id de sessão se o suporte transparente de sid está habilitado. Por definição a=href,area=href,frame=src,input=src,form=fakeentry

A configuração de track_vars e register_globals influencia em como as variáveis da sessão conseguem armazenar e devolver.

Nota: No PHP 4.0.3, track_vars está sempre ligada.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

SID (string)

Constantes contendo o nome da sessão e o ID da sessão na forma de "name=ID" ou uma string vazia no caso de o ID não tenha sido apropriadamente salvo em um cookie de seção.

Exemplos

Nota: No PHP 4.1.0, $_SESSION está disponível como variável global apenas como $_POST, $_GET, $_REQUEST e assim por diante. Não como $HTTP_SESSION_VARS, $_SESSION está sempre global. Então, global poderia não ser usada para $_SESSION.

Se track_vars is habilitada e register_globals está desabilitada, apenas aquelas membros da matriz associativa $HTTP_SESSION_VARS podem ser registradas em uma sessão de variáveis. A sessão de variáveis restauradas somente estarão disponíveis na matriz $HTTP_SESSION_VARS.

Exemplo 1. Registrando uma variável com track_vars habilitada

<?php
session_start();
if (isset($HTTP_SESSION_VARS['count'])) {
   $HTTP_SESSION_VARS['count']++;
}
else {
   $HTTP_SESSION_VARS['count'] = 0;
}
?>

Uso de $_SESSION (ou $HTTP_SESSION_VARS com PHP 4.0.6 ou inferior) é recomendado por segurança e code readablity. Com $_SESSION ou $HTTP_SESSION_VARS, não á necessidade de usar as funções session_register()/session_unregister()/session_is_registered(). Usuários podem acessar variável de sessão como uma variável normal.

Exemplo 2. Registrando uma variável com $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
} else {
    $_SESSION['count']++;
}
?>

Exemplo 3. Desregistrando uma variável com $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count']);
?>

Se a register_globals está habilitada, então todas as variáveis globais podem ser registradas como variáveis de sessão e as variáveis de sessão serão restauradas para a variável global correspondente. Visto que o PHP deve saber quais variáveis globais estão registradas como variáveis de sessão, usuaários devem registrar variáveis com a função session_register() enquanto $HTTP_SESSION_VARS/$_SESSION não necessita utilizar session_register().

Cuidado

Se você está usando $HTTP_SESSION_VARS/$_SESSION e desabilitada register_globals, não faça uso de session_register(), session_is_registered() e session_unregister().

Se você habilita register_globals, session_unregister() poderiam ser usadas desde que as variáveis de sessão estejam registradas como variáveis globais quando os dados da sessão não estão em série. Desabilitar register_globals é recomendado para ambas razões, segurança e performance.

Exemplo 4. Registrando uma variável com register_globals habilitada

<?php
if (!session_is_registered('count')) {
    session_register("count");
    $count = 0;
}
else {
    $count++;
}
?>

Se ambas track_vars e register_globals estão habilitadas, então as variáveis globais e as entradas $HTTP_SESSION_VARS/$_SESSION farão referência ao mesmo valor para as variáveis já registradas.

Se o usuário utiliza session_register() para registrar variável de sessão, $HTTP_SESSION_VARS/$_SESSION não terão esta variável numa matriz até que ela seja lida de um armazém de sessão. (i.e. até o próximo pedido)

Passando a ID de sessão

Há dois métodos para propagar uma id de sessão:

  • Cookies

  • Parâmetro URL

Módulo de sessão suporta ambos os métodos. Cookies são mais eficientes, mas se eles não estiverem autorizados (clientes não são obrigados a aceita-los), nós não podemos conter deles. O segundo método inclui a id de sessão diretamente na URL.

PHP é capaz de fazer isto transparentemente quando compilado com --enable-trans-sid. Se você habilitar esta opção, URIs ligadas serão automaticamente mudadas para conter a id de sessão. Alternativamente, você pode usar a constante SID que é definida, se o cliente não enviar o cookie apropriado. SID é do formulário session_name=session_id ou é uma string vazia.

Nota: A diretriz arg_separator.output php.ini permite personalizar o argumento separador.

O seguinte exemplo demonstra como registrar uma variável, e e como ligar corretamente a outra página usando SID.

Exemplo 5. Contar o número de visitas de um simples usuário

<?php
if (!session_is_registered('count')) {
    session_register('count');
    $count = 1;
}
else {
    $count++;
}
?>

Hello visitor, you have seen this page <?php echo $count; ?> times.<p>;

<?php
# the <?php echo SID?> (<?=SID?> can be used if short tag is enabled)
# is necessary to preserve the session id
# in the case that the user has disabled cookies
?>

To continue, <A HREF="nextpage.php?<?php echo SID?>">click here</A>

A <?=SID?> não é necessário, se --enable-trans-sid foi usada para compilar o PHP.

Nota: URLs não ligadas estão assumidas para apontar para sites externos e portanto não anexam a SID, pois ela poderia escapar para outro servidor.

Session handlers customizáveis

Para implementar o armazenamento num banco de dados, ou qualque outra forma de aramzenamento, você vai precisar usar session_set_save_handler()* para define as funções de armazenamento que são usadas (* to create a set of user-level storage functions).

Índice
session_cache_expire -- Retorna o prazo do cache atual
session_cache_limiter -- Obtém e/ou define o limitador do cache atual
session_commit -- Alias of session_write_close()
session_decode -- Decifra dado de sessão de uma string
session_destroy -- Destrói todos os dados registrados para uma sessão
session_encode -- Codifica os dados da sessão atual como uma string
session_get_cookie_params -- Obtém os parâmetros do cookie da sessão
session_id -- Obtém e/ou define a id da sessão atual
session_is_registered -- Descobre se uma variável global está registrada numa sessão.
session_module_name -- Obtém e/ou define o módulo da sessão atual
session_name -- Obtém e/ou define o nome da sessão atual
session_regenerate_id -- Atualiza o id da seção atual com um novo gerado
session_register -- Registrar uma ou mais variáveis globais na sessão atual
session_save_path -- Obtém e/ou define o save path da sessão atual
session_set_cookie_params -- Define os parâmetros do cookie de sessão
session_set_save_handler -- Define a sequência de funções de armazenamento
session_start -- Inicia dados de sessão
session_unregister -- Desregistra uma variável global da sessão atual
session_unset -- Libera todas as variáveis de sessão
session_write_close -- Escreve dados de sessão e termina a sessão

Anterior | Principal | Próxima
sesam_settransaction | Acima | session_cache_expire


session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expire -- Retorna o prazo do cache atual

Descrição

int session_cache_expire ( [int new_cache_expire])

session_cache_expire() retorna o prazo do cache atual. O valor retornado deve ser lido em minutos, sendo o padrão de 180 minutos. Se new_cache_expire for dado, o prazo do cache atual é substituído com new_cache_expire.

O prazo para o cache expirar e retornado ao padrão de 180 minutos guardado em session.cache_limiter no inicio do script. Então você precisa usar session_cache_expire() para cada requesição (e antes que session_start() seja utilizada).

Exemplo 1. Exemplo session_cache_expire()

<?php

/* Define o limitador de cache para 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* Define o limite de tempo do cache em 30 minutos */
session_cache_expire (30);
$cache_expire = session_cache_expire();

/* Inicia a sessão */

session_start();

echo "O limitador de cache agora é $cache_limiter</ br>";
echo "As sessões em cache irão expirar em $cache_expire minutos";
?>

Nota: Definindo new_cache_expire funciona somente se session.cache_limiter tiver um valor diferente de nocache.

Veja também as configurações para session.cache_expire, session.cache_limiter e a função session_cache_limiter().

Anterior | Principal | Próxima
Sessões | Acima | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiter -- Obtém e/ou define o limitador do cache atual

Descrição

string session_cache_limiter ( [string cache_limiter])

session_cache_limiter() retorna o nome do atual limitador do cache. Se o cache_limiter está especificado, o nome do limitador do cache atual é mudado para o novo valor.

O limitador do cache controla HTTP headers enviados para o cliente. Estes headers determinam pelas quais o conteúdo da página pode ser guardado no cache. Definindo o limitador do cache para nocache, por exemplo, rejeitaria qualquer armazenamento no cache do cliente. Um valor como public, entretanto, permitiria o armazenamento no cache. Ele também poderia ser definido como private, que é um pouco mais restritivo do que public.

No modo private , Header expirado enviado para o cliente, pode provocar confusão para alguns para alguns navegadores incluindo o Mozilla. Você pode evitar este problema com o modo private_no_expire. Header expirado nunca é enviado para o cliente nesse modo.

Nota: private_no_expire foi adicionado no PHP 4.2.0.

O limitador do cache é zerado para o valor padrão guardado em session.cache_limiter no pedido do startup time. Assim, você precisa chamar session_cache_limiter() para cada pedido (e antes session_start() é chamada).

Exemplo 1. Exemplo session_cache_limiter()

<?php

/* Defini o limitador do cache para 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "o limitador do cache está definido agora para $cache_limiter<p>";
?>

Veja também a diretiva de cofiguração session.cache_limiter.

Anterior | Principal | Próxima
session_cache_expire | Acima | session_commit


session_commit

session_commit -- Alias of session_write_close()

Description

This function is an alias of session_write_close().

Anterior | Principal | Próxima
session_cache_limiter | Acima | session_decode


session_decode

(PHP 4 , PHP 5)

session_decode -- Decifra dado de sessão de uma string

Descrição

bool session_decode ( string data)

session_decode() decifra dado de sessão em data, definindo variáveis guardadas na sessão.

Veja também session_encode().

Anterior | Principal | Próxima
session_commit | Acima | session_destroy


session_destroy

(PHP 4 , PHP 5)

session_destroy -- Destrói todos os dados registrados para uma sessão

Descrição

bool session_destroy ( void )

session_destroy() destrói tudo dos dados associados com a sessão corrente. Ela não elimina nenhuma das variáveis globais associadas com a sessão, e nem o cookie de sessão.

Esta função retorna TRUE caso funcione e FALSE caso falhe para destruição dos dados da sessão.

Exemplo 1. Destruindo uma sessão

<?php

// Inicializa uma sessão.
// Se você está usando session_name("something"), não esqueça!
session_start();
// Eliminar todas as variáveis de sessão.
session_unset();
// Finalmente, destruição da sessão.
session_destroy();

?>

Exemplo 2. Destruindo uma sessão com $_SESSION

<?php

// Inicializa uma sessão.
// Se você está usando session_name("something"), não esqueça!
session_start();
// Eliminar todas as variáveis de sessão.
$_SESSION = array();
// Finalmente, destruição da sessão.
session_destroy();

?>

Anterior | Principal | Próxima
session_decode | Acima | session_encode


session_encode

(PHP 4 , PHP 5)

session_encode -- Codifica os dados da sessão atual como uma string

Descrição

string session_encode ( void )

session_encode() retorna uma string com o conteúdo da sessão corrente codificado em seu interior.

Veja também session_decode()

Anterior | Principal | Próxima
session_destroy | Acima | session_get_cookie_params


session_get_cookie_params

(PHP 4 , PHP 5)

session_get_cookie_params -- Obtém os parâmetros do cookie da sessão

Descrição

array session_get_cookie_params ( void )

A função session_get_cookie_params() retorna uma matriz com informação do cookie da sessão atual, a matriz contém os seguintes items:

  • "lifetime" - A duração do cookie.

  • "path" - O caminho onde a informação está guardada.

  • "domain" - O domínio do cookie.

  • "secure" - O cookie seria enviado apenas sobre conexões seguras. (Este item foi incluído no PHP 4.0.4.)

Veja também as diretivas de configuração session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure e session_set_cookie_params().

Anterior | Principal | Próxima
session_encode | Acima | session_id


session_id

(PHP 4 , PHP 5)

session_id -- Obtém e/ou define a id da sessão atual

Descrição

string session_id ( [string id])

session_id() retorna a id de sessão para a sessão atual.

Se id está especificado, irá trocar a id da sessão atual. session_id() necessita ser chamada antes de session_start() para esse propósito. Dependendo do session handler, nem todos os caracteres serão permitidos dentro da id de sessão. Por exemplo, o arquivo session handler permite apenas caracteres do intervalo a-z, A-Z e 0-9!

A constante SID também pode ser usada para devolver o nome e a id de sessão atual como uma string combinada para adicionar nas URLs. Note que SID está apenas definido se o cliente não enviou o cookie correto. Veja também Session handling.

Veja também session_start(), session_set_save_handler() e session.save_handler.

Anterior | Principal | Próxima
session_get_cookie_params | Acima | session_is_registered


session_is_registered

(PHP 4 , PHP 5)

session_is_registered -- Descobre se uma variável global está registrada numa sessão.

Descrição

bool session_is_registered ( string name)

session_is_registered() retorna TRUE se há uma variável global com o nome name registrada na sessão atual.

Nota: Se $_SESSION (ou $HTTP_SESSION_VARS para PHP 4.0.6 ou inferior) é usada, use isset() para checar se uma variável está registrada em $_SESSION.

Cuidado

Se você está usando $_SESSION (ou $HTTP_SESSION_VARS), não utilize session_register(), session_is_registered() e session_unregister().

Anterior | Principal | Próxima
session_id | Acima | session_module_name


session_module_name

(PHP 4 , PHP 5)

session_module_name -- Obtém e/ou define o módulo da sessão atual

Descrição

string session_module_name ( [string module])

session_module_name() retorna o nome do módulo da sessão atual. Se module está especificado, o nome será trocado.

Anterior | Principal | Próxima
session_is_registered | Acima | session_name


session_name

(PHP 4 , PHP 5)

session_name -- Obtém e/ou define o nome da sessão atual

Descrição

string session_name ( [string name])

session_name() retorna o nome da sessão atual. Se name está especificado, o nome da sessão atual é mudado para esse valor.

O nome da sessão refere-se à id de sessão em cookies e URLs. Ela poderia conter apenas caracteres alfanuméricos; ela poderia ser curta e descritiva (i.e. para usuários com avisos em cookie habilitados). O nome da sessão é retomado para o valor padrão guardado em session.name no pedido na hora de inicialização. Dessa forma, você precisa chamar session_name() para cada requerimento (e antes de session_start() ou session_register() serem chamadas).

Exemplo 1. session_name() exemplos

<?php

// defina o nome da sessão para WebsiteID

$previous_name = session_name("WebsiteID");

echo "O nome da sessão anterior era $previous_name<p>";
?>

Veja também a diretiva de configurção session.name.

Anterior | Principal | Próxima
session_module_name | Acima | session_regenerate_id


session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id -- Atualiza o id da seção atual com um novo gerado

Descrição

bool session_regenerate_id ( void )

session_regenerate_id() irá substituiro id da seção atual com um novo, e mantém a informação da seção atual.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo session_regenerate_id()

<?php
session_start();
$old_sessionid = session_id();
session_regenerate_id();
$new_sessionid = session_id();
print "Old Session: $old_sessionid<br>";
print "New Session: $new_sessionid<br>";print session_id();
print_r($_SESSION);
?>

Nota: Apartir do PHP 4.3.3, se os cookies de seção estiverem ativados, o uso de session_regenerate_id() irá enviar um novo novo cookie de seção com um novo id da seção.

Veja também session_id(),
session_start() e
session_name().

Anterior | Principal | Próxima
session_name | Acima | session_register


session_register

(PHP 4 , PHP 5)

session_register -- Registrar uma ou mais variáveis globais na sessão atual

Descrição

bool session_register ( mixed name [, mixed ...])

session_register() aceita um número de argumentos variáveis, algund deles podem ser ou uma string com o nome da variável ou uma matriz de nomes de variáveis ou outras matrizes. Para cada nome, session_register() registra a variável global com o nome na sessão atual.

Cuidado

Se você quer que seu script funcione independentemente do uso de register_globals, você precisa usar a matriz $_SESSION já que $_SESSION é automaticamente registrada. Se o seu script usa session_register(), ele não irá funcionar em ambientes onde a diretiva de configuração register_globals esteja desabilitada.

Nota importante sobre register_globals:: Desde o PHP 4.2.0, o valor padrão para a diretiva register_globals é off. A comunidade do PHP encoraja a todos a não alterarem esta diretiva mas, ao invés, utilizar superglobals.

Cuidado

Isto registra uma variável global. Se você quiser registrar uma variável dntro de uma função, você deve certificar-se de faze-la global, usando global ou usando a matriz $GLOBALS[], ou usando a matriz especial para seções($_SESSION) como mostrado abaixo.

Cuidado

Se você esta usando $_SESSION (ou $HTTP_SESSION_VARS), não use session_register(), session_is_registered() e session_unregister().

Esta função retorna TRUE quando todas de suas variáveis são registradas sem erro.

Se session_start() não foi chamada antes desta função ser chamada, uma chamada implícita para session_start() sem parâmetros será feita. $_SESSION não imita isto e necessita que session_start() seja chamada antes de usar.

Você também pode criar variáveis de sessão simplesmente definindo o membro apropriado de $_SESSION ou $HTTP_SESSION_VARS (PHP < 4.1.0) matriz.

<?php
// O uso de session_register() esta obsoleto
$barney = "Um grande dinossauro púrpura.";
session_register("barney");
// O uso de $_SESSION é recomendado, apartir do PHP 4.1.0
$_SESSION["zim"] = "Um invasor de outro planeta.";

// A maneira antiga é usar $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "Ele conseguiu calças ajustadas.";
?>

Nota: Não é possível registrar atualmente variáveis resource numa sessão. Por exemplo, você não pode criar uma conexão para um banco de dados e guardar a id de conexão como uma variável de sessão e esperar que a conexão ainda esteja válida na próxima vez que a sessão estiver restaurada. Funções do PHP que retornam uma resource são identificadas por conterem um retorno do tipo resource em suas definições de função. Uma lista de funções que retornam resources estão disponíveis no apêndice tipos resources.

Se $_SESSION (ou $HTTP_SESSION_VARS para PHP 4.0.6 ou inferior) é usada, para variável definida variable com $_SESSION. i.e. $_SESSION['var'] = 'ABC';

Veja também session_is_registered(), session_unregister() e $_SESSION.

Anterior | Principal | Próxima
session_regenerate_id | Acima | session_save_path


session_save_path

(PHP 4 , PHP 5)

session_save_path -- Obtém e/ou define o save path da sessão atual

Descrição

string session_save_path ( [string path])

session_save_path() retorna o path do diretório atual usado para salvar os dados de sessão. Se path está especificado, o path para aqueles dados que estão salvo será mudado. session_save_path() precisa ser usada antes de session_start() para este uso.

Nota: Em alguns sistemas operacionais, você pode querer especificar um path em um arquivo de sistema que cuida de muitos arquivos pequenos com eficiência. Por exemplo, em Linux, reiserfs pode oferecer uma performance melhor do que ext2fs.

Veja também a diretiva de configuração session.save_path.

Anterior | Principal | Próxima
session_register | Acima | session_set_cookie_params


session_set_cookie_params

(PHP 4 , PHP 5)

session_set_cookie_params -- Define os parâmetros do cookie de sessão

Descrição

void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]])

Define os parâmetros de cookie definidos no arquivo php.ini . O efeito desta função apenas continua até a duração do script.

Nota: O parâmetro secure foi adicionado no PHP 4.0.4.

Veja também as diretivas de configuração session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure e session_get_cookie_params().

Anterior | Principal | Próxima
session_save_path | Acima | session_set_save_handler


session_set_save_handler

(PHP 4 , PHP 5)

session_set_save_handler -- Define a sequência de funções de armazenamento

Descrição

bool session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc)

session_set_save_handler() define a sequência de funções de armazenamento que é usada para guardar e devolver dados associados à sessão. Esta é mais usual quando um quando um método de armazenamento, a não ser que aquele oferecido por sessões do PHP seja preferível. i.e. Guardar dados de sessão em um banco de dados local. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: A função "write" handler não é executada até depois que o fluxo de saída esteja fechado. Assim, a saída de instruções debugging na função "write" handler poderá nunca ser vista pelo navegador. Se a saída debugging é necessária, ao invés disso é sugerido que a saída debug seja escrita para um arquivo.

Nota: A função "write" handler não é executada se a sessão não contém dados; isto se aplica sempre se variáveis de sessão vazias são registradas. Esta difere à sessão padrão de save handler baseado em arquivos, que cria arquivos de sessão vazios.

O seguinte exemplo oferece um aramzenamento de sessão baseado em arquivos similar a sessões de PHP padrões save handler files. Este exemplo poderia facilmente ser extendido para outras bases de dados usando seu gerente de banco de dados favorito suportado pelo PHP.

A função "Read" deve retornar um valor string sempre que fizer o save handler trabalhar como o esperado. Retorna uma string vazia se não existe dados para ler. Retorna valores de outros handlers que estejam convertidos para expressões booleanas. TRUE em sucesso, FALSE em falha.

Exemplo 1. session_set_save_handler() exemplo

<?php
function open ($save_path, $session_name) {
  global $sess_save_path, $sess_session_name;

  $sess_save_path = $save_path;
  $sess_session_name = $session_name;
  return(true);
}

function close() {
  return(true);
}

function read ($id) {
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
  } else {
    return(""); // Deve retornar "" aqui.
  }

}

function write ($id, $sess_data) {
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
  } else {
    return(false);
  }

}

function destroy ($id) {
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

/************************************************
 * AVISO - você precisa implementar alguns tipos*
 *  de rotinas de garbage collection aqui.      *
 ************************************************/
function gc ($maxlifetime) {
  return true;
}

session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");

session_start();

// Use o resto da sessão normalmente

?>

Veja também a diretiva de configuração session.save_handler.

Anterior | Principal | Próxima
session_set_cookie_params | Acima | session_start


session_start

(PHP 4 , PHP 5)

session_start -- Inicia dados de sessão

Descrição

bool session_start ( void )

session_start() cria uma sessão (ou resume a sessão atual baseada numa id de sessão sendo passada via uma variável GET ou um cookie).

Esta função sempre retorna TRUE.

Nota: Se você está usando sessões baseadas em cookie, você deve chamar session_start() antes de qualquer coisa ser exibida para o navegador.

Exemplo 1. Um exemplo de seção: page1.php

<?php
// page1.php

session_start();

echo 'Bem vindo a pagina #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Funciona se o cookie de seção foi aceito
echo '<br /><a href="page2.php">page 2</a>';

// Ou talves passando o ID da seção se necessário
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

Após ver page1.php, a segunda pagina page2.php irá magicamente conter os dados da seção. Leia Uso de seções para informações sobre propagando ids de seções já que, por exemplo, explica tudo sobre a constante SID.

Exemplo 2. Um exemplo de seção: page2.php

<?php
// page2.php

session_start();

echo 'Bem vindo a pagina #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// Você pode querer usar o SID aqui, como fissemos em page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

Se você quiser usar uma seção com nomes, você deve usar session_name() antes de session_start().

session_start() irá registrar um handler de saída interno para URL reescrevendo quando trans-sid está habilitada. Se um usuário utiliza ob_gzhandler ou ob_start(), a ordem do handler de exibição é importante para a exibição apropriada. Por exemplo, usuário deve registrar ob_gzhandler antes da sessão começar.

Nota: Uso de zlib.output_compression é mais recomendado do que ob_gzhandler

Nota: Apartir do PHP 4.3.3, usar session_start() quando a seção já tiver sido iniciada irá resultar em um erro de nível. E_NOTICE. Também, o segundo início de seção será simplesmente ignorado.

Veja também $_SESSION, session.auto_start, e session_id().

Anterior | Principal | Próxima
session_set_save_handler | Acima | session_unregister


session_unregister

(PHP 4 , PHP 5)

session_unregister -- Desregistra uma variável global da sessão atual

Descrição

bool session_unregister ( string name)

session_unregister() desregistra a variável global nomeada name da sessão atual.

Esta função retorna TRUE quando funciona corretamente.

Nota: Se $_SESSION (ou $HTTP_SESSION_VARS para PHP 4.0.6 ou inferior) é usada, use unset() para desregistrar uma variável de sessão. Não use unset() $_SESSION já que irá desabilitar a função especial de superglobal de $_SESSION.

Cuidado

Esta função não elimina a variável global correspondente por name, ela apenas evita que a variável faça parte da sessão. Você deve chamar unset() para eliminar a variável global correspondente.

Cuidado

Se você está usando $_SESSION (ou $HTTP_SESSION_VARS), não use session_register(), session_is_registered() e session_unregister().

Anterior | Principal | Próxima
session_start | Acima | session_unset


session_unset

(PHP 4 , PHP 5)

session_unset -- Libera todas as variáveis de sessão

Descrição

void session_unset ( void )

A função session_unset() libera todas as variáveis da sessão atualmente registradas.

Nota: Se $_SESSION (ou $HTTP_SESSION_VARS para PHP 4.0.6 ou inferior) é usada, utilize unset() para desregistrar a variável da sessão. Ex. unset ($_SESSION['varname']);.

Cuidado

NÃO elimina completamente $_SESSION com unset($_SESSION) enquanto esta desabilitará o registro de variáveis de sessão pela $_SESSION superglobal.

Anterior | Principal | Próxima
session_unregister | Acima | session_write_close


session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_close -- Escreve dados de sessão e termina a sessão

Descrição

void session_write_close ( void )

Termina a sessão atual e guarda os dados.

Os dados de sessão sã geralmente guardados depois que o script termina sem a necessidade de chamar session_write_close(), mas como dados de sessão são trancados para evitar escritas concorrentes, apenas um script pode operar em uma sessão de cada vez. Quando usando framesets junto com sessões você irá experimentar os frames sendo lidos um a um devido a esta trava. Você pode reduzir o tempo necessário para ler todos os frames terminando a sessão tão logo todas as mudanças das variáveis de sessão estejam feitas.

Anterior | Principal | Próxima
session_unset | Acima | Funções de Memória Compartilhada


Funções de Memória Compartilhada

Manual do PHP
Anterior Próxima

XCVII. Funções de Memória Compartilhada

Introdução

Shmop é um fácil caminho para usar funções que permitem o PHP ler, escrever, criar e deletar segmentos de memória compartilhada UNIX. Note que versões do Windows anteriores ao Windows 2000 não suportam memória compartilhada.

Nota: No PHP 4.0.3, estas funções estão prefixadas por shm ao invés de shmop.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Para usar shmop você precisará compilar o PHP com o parâmetro --enable-shmop na seu configure.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

Exemplo 1. Visão Geral de Operações de Memória Compartilhada

<?php

// Create 100 byte shared memory block with system id if 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
    echo "Couldn't create shared memory segment\n";
}

// Get shared memory block's size
$shm_size = shmop_size($shm_id);
echo "SHM Block Size: ".$shm_size. " has been created.\n";

// Lets write a test string into shared memory
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if($shm_bytes_written != strlen("my shared memory block")) {
    echo "Couldn't write the entire length of data\n";
}

// Now lets read the string back
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
    echo "Couldn't read from shared memory block\n";
}
echo "The data inside shared memory was: ".$my_string."\n";

//Now lets delete the block and close the shared memory segment
if(!shmop_delete($shm_id)) {
    echo "Couldn't mark shared memory block for deletion.";
}
shmop_close($shm_id);

?>

Índice
shmop_close -- Fecha um bloco de memória compartilhada
shmop_delete -- Deleta um bloco de memória compartilhada
shmop_open -- Cria ou abre um bloco de memória compartilhada
shmop_read -- Lê dados de um bloco de memória compartilhada
shmop_size -- Pega o tamanho do bloco de memória compartilhada
shmop_write -- Escreve dados em um bloco de memória compartilhada

Anterior | Principal | Próxima
session_write_close | Acima | shmop_close


shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_close -- Fecha um bloco de memória compartilhada

Descrição

int shmop_close ( int shmid)

shmop_close() é usada para fechar um bloco de memória compartilhada.

shmop_close() pega o shmid, que é o identificador do bloco de memória compartilhada criado por shmop_open().

Exemplo 1. Fechando um bloco de memória compartilhada

<?php
shmop_close($shm_id);
?>

Esse exemplo irá fechar o bloco de memória compartilhada identificado por $shm_id.

Anterior | Principal | Próxima
Funções de Memória Compartilhada | Acima | shmop_delete


shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_delete -- Deleta um bloco de memória compartilhada

Descrição

int shmop_delete ( int shmid)

shmop_delete() é usada para deletar um bloco de memória compartilhada.

shmop_delete() pega o shmid, que é o identificador do bloco de memória compartilhada criado por shmop_open(). Em caso de sucesso 1 é retornado, em caso de falha 0 é retornado.

Exemplo 1. Deletando um bloco de memória compartilhada

<?php
shmop_delete($shm_id);
?>

Esse exemplo irá deletar um bloco de memória compartilhada identificado por $shm_id.

Anterior | Principal | Próxima
shmop_close | Acima | shmop_open


shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open -- Cria ou abre um bloco de memória compartilhada

Descrição

int shmop_open ( int key, string flags, int mode, int size)

shmop_open() pode criar ou abrir um bloco de memória compartilhada.

shmop_open() pega 4 parâmetros: chave, que é usado pelo id do sistema para o bloco de memória compartilhada, esse parâmetro pode ser passado como decimal ou hexadecimal. O segundo parâmetro são flags que você pode usar:

  • "a" para acesso (seta SHM_RDONLY para shmat) use essa flag quando você precisar abrir um bloco de memória compartilhada existente como somente leitura

  • "c" para criar (seta IPC_CREATE) use essa flag quando você precisar criar um novo bloco de memória compartilhada ou se um segmento com a mesma chave existir, tente abrir isso para ler e escrever

  • "w" para ler & acesso à escrita use essa flag quando você precisar ler e escrever para um segmento de bloco de memória compartilhada, use essa flag na maior parte dos casos.

  • "n" cria um novo segmento de memória (seta IPC_CREATE|IPC_EXCL) use essa flag quando você quer criar um novo segmento de memória compartilhada mas se um já existir com a mesma flag, irá falhar. Isso é útil para propósitos de segurança, usando isso você pode previnir rápidos exploits.

O terceiro parâmetro é o modo, que são permissões que você deseja designar para o seu segmento de memória, estas são as mesmas permissões para o arquivo. Permissões precisam ser passadas no formato octal ex. 0644. O último parâmetro é o tamanho do bloco de memória compartilhada que você deseja criar em bytes.

Nota: Nota: o 3rd e 4th devem ser colocados como 0 se você está abrindo um segmento de memória existente. Em caso de sucesso shmop_open() irá retornar um id que você pode usar para acessar o segmento de memória compartilhada que você criou.

Exemplo 1. Cria um novo bloco de memória compartilhada

<?php
$shm_key = ftok(__FILE__,'t');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

Esse exemplo abre um bloco de memória compartilhada com um id do sistema retornado por ftok().

Anterior | Principal | Próxima
shmop_delete | Acima | shmop_read


shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_read -- Lê dados de um bloco de memória compartilhada

Descrição

string shmop_read ( int shmid, int start, int count)

shmop_read() irá ler uma string de um bloco de memória compartilhada.

shmop_read() pega 3 parâmetros: shmid, que é o identificador do bloco de memória compartilhada criado por shmop_open(), e o último que começa lendo e contando o número de bytes para ler.

Exemplo 1. Lendo um bloco de memória compartilhada

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

Esse exemplo irá ler 50 bytes de um bloco de memória compartilhada e armazenaros dados dentro de $shm_data.

Anterior | Principal | Próxima
shmop_open | Acima | shmop_size


shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_size -- Pega o tamanho do bloco de memória compartilhada

Descrição

int shmop_size ( int shmid)

shmop_size() é usada para pegar o tamanho, em bytes do bloco de memória compartilhada.

shmop_size() pega o shmid, que é o identificador do bloco de memória compartilhada criado por shmop_open(), a função irá retornar um inteiro, que representa o número de bytes que o bloco de memória compartilhada ocupa.

Exemplo 1. Pegando o tamanho do bloco de memória compartilhada

<?php
$shm_size = shmop_size($shm_id);
?>

Isso irá trazer o tamanho de um bloco de memória compartilhada identificado por $shm_id em $shm_size.

Anterior | Principal | Próxima
shmop_read | Acima | shmop_write


shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write -- Escreve dados em um bloco de memória compartilhada

Descrição

int shmop_write ( int shmid, string data, int offset)

shmop_write() irá escrever uma string em um bloco de memória compartilhada.

shmop_write() pega 3 parâmetros: shmid, que é o identificador do bloco de memória compartilhada criado por shmop_open(), dados, uma string que você quer escrever em um bloco de memória compartilhada e o último, que especifica onde começa a escrita de dados dentro do segmento de memória compartilhada.

Exemplo 1. Escrevendo em um bloco de memória compartilhada

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

Esse exemplo irá escrever dados dentro de $my_string em um bloco de memória compartilhada, $shm_bytes_written irá conter o número de bytes escritos.

Anterior | Principal | Próxima
shmop_size | Acima | SimpleXML functions


SimpleXML functions

Manual do PHP
Anterior Próxima

XCVIII. SimpleXML functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

The SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

Instalação

This extension is only available if PHP was configured with --enable-simplexml. The PHP configuration script does this by default.

Exemplos

Many examples in this reference require an XML string. Instead of repeating this string in every example, we put it into a file which we include in each example. This included file is shown in the following example section. Alternatively, you could create an XML document and read it with simplexml_load_file().

Exemplo 1. Include file example.php with XML string

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.

Exemplo 2. Getting <plot>

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

echo $xml->movie[0]->plot; // "So this language. It's like..."
?>

Exemplo 3. Accessing non-unique elements in SimpleXML

When multiple instances of an element exist as children of a single parent element, normal iteration techniques apply.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* For each <movie> node, we echo a separate <plot>. */
foreach ($xml->movie as $movie) {
   echo $movie->plot, '<br />';
}

?>

Exemplo 4. Using attributes

So far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* Access the <rating> nodes of the first movie.
 * Output the rating scale, too. */
foreach ($xml->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Get attributes as element indices
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

Exemplo 5. Comparing Elements and Attributes with Text

To compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using (string). Otherwise, PHP treats the element as an object.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
    print 'My favorite movie.';
}

htmlentities((string) $xml->movie->title);
?>

Exemplo 6. Using Xpath

SimpleXML includes builtin Xpath support. To find all <character> elements:

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

foreach ($xml->xpath('//character') as $character) {
    echo $character->name, 'played by ', $character->actor, '<br />';
}
?>

'//' serves as a wildcard. To specify absolute paths, omit one of the slashes.

Exemplo 7. Setting values

Data in SimpleXML doesn't have to be constant. The object allows for manipulation of all of its elements.

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

$xml->movie[0]->actor[0]->age = '21';

echo $xml->asXML();
?>

The above code will output a new XML document, just like the original, except that the new XML will define Ms. Coder's age as 21.

Exemplo 8. DOM Interoperability

PHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML.

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
     echo 'Error while parsing the document';
     exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Índice
simplexml_element->asXML -- Return a well-formed XML string based on SimpleXML element.
simplexml_element->attributes -- Identifies an element's attributes.
simplexml_element->children -- Finds children of given node.
simplexml_element->xpath -- Runs Xpath query on XML data.
simplexml_import_dom -- Get a simplexml_element object from a DOM node.
simplexml_load_file -- Interprets an XML file into an object.
simplexml_load_string -- Interprets a string of XML into an object.

Anterior | Principal | Próxima
shmop_write | Acima | simplexml_element->asXML


simplexml_element->asXML

(no version information, might be only in CVS)

simplexml_element->asXML -- Return a well-formed XML string based on SimpleXML element.

Description

string simplexml_element->asXML ( void )

The asXML method formats the parent object's data in XML version 1.0.

Exemplo 1. Get XML

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = simplexml_load_string($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

asXML also works on Xpath results:

Exemplo 2. Using asXML() on Xpath results

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML(); // <c>text</c> and <c>stuff</c>
}
?>

Anterior | Principal | Próxima
SimpleXML functions | Acima | simplexml_element->attributes


simplexml_element->attributes

(no version information, might be only in CVS)

simplexml_element->attributes -- Identifies an element's attributes.

Description

object simplexml_element simplexml_element->attributes ( string data)

This function provides the attributes and values defined within an xml tag.

Nota: SimpleXML tem uma regra quando do acréscimo de propriedades iterarivas na maioria dos métodos. Eles não podem ser visualizados com var_dump() nem nada que possa visualizar objetos.

Exemplo 1. Interpret an XML string

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

This script will display:

name="one"
game="lonely"

Anterior | Principal | Próxima
simplexml_element->asXML | Acima | simplexml_element->children


simplexml_element->children

(no version information, might be only in CVS)

simplexml_element->children -- Finds children of given node.

Description

object simplexml_element simplexml_element->children ( void )

This method finds the children of the element of which it is a member. The result follows normal iteration rules.

Nota: SimpleXML tem uma regra quando do acréscimo de propriedades iterarivas na maioria dos métodos. Eles não podem ser visualizados com var_dump() nem nada que possa visualizar objetos.

Exemplo 1. Traversing a children() pseudo-array

<?php
$xml = simplexml_load_string(
'<person>
 <child role="son">
  <child role="daughter"/>
 </child>
 <child role="daughter">
  <child role="son">
   <child role="son"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' The person begot a ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ' who begot a ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' and that ' . $third_gen['role'] .
                ' begot a ' . $fourth_gen['role'];
        }
    }
}
?>

This script will output:

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Anterior | Principal | Próxima
simplexml_element->attributes | Acima | simplexml_element->xpath


simplexml_element->xpath

(no version information, might be only in CVS)

simplexml_element->xpath -- Runs Xpath query on XML data.

Description

array simplexml_element->xpath ( string path)

The xpath method searches the SimpleXML node for children matching the Xpath path. It always returns an array of simplexml_element objects.

Exemplo 1. Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = simplexml_load_string($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Relative paths also work... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

This script will display:

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notice that the two results are equal.

Anterior | Principal | Próxima
simplexml_element->children | Acima | simplexml_import_dom


simplexml_import_dom

(PHP 5)

simplexml_import_dom -- Get a simplexml_element object from a DOM node.

Description

object simplexml_element simplexml_import_dom ( domNode node)

This function takes a node of a DOM document and makes it into a SimpleXML node. This new object can then be used as a native SimpleXML element. If any errors occur, it returns FALSE.

Exemplo 1. Import DOM

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
    echo 'Error while parsing the document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // blah
?>

Anterior | Principal | Próxima
simplexml_element->xpath | Acima | simplexml_load_file


simplexml_load_file

(PHP 5)

simplexml_load_file -- Interprets an XML file into an object.

Description

object simplexml_element simplexml_load_file ( string filename)

This function will convert the well-formed XML document in the file specified by filename to an object of class simplexml_element. If any errors occur during file access or interpretation, the function returns FALSE.

Exemplo 1. Interpret an XML document

<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    var_dump($xml);
} else {
    exit('Failed to open test.xml.');
}
?>

This script will display, on success:

simplexml_element Object
(
  [title] => Example Title
  ...
)

At this point, you can go about using $xml->title and any other elements.

See also: simplexml_load_string()

Anterior | Principal | Próxima
simplexml_import_dom | Acima | simplexml_load_string


simplexml_load_string

(PHP 5)

simplexml_load_string -- Interprets a string of XML into an object.

Description

object simplexml_element simplexml_load_string ( string data)

This function will take the well-formed xml string data and return an object with properties containing the data held within the xml document. If any errors occur, it returns FALSE.

Exemplo 1. Interpret an XML string

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</document>
XML;

$xml = simplexml_load_string($string);

var_dump($xml);
?>

This script will display:

simplexml_element Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

At this point, you can go about using $xml->body and such.

See also: simplexml_load_file().

Anterior | Principal | Próxima
simplexml_load_file | Acima | SOAP Functions


SOAP Functions

Manual do PHP
Anterior Próxima

XCIX. SOAP Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications.

Requisitos

This extension makes use of the GNOME xml library. Download and install this library. You will need at least libxml-2.5.4.

Instalação

This extension is only available if PHP was configured with --enable-soap.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. SOAP Configuration Options

Name | Default | Changeable
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Breve descrição das diretivas de configuração.

soap.wsdl_cache_enabled boolean

Enables or disables WSDL caching feature.

soap.wsdl_cache_dir string

Sets the directory name where SOAP extension will put cache files.

soap.wsdl_cache_ttl int

(time to live) Sets the number of second while cached file will be used instead of original one.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

SOAP_1_1 (integer)

SOAP_1_2 (integer)

SOAP_PERSISTENCE_SESSION (integer)

SOAP_PERSISTENCE_REQUEST (integer)

SOAP_FUNCTIONS_ALL (integer)

SOAP_ENCODED (integer)

SOAP_LITERAL (integer)

SOAP_RPC (integer)

SOAP_DOCUMENT (integer)

SOAP_ACTOR_NEXT (integer)

SOAP_ACTOR_NONE (integer)

SOAP_ACTOR_UNLIMATERECEIVER (integer)

UNKNOWN_TYPE (integer)

XSD_STRING (integer)

XSD_BOOLEAN (integer)

XSD_DECIMAL (integer)

XSD_FLOAT (integer)

XSD_DOUBLE (integer)

XSD_DURATION (integer)

XSD_DATETIME (integer)

XSD_TIME (integer)

XSD_DATE (integer)

XSD_GYEARMONTH (integer)

XSD_GYEAR (integer)

XSD_GMONTHDAY (integer)

XSD_GDAY (integer)

XSD_GMONTH (integer)

XSD_HEXBINARY (integer)

XSD_BASE64BINARY (integer)

XSD_ANYURI (integer)

XSD_QNAME (integer)

XSD_NOTATION (integer)

XSD_NORMALIZEDSTRING (integer)

XSD_TOKEN (integer)

XSD_LANGUAGE (integer)

XSD_NMTOKEN (integer)

XSD_NAME (integer)

XSD_NCNAME (integer)

XSD_ID (integer)

XSD_IDREF (integer)

XSD_IDREFS (integer)

XSD_ENTITY (integer)

XSD_ENTITIES (integer)

XSD_INTEGER (integer)

XSD_NONPOSITIVEINTEGER (integer)

XSD_NEGATIVEINTEGER (integer)

XSD_LONG (integer)

XSD_INT (integer)

XSD_SHORT (integer)

XSD_BYTE (integer)

XSD_NONNEGATIVEINTEGER (integer)

XSD_UNSIGNEDLONG (integer)

XSD_UNSIGNEDINT (integer)

XSD_UNSIGNEDSHORT (integer)

XSD_UNSIGNEDBYTE (integer)

XSD_POSITIVEINTEGER (integer)

XSD_NMTOKENS (integer)

XSD_ANYTYPE (integer)

SOAP_ENC_OBJECT (integer)

SOAP_ENC_ARRAY (integer)

XSD_1999_TIMEINSTANT (integer)

XSD_NAMESPACE (string)

XSD_1999_NAMESPACE (string)

Índice
SoapClient::SoapClient -- SoapClient constructor
SoapClient::__call -- Calls a SOAP function
SoapClient::__getFunctions -- Returns list of SOAP functions
SoapClient::__getLastRequest -- Returns last SOAP request
SoapClient::__getLastResponse -- Returns last SOAP response
SoapClient::__getTypes -- Returns list of SOAP types
SoapFault::SoapFault -- SoapFault constructor
SoapHeader::SoapHeader -- SoapHeader constructor
SoapParam::SoapParam -- SoapParam constructor
SoapServer::SoapServer -- SoapServer constructor
SoapServer::addFunction -- Adds one or several functions those will handle SOAP requests
SoapServer::getFunctions -- Returns list of defined functions
SoapServer::handle -- Handles a SOAP request
SoapServer::setClass -- Sets class which will handle SOAP requests
SoapServer::setPersistence -- Sets persistence mode of SoapServer
SoapVar::SoapVar -- SoapVar constructor
is_soap_fault -- Checks if SOAP call was failed

Anterior | Principal | Próxima
simplexml_load_string | Acima | SoapClient::SoapClient


SoapClient::SoapClient

(no version information, might be only in CVS)

SoapClient::SoapClient -- SoapClient constructor

Description

object SoapClient::SoapClient ( mixed wsdl [, array options])

This constructor allows creating SoapClient objects in WSDL or non-WSDL mode. The first case requires the URI of WSDL file as the first parameter and an optional options array. The second case requires NULL as the first parameter and the options array with location and uri options set, where location is a URL to request and uri is a target namespace of the SOAP service.

The style and use options only work in non-WSDL mode. In WSDL mode, they comes from the WSDL file.

The soap_version option specifies whether to use SOAP 1.1, or SOAP 1.2 client.

For HTTP authentication, you may use the login and password options. For making a HTTP connection through a proxy server, use the options proxy_host, proxy_port, proxy_login and proxy_password.

Exemplo 1. SoapClient examples

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

?>

Anterior | Principal | Próxima
SOAP Functions | Acima | SoapClient::__call


SoapClient::__call

(no version information, might be only in CVS)

SoapClient::__call -- Calls a SOAP function

Description

mixed SoapClient::__call ( string function_name [, array arguments [, array options [, array input_headers [, array output_headers]]]])

This is a low level API function to make a SOAP call. Usually in WSDL mode you can simply call SOAP functions as SoapClient methods. It is useful for non-WSDL mode when soapaction is unknown, uri differs from the default or when you like to send and/or receive SOAP Headers. On error, a call to a SOAP function can cause PHP exceptions or return a SoapFault object if exceptions was disabled. To check if the function call failed catch the SoapFault exceptions or check the result with the is_soap_fault() function.

SOAP functions may return one or several values. In the first case it will return just the value of output parameter, in the second it will return the associative array with named output parameters.

Exemplo 1. SoapClient::__call() examples

<?php
$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
$client->__call("SomeFunction", array($a, $b, $c));
$client->__call("SomeFunction", array($a, $b, $c), NULL,
                new SoapHeader(...), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__call("SomeFunction", array($a, $b, $c));
$client->__call("SomeFunction", array($a, $b, $c),
                 array('soapaction' => 'some_action',
                       'uri'        => 'some_uri'));
?>

See also
SoapClient::SoapClient(),
SoapParam::SoapParam(),
SoapVar::SoapVar(),
SoapHeader::SoapHeader(),
SoapFault::SoapFault(), and
is_soap_fault().

Anterior | Principal | Próxima
SoapClient::SoapClient | Acima | SoapClient::__getFunctions


SoapClient::__getFunctions

(no version information, might be only in CVS)

SoapClient::__getFunctions -- Returns list of SOAP functions

Description

array SoapClient::__getFunctions ( void )

This function works only in WSDL mode.

Exemplo 1. SoapClient::__getFunctions() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getFunctions());
?>

See also SoapClient::SoapClient().

Anterior | Principal | Próxima
SoapClient::__call | Acima | SoapClient::__getLastRequest


SoapClient::__getLastRequest

(no version information, might be only in CVS)

SoapClient::__getLastRequest -- Returns last SOAP request

Description

string SoapClient::__getLastRequest ( void )

This function works only with SoapClient which was created with the trace option.

Exemplo 1. SoapClient::__getLastRequest() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction(...);
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

See also SoapClient::SoapClient().

Anterior | Principal | Próxima
SoapClient::__getFunctions | Acima | SoapClient::__getLastResponse


SoapClient::__getLastResponse

(no version information, might be only in CVS)

SoapClient::__getLastResponse -- Returns last SOAP response

Description

object SoapClient::__getLastResponse ( void )

This function works only with SoapClient which was created with the trace option.

Exemplo 1. SoapClient::__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction(...);
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
?>

See also SoapClient::SoapClient().

Anterior | Principal | Próxima
SoapClient::__getLastRequest | Acima | SoapClient::__getTypes


SoapClient::__getTypes

(no version information, might be only in CVS)

SoapClient::__getTypes -- Returns list of SOAP types

Description

array SoapClient::__getTypes ( void )

This function works only in WSDL mode.

Exemplo 1. SoapClient::__getTypes() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getTypes());
?>

See also SoapClient::SoapClient().

Anterior | Principal | Próxima
SoapClient::__getLastResponse | Acima | SoapFault::SoapFault


SoapFault::SoapFault

(no version information, might be only in CVS)

SoapFault::SoapFault -- SoapFault constructor

Description

object SoapFault::SoapFault ( string faultcode, string faultstring [, string faultactor [, mixed detail [, string faultname [, mixed headerfault]]]])

This class is useful when you would like to send SOAP fault responses from the PHP handler. faultcode, faultstring, faultactor and details are standard elements of SOAP Fault; faultname is an optional parameter that can be used to select proper fault encoding from WSDL; headerfault is an optional parameter that can be used during SOAP header handling to report an error in the response header.

Exemplo 1. Some examples

<?php
function test($x)
{
    return new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

It is possible to use PHP exception mechanism to throw SOAP Fault.

Exemplo 2. Some examples

<?php
function test($x)
{
    throw new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

See also
SoapClient::SoapClient(),
SoapClient::__call(),
SoapParam::SoapParam(),
SoapVar::SoapVar(), and
is_soap_fault().

Anterior | Principal | Próxima
SoapClient::__getTypes | Acima | SoapHeader::SoapHeader


SoapHeader::SoapHeader

(no version information, might be only in CVS)

SoapHeader::SoapHeader -- SoapHeader constructor

Description

object SoapHeader::SoapHeader ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]])

SoapHeader is a special low-level class for passing or returning SOAP headers. It is just a data holder and it does not have any special methods except a constructor. It can be used in the SoapClient::__call() method to pass a SOAP header or in a SOAP header handler to return the header in a SOAP response. namespace and name are namespace and name of the SOAP header element. data is a SOAP header's content. It can be a PHP value or SoapVar object. mustUnderstand and actor are values for mustUnderstand and actor attributes of this SOAP Header element.

Exemplo 1. Some examples

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__call("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

See also
SoapClient::__call(),
SoapParam::SoapParam(), and
SoapVar::SoapVar().

Anterior | Principal | Próxima
SoapFault::SoapFault | Acima | SoapParam::SoapParam


SoapParam::SoapParam

(no version information, might be only in CVS)

SoapParam::SoapParam -- SoapParam constructor

Description

object SoapParam::SoapParam ( mixed data, string name)

SoapParam is a special low-level class for naming parameters and return ing values in non-WSDL mode. It is just a data holder and it does not have any special methods except the constructor. The constructor takes data to pass or return and name. It is possible to pass parameters directly as PHP values, but in this case it will be named as paramN and the SOAP Service may not understand them.

Exemplo 1. Some examples

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

See also SoapClient::__call(), and SoapVar::SoapVar().

Anterior | Principal | Próxima
SoapHeader::SoapHeader | Acima | SoapServer::SoapServer


SoapServer::SoapServer

(no version information, might be only in CVS)

SoapServer::SoapServer -- SoapServer constructor

Description

object SoapServer::SoapServer ( mixed wsdl [, array options])

This constuctor allows the creatiion of SoapServer objects in WSDL or non-WSDL mode. In the first case, wsdl must be set to the URI of a WSDL file. In the second case, wsdl must be set to NULL and the uri option must be set. Additional options allow setting a default SOAP version (soap_version) and actor URI (actor).

Exemplo 1. Some examples

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

?>

Anterior | Principal | Próxima
SoapParam::SoapParam | Acima | SoapServer::addFunction


SoapServer::addFunction

(no version information, might be only in CVS)

SoapServer::addFunction -- Adds one or several functions those will handle SOAP requests

Description

void SoapServer::addFunction ( mixed functions)

Exports one or more functions for remote clients.

To export one function, pass the function name into the functions parameter as a string. To export several functions pass an array of function names, and to export all functions pass a special constant SOAP_FUNCTIONS_ALL.

functions must receive all input arguments in the same order as defined in the WSDL file (They should not receive any output parameters as arguments) and return one or more values. To return several values they must return an array with named output parameters.

Exemplo 1. Some examples

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

See also SoapServer::SoapServer(), and SoapServer::SetClass().

Anterior | Principal | Próxima
SoapServer::SoapServer | Acima | SoapServer::getFunctions


SoapServer::getFunctions

(no version information, might be only in CVS)

SoapServer::getFunctions -- Returns list of defined functions

Description

array SoapServer::getFunctions ( void )

This functions returns the list of all functions which was added by SoapServer::addFunction() or SoapServer::setCalss().

Exemplo 1. Some examples

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "This SOAP server can handle following functions: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

See also
SoapServer::SoapServer(),
SoapServer::addFunction(), and
SoapServer::SetClass().

Anterior | Principal | Próxima
SoapServer::addFunction | Acima | SoapServer::handle


SoapServer::handle

(no version information, might be only in CVS)

SoapServer::handle -- Handles a SOAP request

Description

void SoapServer::handle ( [string soap_request])

Processes a SOAP request, calls necessary functions, and sends a response back. It assumes a request in input parameter soap_request or in the global $HTTP_RAW_POST_DATA PHP variable if the argument is omitted.

Exemplo 1. Some examples

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

See also SoapServer::SoapServer().

Anterior | Principal | Próxima
SoapServer::getFunctions | Acima | SoapServer::setClass


SoapServer::setClass

(no version information, might be only in CVS)

SoapServer::setClass -- Sets class which will handle SOAP requests

Description

void SoapServer::setClass ( string class_name [, mixed args])

Exports all methods from specified class. Additional parameters args will be passed to the default class constructor during object creation. The object can be made persistent across request for a given PHP session with the SoapServer::setPersistence() method.

Exemplo 1. Some examples

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?>

See also
SoapServer::SoapServer(),
SoapServer::addFunction(), and
SoapServer::setPersistence().

Anterior | Principal | Próxima
SoapServer::handle | Acima | SoapServer::setPersistence


SoapServer::setPersistence

(no version information, might be only in CVS)

SoapServer::setPersistence -- Sets persistence mode of SoapServer

Description

void SoapServer::setPersistence ( int mode)

This function allows saving data between requests in a PHP session. It works only with a server that exports functions from a class with SoapServer::setClass().

Exemplo 1. Some examples

<?php

$server->setPersistence(SOAP_PERSISTENCE_SESSION);

$server->setPersistence(SOAP_PERSISTENCE_REQUEST);

?>

See also SoapServer::SoapServer(), and SoapServer::SetClass().

Anterior | Principal | Próxima
SoapServer::setClass | Acima | SoapVar::SoapVar


SoapVar::SoapVar

(no version information, might be only in CVS)

SoapVar::SoapVar -- SoapVar constructor

Description

object SoapVar::SoapVar ( mixed data, int encoding [, string type_name [, string type_namespace [, string node_name [, string node_namespace]]]])

SoapVar is a special low-level class for encoding parameters and returning values in non-WSDL mode. It is just a data holder and does not have any special methods except the constructor. It is useful when you would like to set the type property in SOAP request or response. The constructor takes data to pass or return, encoding ID to encode it (see XSD_... constants) and as option type name and namespace and XML node name and namespace.

Exemplo 1. Some examples

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

See also SoapClient::__call() and SoapParam::SoapParam().

Anterior | Principal | Próxima
SoapServer::setPersistence | Acima | is_soap_fault


is_soap_fault

(PHP 5)

is_soap_fault -- Checks if SOAP call was failed

Description

bool is_soap_fault ( mixed obj)

This function is useful when you like to check if the SOAP call failed, but don't like to use exceptions. To use it you must create a SoapClient object with exceptions option set to zero or FALSE. In this case, the SOAP method will return a special SoapFault object which encapsulates the fault details (faultcode, faultstring, faultactor and faultdetails).

If exceptions is not set then SOAP call will throw an exception on error. is_soap_fault() checks if the given parameter is a SoapFault object.

Exemplo 1. is_soap_fault() example

<?php
$client = SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction(...);
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR);
}
?>

Exemplo 2. SOAP's standard method for error reporting is exceptions

<?php
try {
    $client = SoapClient("some.wsdl");
    $result = $client->SomeFunction(...);
} catch (SoapFault $fault) {
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faulstring})", E_ERROR);
}
?>

See also SoapClient::SoapClient(), and SoapFault::SoapFault().

Anterior | Principal | Próxima
SoapVar::SoapVar | Acima | SQLite


SQLite

Manual do PHP
Anterior Próxima

C. SQLite

Introdução

Esta é uma extensão para SQLite Embeddable SQL Database Engine. SQLite é uma biblioteca C que implementa um banco de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo RDBMS separado.

SQLite não é uma biblioteca de cliente usada para conectar com um grande servidor de banco de dados. SQLite é o servidor. A biblioteca SQLite lê e escreve diretamente para e do arquivo do banco de dados no disco.

Nota: Para maiores informações veja o Website do SQLite. (http://sqlite.org/).

Instalação

Leia o arquivo INSTALL, o qual vem com o pacote. Ou use o instalador PEAR com "pear install sqlite". O SQLite em si esta incluído, você não precisa instalar nenhum programa adicional.

Usuários do Windows devem baixar a versão DLL da extensão SQLite aqui: (php_sqlite.dll).

Informação de Contato

Quaisquer questões sobre esta extensão devem ser perguntadas em umas das listas de e-mail do PHP.

Requisitos

Para ter estas funções disponíveis, você deve compilar o PHP com suporte ao SQLite, ou carregar a extenção SQLite dinamicamente do seu php.ini.

Tipos Resource

Exitem dois recursos usados no SQLite. O primeiro é a conexão com o banco de dados e o segundo é o conjunto de resultados.

Constantes Pré-definidas

As funções sqlite_fetch_array() e sqlite_current() usam uma constante para os diferentes tipos de matrizes de resultado:

Tabela 1. Constantes de busca do SQLite

constante | o que faz
SQLITE_ASSOC | As colunas são retornadas na matriz tendo o nome do campo como índice.
SQLITE_BOTH | As colunas são retornadas na matriz tendo ambos índices, numérico e o nome do campo.
SQLITE_NUM | As colunas são retornadas na matriz tendo um índice numérico para os campos. Este índice começa no 0, o primeiro campo no resultado.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 2. Opções de configuração do SQLite

Nome | Padrão | Modificavel
sqlite.assoc_case | 0 | PHP_INI_ALL
Para maiores detalhes e definição das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

sqlite.assoc_case int

Aonde usar maiúsculas/minúsculas juntas (0), maiúsculas (1) ou minúsculas (2) nos índices.

Esta opção é útil principalmente quando você necessita compatibilidade com outros sistemas de banco de dados, aonde os nomes das colunas são sempre retornados como maiúsculas ou minúsculas, sem importar como estão os nomes atualmente no banco de dados.

A biblioteca SQLite retorna os nomes das colunas na sua letra atual ( que é o usado ao criar a tabela ). Quando sqlite.assoc_case for 0 a letra atual vai ser preservada. Quando for 1 ou 2, o PHP irá converter para maiúsculas ou minúsculas, respectivamente.

O uso desta opção incorre em uma pequena penalidade de performance, mas é MUITO mais rápido do que você faze-lo no script PHP.

Índice
sqlite_array_query -- Executa uma query ao banco de dados e retorna uma matriz
sqlite_busy_timeout -- Define o tempo de espera quando o banco de dados estiver ocupado
sqlite_changes -- Retorna o número de linhas que foram alteradas pela SQL mais recente.
sqlite_close -- Fecha um banco de dados SQLite que esteja aberto.
sqlite_column -- Retorna uma coluna da linha atual do conjunto de resultados.
sqlite_create_aggregate -- Registra uma função agregada UDF para usar em SQLs
sqlite_create_function -- Registra uma Função Definida pelo Usuário (UDF) para usar em SQL.
sqlite_current -- Retorna a linha atual do resultado como uma matriz.
sqlite_error_string -- Retorna a descrição textual de um código de erro
sqlite_escape_string -- Escapa uma string para ser usada como um parâmetro em uma query
sqlite_fetch_array -- Obtém a próxima linha de um resultado como uma matriz.
sqlite_fetch_single -- Retorna o resultado da primeira coluna como string.
sqlite_fetch_string -- Apelido para sqlite_fetch_single()
sqlite_field_name -- Retorna o nome de um campo em particular.
sqlite_has_more -- Retorna quando existem ou não mais linhas disponíveis
sqlite_last_error -- Retorna o código de erro para o último erro em um banco de dados
sqlite_last_insert_rowid -- Retorna o rowid da ultima linha inserida.
sqlite_libencoding -- Retorna a codificação da biblioteca SQLite.
sqlite_libversion -- Retorna a versão da biblioteca SQLite.
sqlite_next -- Move para a próxima linha.
sqlite_num_fields -- Retorna o número de campos no conjunto de resultados.
sqlite_num_rows -- Retorna o número de linhas em um conjunto de resultados.
sqlite_open -- Abre um banco de dados SQLite. Irá criar o banco de dados se ele não existir
sqlite_popen -- Abre uma conexão persistente com um banco de dados SQLite. Irá criar um se ele não existir.
sqlite_query -- Executa uma query em um banco de dados e retorna um conjunto de resultados.
sqlite_rewind -- Vai para a primeira linha.
sqlite_seek -- Move o ponteiro interno para uma linha em um conjunto de resultados
sqlite_udf_decode_binary -- Decodifica dados binários passados como parâmetros para uma UDF.
sqlite_udf_encode_binary -- Codifica dados binários para utilizar com uma UDF.
sqlite_unbuffered_query -- Executa uma query que não guarda em buffer os resultados

Anterior | Principal | Próxima
is_soap_fault | Acima | sqlite_array_query


sqlite_array_query

(PHP 5)

sqlite_array_query -- Executa uma query ao banco de dados e retorna uma matriz

Descrição

array sqlite_array_query ( resource dbhandle, string query [, int result_type [, bool decode_binary]])

array sqlite_array_query ( string query, resource dbhandle [, int result_type [, bool decode_binary]])

sqlite_array_query() é similar a usar sqlite_query() e então sqlite_fetch_array() para cada linha do conjunto de resultados e coloca-lo em uma matriz, como mostrado no exemplo abaixo. Usar sqlite_array_query() é significativamente mais rápido do que usar um script como este.

Exemplo 1. sqlite_array_query() implementado por você mesmo

<?php
$q = sqlite_query($database, "SELECT * from foo LIMIT 100");
$rows = array();
while ($r = sqlite_fetch_array($q)) {
    $rows[] = $r;
}
?>

Dica: sqlite_array_query() é melhor utilizado para queries que retornam 45 linhas ou menos. Se você tem mais dados do que isto, é recomendado que você escreva os seus script para usar sqlite_unbuffered_query() para ter uma performance melhor.

Veja também sqlite_query(),
sqlite_fetch_array() e
sqlite_fetch_string().

Anterior | Principal | Próxima
SQLite | Acima | sqlite_busy_timeout


sqlite_busy_timeout

(PHP 5)

sqlite_busy_timeout -- Define o tempo de espera quando o banco de dados estiver ocupado

Descrição

void sqlite_busy_timeout ( resource dbhandle, int milésimos)

Define o limite de tempo que o sqlite irá esperar para um banco de dados (dbhandle) se tornar disponível para uso em milésimos. Se o parâmetro milésimos for 0, os gerenciadores de ocupado serão desabilitados e o sqlite irá retornar imediatamente com um código SQLITE_BUSY se outro processo/thread tiver o banco de dados travado para uma atualização.

O PHP define o tempo padrão de espera em 60 segundos quando o banco de dados é aberto.

Nota: Existem mil (1000) milésimos em um segundo.

Veja também sqlite_open().

Anterior | Principal | Próxima
sqlite_array_query | Acima | sqlite_changes


sqlite_changes

(PHP 5)

sqlite_changes -- Retorna o número de linhas que foram alteradas pela SQL mais recente.

Descrição

int sqlite_changes ( resource dbhandle)

Retorna o numero de linhas que foram modificadas pela mais recente SQL executada no banco de dados dbhandle.

Veja também sqlite_num_rows().

Anterior | Principal | Próxima
sqlite_busy_timeout | Acima | sqlite_close


sqlite_close

(PHP 5)

sqlite_close -- Fecha um banco de dados SQLite que esteja aberto.

Descrição

void sqlite_close ( resource dbhandle)

Fecha o banco de dados indicado por database. Se o banco de dados for persistente, ele será fechado e removido da lista dos persistentes.

Veja também sqlite_open() e sqlite_popen().

Anterior | Principal | Próxima
sqlite_changes | Acima | sqlite_column


sqlite_column

(PHP 5)

sqlite_column -- Retorna uma coluna da linha atual do conjunto de resultados.

Descrição

mixed sqlite_column ( resource result, mixed indice_ou_nome [, bool decode_binary])

Retorna o valor da coluna nomeada indice_ou_nome (se for uma string), ou a coluna numerada indice_ou_nome (se for um inteiro) apartir da linha atual do cunjunto de resultados result. O parâmetro decode_binary funciona da mesma maneira que a descrita na função sqlite_fetch_array().

Use esta função quando você esta interagindo com um conjunto de resultados grande com muitas colunas, ou com colunas que contém grande quantidades de dados.

Veja também sqlite_fetch_string().

Anterior | Principal | Próxima
sqlite_close | Acima | sqlite_create_aggregate


sqlite_create_aggregate

(PHP 5)

sqlite_create_aggregate -- Registra uma função agregada UDF para usar em SQLs

Descrição

bool sqlite_create_aggregate ( resource dbhandle, string function_name, mixed step_func, mixed finalize_func [, int num_args])

sqlite_create_aggregate() é similar a sqlite_create_function() com a diferença que registra funções que podem ser usadas para calcular um resultado através de todas as linhas de uma query.

A diferença chave entre esta função e sqlite_create_function() é que duas funções são requeridas para gerenciar a agregada; step_func é executada para cada linha do conjunto de resultados. Sua função PHP deve acumular o resultado e guardar no contexto da agregação. Uma vez que todas as linhas tenham sido processadas, finalize_func será chamada e deve então pegar os dados do contexto de agregação e então retornar o resultado.

Exemplo 1. Exemplo de agregação

<?php
$data = array(
   'um',
   'dois',
   'três',
   'quatro'
   'cinco'
   'seis',
   'sete',
   'oito',
   'nove'
   'dez'
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string) {
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context) {
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

Neste exemplo, nós estamos criando uma função agregada que irá calcular o tamanho da maior string de uma das colunas da tabela. Para cada linha, max_len_step é executada e passado o parâmetro context. O parâmetro contexto é igual a qualquer outra variavel PHP e pode guardar uma matriz ou um objeto. Neste exemplo, nós estamos usando simplesmente para guardar o tamanho da maior string que nós vimos até aqui, se string tiver um tamanho maior do que o máximo atual, nós atualizamos o contexto para guardar este novo tamanho máximo.

Depois que todas as linhas tiverem sido processadas, SQLite chama a função max_len_finalize para determinar o resultado agregado. Aqui você pode fazer algum tipo de calculo baseado nos dados encontrados em context. No nosso exemplo simples, nós já calculamos o resultado de acordo com o progresso da query, então nós precisamos apenas retornar o valor de contexto.

Nota: O exemplo acima não irá funcionar corretamente se a coluna conter dados binários. De uma olhada na pagina do manual para a função sqlite_udf_decode_binary() para uma explicação do porque é assim, e um exemplo de como fazer respeitar a codificação binária.

Dica: NÃO é recomendado que você guarde uma copia dos valores no contexto e então processe no final, já que você pode fazer com que o SQLite use uma grande quantidade de memória para processar a query - pense quanta memória você vai necessitar se tiver um milhão de linhas, cada uma contendo uma string de 32 bytes de tamanho.

Dica: Você pode usar sqlite_create_function() e sqlite_create_aggregate() para sobrescrever as funções nativas de SQL do SQLite.

Veja também sqlite_create_function(),
sqlite_udf_encode_binary() e
sqlite_udf_decode_binary().

Anterior | Principal | Próxima
sqlite_column | Acima | sqlite_create_function


sqlite_create_function

(PHP 5)

sqlite_create_function -- Registra uma Função Definida pelo Usuário (UDF) para usar em SQL.

Descrição

bool sqlite_create_function ( resource dbhandle, string function_name, mixed callback [, int numero_de_argumentos])

sqlite_create_function() permite a você registrar uma função do PHP para usar com o SQLite como uma UDF (Função Definida pelo Usuário), assim ela pode ser usada apartir de suas SQLs.

O parâmetro dbhandle especifica o banco de dados que você quer estender, function_name especifica no nome da função que você quer usar em seus SQL, callback é qualquer função valida(função criada com function) que deve ser chamada para cuidar da função SQL. O parâmetro opcional numero_de_argumentos é usado como uma dica pelo interpretador do SQLite. É recomendado que você especifique um valor apenas se sua função aceitar sempre um numero fixo de parâmetros.

A UDF pode ser usada em qualquer SQL que possa chamar funções, como SELECT e UPDATE, também em triggers.

Exemplo 1. Exemplo de sqlite_create_function()

<?php
function md5_and_reverse($string) {
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Erro ao abrir o banco de dados sqlite: ' . $sqliteerror;
    exit;
}
?>

Neste exemplo, nós temos uma função que calcula a soma md5 de uma string e a reverte. Quando a SQL é executada, retorna o valor de filename transformado pela nossa função. Os dados retornados em $rows contém o resultado processado.

A beleza desta tecnica é que você não precisa processar o resultado usando um loop foreach() depois de ter feito a query na tabela.

O PHP registra uma função chamada php quando o banco de dados é aberto. A função php pode ser usada para chamar qualquer função do PHP sem precisar registrar ela antes.

Exemplo 2. Exemplo de como usar a função php

<?php
$rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files");
?>

Esta função irá chamar a função md5() para cada coluna filename na tabela e retornar o resultado em $rows

Nota: Por razões de velocidade, O PHP não irá codificar/decodificar dados binários passados para e das UDF´s. Você precisa manualmente codificar/decodificar os parâmetros e valores de retorno de precisar lidar com dados binários desta maneira. De uma olhada em sqlite_udf_encode_binary() e sqlite_udf_decode_binary() para maiores detalhes.

Dica: Não é recomendado usar UDF's para procassar dados binários, a menos que velocidade não seja um requerimento para a sua aplicação.

Dica: Você pode usar sqlite_create_function() e sqlite_create_aggregate() para sobrescrever as funções nativas de SQL do SQLite.

Veja também sqlite_create_aggregate().

Anterior | Principal | Próxima
sqlite_create_aggregate | Acima | sqlite_current


sqlite_current

(PHP 5)

sqlite_current -- Retorna a linha atual do resultado como uma matriz.

Descrição

array sqlite_current ( resource result [, int result_type [, bool decode_binary]])

sqlite_current() é identico a sqlite_fetch_array() só que não avança para a próxima linha antes de retornar os dados, retorna os dados apenas da posição atual.

Se a posição atual for após a ultima linha, esta função retorna FALSE

Nota: Esta função não irá funcionar com resultados de query sem buffer.

Veja também sqlite_seek(),
sqlite_next(), e
sqlite_fetch_array().

Anterior | Principal | Próxima
sqlite_create_function | Acima | sqlite_error_string


sqlite_error_string

(PHP 5)

sqlite_error_string -- Retorna a descrição textual de um código de erro

Descrição

string sqlite_error_string ( int error_code)

Retorna uma descrição legível de um código de erro (error_code) retornado por sqlite_last_error().

Veja também sqlite_last_error().

Anterior | Principal | Próxima
sqlite_current | Acima | sqlite_escape_string


sqlite_escape_string

(PHP 5)

sqlite_escape_string -- Escapa uma string para ser usada como um parâmetro em uma query

Descrição

string sqlite_escape_string ( string item)

sqlite_escape_string() irá corretamente marcar a string especificada por item para usar em uma SQL com o SQLite. Isto inclui dobrar as aspas simples (') e verificar os caracteres binários que não sejam seguros na query.

Se item contém um caractere NULL, ou se começa com um caractere cujo o valor ordinal seja 0x01, o PHP irá aplicar um tema para codificar binários então você pode de modo seguro guardar e recuperar dados binários.

Mesmo que a codificação faça ser seguro inserir os dados, ela fará com que comparações simples de texto e clausulas LIKE nas suas queries não possam ser usadas para as colunas que contém dados binários. Na prática, isto não deve ser um problema, já que seu tema deve ser algo que você não utiliza coisas assim em colunas binárias ( de fato, deve ser melhor guardar dados binários usando outros meios, como em arquivos).

Atenção

addslashes() NÃO deve ser usada para as suas queries com o SQLite; ela irá levar a resultados estranhos quando você recuperar os seus dados.

Nota: Não utilize esta função para codificar retornados por uma UDF( Função Definida pelo Usuário) criada usando sqlite_create_function() ou sqlite_create_aggregate() - use ao invés sqlite_udf_encode_binary().

Veja também sqlite_udf_encode_binary().

Anterior | Principal | Próxima
sqlite_error_string | Acima | sqlite_fetch_array


sqlite_fetch_array

(PHP 5)

sqlite_fetch_array -- Obtém a próxima linha de um resultado como uma matriz.

Descrição

array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]])

Obtém a próxima linha do result indicado. Se não houverem mais linhas, retorna FALSE, em outro caso retorna uma matriz associativa representando os dados da linha.

result_type pode ser usado para especificar como você quer que os resultados sejam retornados. O valor padrão é SQLITE_BOTH o qual retorna as colunas com ambos os índices, numérico e pelo nome da coluna. SQLITE_ASSOC faz com que a matriz tenha apenas o índice dos nomes das colunas, e SQLITE_NUM tenha apenas o índice numérico.

Os nomes das colunas retornados por SQLITE_ASSOC e SQLITE_BOTH irão diferenciar maiúsculas e minúsculas de acordo com o valor da opção de configuração sqlite.assoc_case.

Quando decode_binary for TRUE (o padrão), o PHP irá decodificar a codificação binária que foi aplicada aos dados se eles foram codificados usando sqlite_escape_string(). Você irá normalmente deixar este valor como o seu padrão, a menos que você esteja interagindo com banco de dados de outras aplicações que usem o sqlite.

Veja também sqlite_array_query() e sqlite_fetch_string().

Anterior | Principal | Próxima
sqlite_escape_string | Acima | sqlite_fetch_single


sqlite_fetch_single

(PHP 5)

sqlite_fetch_single -- Retorna o resultado da primeira coluna como string.

Descrição

string sqlite_fetch_single ( resource result [, int result_type [, bool decode_binary]])

sqlite_fetch_single() é identica a sqlite_fetch_array() só que retorna o valor da primeira coluna no conjunto de resultados.

Este é o melhor meio de recuperar dados quando você esta interessado em valores de apenas uma coluna.

Exemplo 1. Exemplo sqlite_fetch_single()

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

Veja também sqlite_fetch_array().

Anterior | Principal | Próxima
sqlite_fetch_array | Acima | sqlite_fetch_string


sqlite_fetch_string

sqlite_fetch_string -- Apelido para sqlite_fetch_single()

Descrição

Esta função é um apelido para sqlite_fetch_single().

Anterior | Principal | Próxima
sqlite_fetch_single | Acima | sqlite_field_name


sqlite_field_name

(PHP 5)

sqlite_field_name -- Retorna o nome de um campo em particular.

Descrição

string sqlite_field_name ( resource result, int indice_campo)

Dado um numero de coluna, indice_campo, retorna o nome do campo no resultado result.

Anterior | Principal | Próxima
sqlite_fetch_string | Acima | sqlite_has_more


sqlite_has_more

(PHP 5)

sqlite_has_more -- Retorna quando existem ou não mais linhas disponíveis

Descrição

bool sqlite_has_more ( resource result)

A função sqlite_has_more() retorna TRUE se houverem mais linhas disponíveis em result ou FALSE se não houver.

Veja também sqlite_num_rows() e sqlite_changes().

Anterior | Principal | Próxima
sqlite_field_name | Acima | sqlite_last_error


sqlite_last_error

(PHP 5)

sqlite_last_error -- Retorna o código de erro para o último erro em um banco de dados

Descrição

int sqlite_last_error ( resource dbhandle)

Retorna o código de erro da última operação realizada no banco de dados db. Uma descrição do código de erro pode ser obtida usando-se a função sqlite_error_string().

Veja também sqlite_error_string().

Anterior | Principal | Próxima
sqlite_has_more | Acima | sqlite_last_insert_rowid


sqlite_last_insert_rowid

(PHP 5)

sqlite_last_insert_rowid -- Retorna o rowid da ultima linha inserida.

Descrição

int sqlite_last_insert_rowid ( resource dbhandle)

Retorna o rowid da ultima linha inserida no banco de dados dbhandle, se ele foi criado com um campo de auto-incremento.

Dica: Você pode criar campos de auto-incremento no SQLite declarando eles como INTEGER PRIMARY KEY ao criar a sua tabela.

Anterior | Principal | Próxima
sqlite_last_error | Acima | sqlite_libencoding


sqlite_libencoding

(PHP 5)

sqlite_libencoding -- Retorna a codificação da biblioteca SQLite.

Descrição

string sqlite_libencoding ( void )

A biblioteca SQLite deve ser compilada ou com o ISO-8859-1 ou UTF-8. Esta função permite a você determinar qual codificação é usada em sua versão da biblioteca.

Atenção

A distribuição padrão do PHP constroi a libsqlite na codificação ISO-8859-1. Entretanto, ao invés de usar o ISO-8859-1, ela opera de acordo com as suas configurações de local atual para comparações e ordenação. Então, ao invés de ISO-8859-1, você deve pensar nela como sendo '8-bit'.

Quando compilada com suporte UTF-8, sqlite manuseia a codificação e decodificação de caracteres multi-byte UTF-8, mas ainda não faz um trabalho completo quando trabalhando com os dados (não é feita a normalização por exemplo), e alguma operações de comparação não são feitas corretamente ainda.

Atenção

Não é recomendado que você use o PHP em um servidor web com uma versão da biblioteca SQLite compilada com suporte UTF-8, já que a libsqlite irá abortar o processo se detectar um problema com a codificação UTF-8.

Veja também sqlite_libversion().

Anterior | Principal | Próxima
sqlite_last_insert_rowid | Acima | sqlite_libversion


sqlite_libversion

(PHP 5)

sqlite_libversion -- Retorna a versão da biblioteca SQLite.

Descrição

string sqlite_libversion ( void )

Retorna a versão da biblioteca SQLite como uma string.

Veja também sqlite_libencoding().

Anterior | Principal | Próxima
sqlite_libencoding | Acima | sqlite_next


sqlite_next

(PHP 5)

sqlite_next -- Move para a próxima linha.

Descrição

bool sqlite_next ( resource result)

sqlite_next() avança o conjunto de resultados result para a próxima linha. Retorna FALSE se não houverem mais linhas, TRUE em outro caso.

Nota: Esta função não pode ser usada com query sem buffer.

Veja também sqlite_seek(),
sqlite_current() e
sqlite_rewind().

Anterior | Principal | Próxima
sqlite_libversion | Acima | sqlite_num_fields


sqlite_num_fields

(PHP 5)

sqlite_num_fields -- Retorna o número de campos no conjunto de resultados.

Descrição

int sqlite_num_fields ( resource result)

Retorna o numero de campos no conjunto de resultados result.

Veja também sqlite_column() e sqlite_num_rows().

Anterior | Principal | Próxima
sqlite_next | Acima | sqlite_num_rows


sqlite_num_rows

(PHP 5)

sqlite_num_rows -- Retorna o número de linhas em um conjunto de resultados.

Descrição

int sqlite_num_rows ( resource result)

Retorna o numero de linhas no conjunto de resultados result.

Nota: Esta função não pode ser usada com query sem buffer.

Veja também sqlite_changes() e sqlite_query().

Anterior | Principal | Próxima
sqlite_num_fields | Acima | sqlite_open


sqlite_open

(PHP 5)

sqlite_open -- Abre um banco de dados SQLite. Irá criar o banco de dados se ele não existir

Descrição

resource sqlite_open ( string filename [, int mode [, string &error_message]])

Retorna um recurso(conexão com o banco de dados) se funcionar, FALSE on error.

O parâmetro filename é o nome do banco de dados. Pode ser um caminho relativo ou absoluto para o arquivo que o sqlite irá usar para guardar os seus dados. Se o arquivo não existir, o sqlite tentará cria-lo. Você DEVE ter permissões de escrita para o arquivo caso você queira inserir dados ou modificar o seu banco de dados.

O parâmetro mode especifica o modo que o arquivo será aberto. A intenção é para ser usado para abrir o banco de dados em modo somente-leitura. Atualmente, este parâmetro é ignorado pela biblioteca sqlite. O valor padrão é o valor octal 0666 e este é o valor recomendado se você precisa usar o parâmetro errmessage.

errmessage é passado por referencia para conter uma mensagem de erro descritiva explicando porque o banco de dados não pôde ser aberto se houver um erro.

Exemplo 1. Exemplo sqlite_open()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
  sqlite_query('CREATE TABLE foo (bar varchar(10))');
  sqlite_query("INSERT INTO foo VALUES ('fnord')");
  $result = sqlite_query('select bar from foo');
  var_dump(sqlite_fetch_array($result));
} else {
  die ($sqliteerror);
}
?>

Dica: Em plataformas Unix, SQLite é sensível a scripts que usam a chamada do sistema fork(). Se você tem um script como esse, é recomendavel que você feche o banco de dados antes de usar o fork() e abra-o novamente no outro processo. Para maiores informações sobre isto, veja The C language interface to the SQLite library na seção entitulada Multi-Threading And SQLite.

Dica: Não é recomentado trabalhar com banco de dados SQLite sobre partições NFS. Desde que NFS é notoriamente ruim quando se usa travas você vai achar que não pode abrir o banco de dados, e se abrir, o funcionamento das travas será indefinido.

Nota: Apartir da versão 2.8.2 da biblioteca do SQLite, você pode especificar :memory: como o parâmetro filename para criar um banco de dados que vive somente na memória do computador. Isto é útil principalmente para processar algo temporário, já que o banco de dados na memória será destruidoas ao final do processo. Também pode ser útil quando usado com o SQL ATTACH DATABASE para abrir outros banco de dados e realizar uma query entre eles.

Nota: SQLite é safe mode e a par do open_basedir.

Veja também sqlite_popen(),
sqlite_close() e
sqlite_query().

Anterior | Principal | Próxima
sqlite_num_rows | Acima | sqlite_popen


sqlite_popen

(PHP 5)

sqlite_popen -- Abre uma conexão persistente com um banco de dados SQLite. Irá criar um se ele não existir.

Descrição

resource sqlite_popen ( string nome_de_arquivo [, int mode [, string &error_message]])

Esta função funciona igualmente a sqlite_open() só que ela usa o mecanismo de recurso persistente do PHP. Para informações sobre os parâmetros, leia a pagina sobre sqlite_open().

sqlite_popen() irá primeiro conferir se já não existe uma conexão permanente já não esta aberta para o nome_de_arquivo indicado. Se encontrar, retorna esta conexão para o script, se não irá ciar uma nova conexão para o banco de dados.

O beneficio deste uso é que melhora a velocidade por não perder tempo lendo novamente o banco de dados e os indices para cada pagina servida por um servidor web via SAPI(qualquer SAPI com a excessão de CGI ou CLI).

Nota: Se você usa conexões persistentes e tem o seu banco de dados atualizado por um processo em segundo plano (talvés pelo crontab), e este processo re-cria o banco de dados sobrescrevendo-o (apagando e reconstruindo, ou movendo uma versão atualizada para sobrescrever a versão atual), você pode experimentar coisas estranhas quando uma conexão persistente com a versão antiga do banco de dados é reciclada.

Para previnir esta situação, seu processo em segundo plano deve abrir o mesmo banco de dados e fazer as suas atualizações em uma transação.

Veja também sqlite_open(),
sqlite_close() e
sqlite_query().

Anterior | Principal | Próxima
sqlite_open | Acima | sqlite_query


sqlite_query

(PHP 5)

sqlite_query -- Executa uma query em um banco de dados e retorna um conjunto de resultados.

Descrição

resource sqlite_query ( resource dbhandle, string query)

resource sqlite_query ( string query, resource dbhandle)

Executa uma SQL indicada pelo parâmetro query com um banco de dados (especificado pelo parâmetro dbhandle).

Para query que retornam linhas, esta função irá retornar um result handle que pode ser usado em funções como sqlite_fetch_array() e sqlite_seek().

Para outros tipos de query, esta função irá retornar um resultado booleano; TRUE para sucesso ou FALSE para falha.

Qualquer que seja o tipo da query, esta função irá retornar FALSE se houver uma falha.

sqlite_query() retorna um resultado guardado em buffer e navegavel. Isto é util para query pequenas aonde você necessita acessar de forma aleatória as linhas. Resultados guardados em buffer irão alocar memoria para guardar todo o resultado e não irão retornar até que todo o resultado tenha sido retornado. Se você necessita apenas acesso sequencial aos dados, é recomendado que você use ao invés a função sqlite_unbuffered_query() que é muito mais rapida.

Nota: Duas maneiras alternativas são suportadas para compatibilidade com outros bancos de dados(como o MySQL). A forma preferida é a primeira, aonde o parâmetro db é o primeiro na função.

Atenção

SQLite irá executar multiplas query separadas por ponto e virgula, assimvocê pode executar um lote de SQL que você tenha carregado de um arquivo ou colocado em um script.

Quando executar multiplas query o valor de retorno desta função será FALSE se houver um erro, mas indefinido em outro caso (pode ser TRUE para sucesso ou retornar um conjunto de resultados).

Veja também sqlite_unbuffered_query() e sqlite_array_query().

Anterior | Principal | Próxima
sqlite_popen | Acima | sqlite_rewind


sqlite_rewind

(PHP 5)

sqlite_rewind -- Vai para a primeira linha.

Descrição

bool sqlite_rewind ( resource result)

sqlite_rewind() volta para a primeira linha no conjunto de resultados. Retorna FALSE se não houverem mais linhas no conjunto de resultados ou, TRUE em outro caso.

Nota: Esta função não pode ser usada com query sem buffer.

Veja também sqlite_next(),
sqlite_current() e
sqlite_seek().

Anterior | Principal | Próxima
sqlite_query | Acima | sqlite_seek


sqlite_seek

(PHP 5)

sqlite_seek -- Move o ponteiro interno para uma linha em um conjunto de resultados

Descrição

bool sqlite_seek ( resource result, int rownum)

sqlite_seek() move o ponteiro interno para a linha idicada pelo parâmetro rownum. O numero da linha é baseado em zero (0 é a primeira linha). Retorna FALSE se a linha não existir, TRUE em outro caso.

Nota: Esta função não pode ser usada com query sem buffer.

Veja também sqlite_next(),
sqlite_current() e
sqlite_rewind().

Anterior | Principal | Próxima
sqlite_rewind | Acima | sqlite_udf_decode_binary


sqlite_udf_decode_binary

(PHP 5)

sqlite_udf_decode_binary -- Decodifica dados binários passados como parâmetros para uma UDF.

Descrição

string sqlite_udf_decode_binary ( string data)

sqlite_udf_decode_binary() decodifica dados binários que foram codificados antes por sqlite_udf_encode_binary() ou sqlite_escape_string().

Você deve usar esta função em parâmetros passados para a sua UDF se você precisar usar dados binários, esta função irá retornar os seus dados para a sua forma natural, não codificada.

O PHP não faz esta codificação/decodificação automaticamente já que certamente haveria um impacto na performance se ele fizesse.

Exemplo 1. Exemplo de função binary-safe max_length

<?php
$data = array(
   'um',
   'dois',
   'três',
   'quatro'
   'cinco'
   'seis',
   'sete',
   'oito',
   'nove'
   'dez'
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string) {
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context) {
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Veja também sqlite_udf_encode_binary(),
sqlite_create_function() e
sqlite_create_aggregate().

Anterior | Principal | Próxima
sqlite_seek | Acima | sqlite_udf_encode_binary


sqlite_udf_encode_binary

(PHP 5)

sqlite_udf_encode_binary -- Codifica dados binários para utilizar com uma UDF.

Descrição

string sqlite_udf_encode_binary ( string data)

sqlite_udf_encode_binary() aplica uma codificação binária codificando data assim pode ser seguramente retornado apartir de queries (desde que a API da libsqlite não é binary safe).

Se houver uma chance de seus dados não sejam seguros para binários (por exemplo contenham um NULL no meio ao invés de no final, ou se tiver um 0x01 como primeiro caractere) então você deve chamar esta função para codificar os dados que vem da sua UDF.

O PHP não faz esta codificação/decodificação automaticamente já que certamente haveria um impacto na performance se ele fizesse.

Nota: Não use sqlite_escape_string() para escapar as strings retornadas de uma UDF já que isso vai levar a issso ser feito duas vezes. Ao invés use sqlite_udf_encode_binary()!

Veja também sqlite_udf_decode_binary(),
sqlite_escape_string(),
sqlite_create_function() e
sqlite_create_aggregate().

Anterior | Principal | Próxima
sqlite_udf_decode_binary | Acima | sqlite_unbuffered_query


sqlite_unbuffered_query

(PHP 5)

sqlite_unbuffered_query -- Executa uma query que não guarda em buffer os resultados

Descrição

resource sqlite_unbuffered_query ( resource dbhandle, string query)

resource sqlite_unbuffered_query ( string query, resource dbhandle)

sqlite_unbuffered_query() é identica a sqlite_query() exceto que o resultado é retornado de uma maneira sequencial de acesso somente para frente, so pode ser usado para ler cada linha, uma após a outra.

Esta função é ideal para gerar coisas como tabelas em HTML aonde você só precisa processar uma linha de cada vez e não necessita de acesso aleatório aos dados.

Nota:
    Funções como sqlite_seek(),
    sqlite_rewind(), sqlite_next(),
    sqlite_current() e
    sqlite_num_rows() não funcionam com conjunto de resultados
    retornados por sqlite_unbuffered_query().

Veja também sqlite_query().

Anterior | Principal | Próxima
sqlite_udf_encode_binary | Acima | Shockwave Flash Functions


Shockwave Flash Functions

Manual do PHP
Anterior Próxima

CI. Shockwave Flash Functions

Introdução

PHP offers the ability to create Shockwave Flash files via Paul Haeberli's libswf module.

Nota: SWF support was added in PHP 4 RC2.

The libswf does not have support for Windows. The development of that library has been stopped, and the source is not available to port it to another systems.

For up to date SWF support take a look at the MING functions.

Requisitos

You need the libswf library to compile PHP with support for this extension. You can download libswf at ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.

Instalação

Once you have libswf all you need to do is to configure --with-swf[=DIR] where DIR is a location containing the directories include and lib. The include directory has to contain the swf.h file and the lib directory has to contain the libswf.a file. If you unpack the libswf distribution the two files will be in one directory. Consequently you will have to copy the files to the proper location manually.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

MOD_COLOR (integer)

MOD_MATRIX (integer)

TYPE_PUSHBUTTON (integer)

TYPE_MENUBUTTON (integer)

BSHitTest (float)

BSDown (float)

BSOver (float)

BSUp (float)

OverDowntoIdle (integer)

IdletoOverDown (integer)

OutDowntoIdle (integer)

OutDowntoOverDown (integer)

OverDowntoOutDown (integer)

OverUptoOverDown (integer)

OverUptoIdle (integer)

IdletoOverUp (integer)

ButtonEnter (integer)

ButtonExit (integer)

MenuEnter (integer)

MenuExit (integer)

Exemplos

Once you've successfully installed PHP with Shockwave Flash support you can then go about creating Shockwave files from PHP. You would be surprised at what you can do, take the following code:

Exemplo 1. SWF example

<?php
swf_openfile("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2(-100, 100, -100, 100);
swf_defineline(1, -70, 0, 70, 0, .2);
swf_definerect(4, 60, -10, 70, 0, 0);
swf_definerect(5, -60, 0, -70, 10, 0);
swf_addcolor(0, 0, 0, 0);

swf_definefont(10, "Mod");
swf_fontsize(5);
swf_fontslant(10);
swf_definetext(11, "This be Flash wit PHP!", 1);

swf_pushmatrix();
swf_translate(-50, 80, 0);
swf_placeobject(11, 60);
swf_popmatrix();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix();
    swf_scale(1-($p*.9), 1, 1);
    swf_rotate(60*$p, 'z');
    swf_translate(20+20*$p, $p/1.5, 0);
    swf_rotate(270*$p,  'z');
    swf_addcolor($p, 0, $p/1.2, -$p);
    swf_placeobject(1, 50);
    swf_placeobject(4, 50);
    swf_placeobject(5, 50);
    swf_popmatrix();
    swf_showframe();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject(50);
    if (($i%4) == 0) {
        swf_showframe();
    }
}

swf_startdoaction();
swf_actionstop();
swf_enddoaction();

swf_closefile();
?>

Índice
swf_actiongeturl -- Get a URL from a Shockwave Flash movie
swf_actiongotoframe -- Play a frame and then stop
swf_actiongotolabel -- Display a frame with the specified label
swf_actionnextframe -- Go forward one frame
swf_actionplay -- Start playing the flash movie from the current frame
swf_actionprevframe -- Go backwards one frame
swf_actionsettarget -- Set the context for actions
swf_actionstop -- Stop playing the flash movie at the current frame
swf_actiontogglequality -- Toggle between low and high quality
swf_actionwaitforframe -- Skip actions if a frame has not been loaded
swf_addbuttonrecord -- Controls location, appearance and active area of the current button
swf_addcolor -- Set the global add color to the rgba value specified
swf_closefile -- Close the current Shockwave Flash file
swf_definebitmap -- Define a bitmap
swf_definefont -- Defines a font
swf_defineline -- Define a line
swf_definepoly -- Define a polygon
swf_definerect -- Define a rectangle
swf_definetext -- Define a text string
swf_endbutton -- End the definition of the current button
swf_enddoaction -- End the current action
swf_endshape -- Completes the definition of the current shape
swf_endsymbol -- End the definition of a symbol
swf_fontsize -- Change the font size
swf_fontslant -- Set the font slant
swf_fonttracking -- Set the current font tracking
swf_getbitmapinfo -- Get information about a bitmap
swf_getfontinfo -- The height in pixels of a capital A and a lowercase x
swf_getframe -- Get the frame number of the current frame
swf_labelframe -- Label the current frame
swf_lookat -- Define a viewing transformation
swf_modifyobject -- Modify an object
swf_mulcolor -- Sets the global multiply color to the rgba value specified
swf_nextid -- Returns the next free object id
swf_oncondition -- Describe a transition used to trigger an action list
swf_openfile -- Open a new Shockwave Flash file
swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport
swf_perspective -- Define a perspective projection transformation
swf_placeobject -- Place an object onto the screen
swf_polarview -- Define the viewer's position with polar coordinates
swf_popmatrix -- Restore a previous transformation matrix
swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved
swf_pushmatrix -- Push the current transformation matrix back unto the stack
swf_removeobject -- Remove an object
swf_rotate -- Rotate the current transformation
swf_scale -- Scale the current transformation
swf_setfont -- Change the current font
swf_setframe -- Switch to a specified frame
swf_shapearc -- Draw a circular arc
swf_shapecurveto3 -- Draw a cubic bezier curve
swf_shapecurveto -- Draw a quadratic bezier curve between two points
swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap
swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap
swf_shapefilloff -- Turns off filling
swf_shapefillsolid -- Set the current fill style to the specified color
swf_shapelinesolid -- Set the current line style
swf_shapelineto -- Draw a line
swf_shapemoveto -- Move the current position
swf_showframe -- Display the current frame
swf_startbutton -- Start the definition of a button
swf_startdoaction -- Start a description of an action list for the current frame
swf_startshape -- Start a complex shape
swf_startsymbol -- Define a symbol
swf_textwidth -- Get the width of a string
swf_translate -- Translate the current transformations
swf_viewport -- Select an area for future drawing

Anterior | Principal | Próxima
sqlite_unbuffered_query | Acima | swf_actiongeturl


swf_actiongeturl

(PHP 4 )

swf_actiongeturl -- Get a URL from a Shockwave Flash movie

Description

void swf_actiongeturl ( string url, string target)

The swf_actiongeturl() function gets the URL specified by the parameter url with the target target.

Anterior | Principal | Próxima
Shockwave Flash Functions | Acima | swf_actiongotoframe


swf_actiongotoframe

(PHP 4 )

swf_actiongotoframe -- Play a frame and then stop

Description

void swf_actiongotoframe ( int framenumber)

The swf_actiongotoframe() function will go to the frame specified by framenumber, play it, and then stop.

Anterior | Principal | Próxima
swf_actiongeturl | Acima | swf_actiongotolabel


swf_actiongotolabel

(PHP 4 )

swf_actiongotolabel -- Display a frame with the specified label

Description

void swf_actiongotolabel ( string label)

The swf_actiongotolabel() function displays the frame with the label given by the label parameter and then stops.

Anterior | Principal | Próxima
swf_actiongotoframe | Acima | swf_actionnextframe


swf_actionnextframe

(PHP 4 )

swf_actionnextframe -- Go forward one frame

Description

void swf_actionnextframe ( void )

Go forward one frame.

Anterior | Principal | Próxima
swf_actiongotolabel | Acima | swf_actionplay


swf_actionplay

(PHP 4 )

swf_actionplay -- Start playing the flash movie from the current frame

Description

void swf_actionplay ( void )

Start playing the flash movie from the current frame.

Anterior | Principal | Próxima
swf_actionnextframe | Acima | swf_actionprevframe


swf_actionprevframe

(PHP 4 )

swf_actionprevframe -- Go backwards one frame

Description

void swf_actionprevframe ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
swf_actionplay | Acima | swf_actionsettarget


swf_actionsettarget

(PHP 4 )

swf_actionsettarget -- Set the context for actions

Description

void swf_actionsettarget ( string target)

The swf_actionsettarget() function sets the context for all actions. You can use this to control other flash movies that are currently playing.

Anterior | Principal | Próxima
swf_actionprevframe | Acima | swf_actionstop


swf_actionstop

(PHP 4 )

swf_actionstop -- Stop playing the flash movie at the current frame

Description

void swf_actionstop ( void )

Stop playing the flash movie at the current frame.

Anterior | Principal | Próxima
swf_actionsettarget | Acima | swf_actiontogglequality


swf_actiontogglequality

(PHP 4 )

swf_actiontogglequality -- Toggle between low and high quality

Description

void swf_actiontogglequality ( void )

Toggle the flash movie between high and low quality.

Anterior | Principal | Próxima
swf_actionstop | Acima | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4 )

swf_actionwaitforframe -- Skip actions if a frame has not been loaded

Description

void swf_actionwaitforframe ( int framenumber, int skipcount)

The swf_actionwaitforframe() function will check to see if the frame, specified by the framenumber parameter has been loaded, if not it will skip the number of actions specified by the skipcount parameter. This can be useful for "Loading..." type animations.

Anterior | Principal | Próxima
swf_actiontogglequality | Acima | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4 )

swf_addbuttonrecord -- Controls location, appearance and active area of the current button

Description

void swf_addbuttonrecord ( int states, int shapeid, int depth)

The swf_addbuttonrecord() function allows you to define the specifics of using a button. The first parameter, states, defines what states the button can have, these can be any or all of the following constants: BSHitTest, BSDown, BSOver or BSUp. The second parameter, the shapeid is the look of the button, this is usually the object id of the shape of the button. The depth parameter is the placement of the button in the current frame.

Exemplo 1. swf_addbuttonrecord() example

<?php
swf_startButton($objid, TYPE_MENUBUTTON);
swf_addButtonRecord(BSDown|BSOver, $buttonImageId, 340);
swf_onCondition(MenuEnter);
swf_actionGetUrl("http://www.example.com", "_level1");
swf_onCondition(MenuExit);
swf_actionGetUrl("", "_level1");
swf_endButton();
?>

Anterior | Principal | Próxima
swf_actionwaitforframe | Acima | swf_addcolor


swf_addcolor

(PHP 4 )

swf_addcolor -- Set the global add color to the rgba value specified

Description

void swf_addcolor ( float r, float g, float b, float a)

The swf_addcolor() function sets the global add color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be add by the rgba values when the object is written to the screen.

Nota: The rgba values can be either positive or negative.

Anterior | Principal | Próxima
swf_addbuttonrecord | Acima | swf_closefile


swf_closefile

(PHP 4 )

swf_closefile -- Close the current Shockwave Flash file

Description

void swf_closefile ( [int return_file])

Close a file that was opened by the swf_openfile() function. If the return_file parameter is set then the contents of the SWF file are returned from the function.

Exemplo 1. Creating a simple flash file based on user input and outputting it and saving it in a database

<?php

// The $text variable is submitted by the
// user

// Global variables for database
// access (used in the swf_savedata() function)
$DBHOST = "localhost";
$DBUSER = "sterling";
$DBPASS = "secret";

swf_openfile("php://stdout", 256, 256, 30, 1, 1, 1);

    swf_definefont(10, "Ligon-Bold");
        swf_fontsize(12);
        swf_fontslant(10);

    swf_definetext(11, $text, 1);

    swf_pushmatrix();
        swf_translate(-50, 80, 0);
        swf_placeobject(11, 60);
    swf_popmatrix();

    swf_showframe();

    swf_startdoaction();
        swf_actionstop();
    swf_enddoaction();

$data = swf_closefile(1);

$data ?
  swf_savedata($data) :
  die("Error could not save SWF file");

// void swf_savedata(string data)
// Save the generated file a database
// for later retrieval
function swf_savedata($data)
{
    global $DBHOST,
           $DBUSER,
           $DBPASS;

    $dbh = @mysql_connect($DBHOST, $DBUSER, $DBPASS);

    if (!$dbh) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    $stmt = "INSERT INTO swf_files (file) VALUES ('$data')";

    $sth = @mysql_query($stmt, $dbh);

    if (!$sth) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    @mysql_free_result($sth);
    @mysql_close($dbh);
}
?>

Anterior | Principal | Próxima
swf_addcolor | Acima | swf_definebitmap


swf_definebitmap

(PHP 4 )

swf_definebitmap -- Define a bitmap

Description

void swf_definebitmap ( int objid, string image_name)

The swf_definebitmap() function defines a bitmap given a GIF, JPEG, RGB or FI image. The image will be converted into a Flash JPEG or Flash color map format.

Anterior | Principal | Próxima
swf_closefile | Acima | swf_definefont


swf_definefont

(PHP 4 )

swf_definefont -- Defines a font

Description

void swf_definefont ( int fontid, string fontname)

The swf_definefont() function defines a font given by the fontname parameter and gives it the id specified by the fontid parameter. It then sets the font given by fontname to the current font.

Anterior | Principal | Próxima
swf_definebitmap | Acima | swf_defineline


swf_defineline

(PHP 4 )

swf_defineline -- Define a line

Description

void swf_defineline ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_defineline() defines a line starting from the x coordinate given by x1 and the y coordinate given by y1 parameter. Up to the x coordinate given by the x2 parameter and the y coordinate given by the y2 parameter. It will have a width defined by the width parameter.

Anterior | Principal | Próxima
swf_definefont | Acima | swf_definepoly


swf_definepoly

(PHP 4 )

swf_definepoly -- Define a polygon

Description

void swf_definepoly ( int objid, array coords, int npoints, float width)

The swf_definepoly() function defines a polygon given an array of x, y coordinates (the coordinates are defined in the parameter coords). The parameter npoints is the number of overall points that are contained in the array given by coords. The width is the width of the polygon's border, if set to 0.0 the polygon is filled.

Anterior | Principal | Próxima
swf_defineline | Acima | swf_definerect


swf_definerect

(PHP 4 )

swf_definerect -- Define a rectangle

Description

void swf_definerect ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_definerect() defines a rectangle with an upper left hand coordinate given by the x, x1, and the y, y1. And a lower right hand coordinate given by the x coordinate, x2, and the y coordinate, y2 . Width of the rectangles border is given by the width parameter, if the width is 0.0 then the rectangle is filled.

Anterior | Principal | Próxima
swf_definepoly | Acima | swf_definetext


swf_definetext

(PHP 4 )

swf_definetext -- Define a text string

Description

void swf_definetext ( int objid, string str, int docenter)

Define a text string (the str parameter) using the current font and font size. The docenter is where the word is centered, if docenter is 1, then the word is centered in x.

Anterior | Principal | Próxima
swf_definerect | Acima | swf_endbutton


swf_endbutton

(PHP 4 )

swf_endbutton -- End the definition of the current button

Description

void swf_endbutton ( void )

The swf_endbutton() function ends the definition of the current button.

Anterior | Principal | Próxima
swf_definetext | Acima | swf_enddoaction


swf_enddoaction

(PHP 4 )

swf_enddoaction -- End the current action

Description

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

Anterior | Principal | Próxima
swf_endbutton | Acima | swf_endshape


swf_endshape

(PHP 4 )

swf_endshape -- Completes the definition of the current shape

Description

void swf_endshape ( void )

The swf_endshape() completes the definition of the current shape.

Anterior | Principal | Próxima
swf_enddoaction | Acima | swf_endsymbol


swf_endsymbol

(PHP 4 )

swf_endsymbol -- End the definition of a symbol

Description

void swf_endsymbol ( void )

The swf_endsymbol() function ends the definition of a symbol that was started by the swf_startsymbol() function.

Anterior | Principal | Próxima
swf_endshape | Acima | swf_fontsize


swf_fontsize

(PHP 4 )

swf_fontsize -- Change the font size

Description

void swf_fontsize ( float size)

The swf_fontsize() function changes the font size to the value given by the size parameter.

Anterior | Principal | Próxima
swf_endsymbol | Acima | swf_fontslant


swf_fontslant

(PHP 4 )

swf_fontslant -- Set the font slant

Description

void swf_fontslant ( float slant)

Set the current font slant to the angle indicated by the slant parameter. Positive values create a forward slant, negative values create a negative slant.

Anterior | Principal | Próxima
swf_fontsize | Acima | swf_fonttracking


swf_fonttracking

(PHP 4 )

swf_fonttracking -- Set the current font tracking

Description

void swf_fonttracking ( float tracking)

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

Anterior | Principal | Próxima
swf_fontslant | Acima | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4 )

swf_getbitmapinfo -- Get information about a bitmap

Description

array swf_getbitmapinfo ( int bitmapid)

The swf_getbitmapinfo() function returns an array of information about a bitmap given by the bitmapid parameter. The returned array has the following elements:

  • "size" - The size in bytes of the bitmap.

  • "width" - The width in pixels of the bitmap.

  • "height" - The height in pixels of the bitmap.

Anterior | Principal | Próxima
swf_fonttracking | Acima | swf_getfontinfo


swf_getfontinfo

(PHP 4 )

swf_getfontinfo -- The height in pixels of a capital A and a lowercase x

Description

array swf_getfontinfo ( void )

The swf_getfontinfo() function returns an associative array with the following parameters:

  • Aheight - The height in pixels of a capital A.

  • xheight - The height in pixels of a lowercase x.

Anterior | Principal | Próxima
swf_getbitmapinfo | Acima | swf_getframe


swf_getframe

(PHP 4 )

swf_getframe -- Get the frame number of the current frame

Description

int swf_getframe ( void )

The swf_getframe() function gets the number of the current frame.

Anterior | Principal | Próxima
swf_getfontinfo | Acima | swf_labelframe


swf_labelframe

(PHP 4 )

swf_labelframe -- Label the current frame

Description

void swf_labelframe ( string name)

Label the current frame with the name given by the name parameter.

Anterior | Principal | Próxima
swf_getframe | Acima | swf_lookat


swf_lookat

(PHP 4 )

swf_lookat -- Define a viewing transformation

Description

void swf_lookat ( float view_x, float view_y, float view_z, float reference_x, float reference_y, float reference_z, float twist)

The swf_lookat() function defines a viewing transformation by giving the viewing position (the parameters view_x, view_y, and view_z) and the coordinates of a reference point in the scene, the reference point is defined by the reference_x, reference_y , and reference_z parameters. The twist controls the rotation along with viewer's z axis.

Anterior | Principal | Próxima
swf_labelframe | Acima | swf_modifyobject


swf_modifyobject

(PHP 4 )

swf_modifyobject -- Modify an object

Description

void swf_modifyobject ( int depth, int how)

Updates the position and/or color of the object at the specified depth, depth. The parameter how determines what is updated. how can either be the constant MOD_MATRIX or MOD_COLOR or it can be a combination of both (MOD_MATRIX|MOD_COLOR).

MOD_COLOR uses the current mulcolor (specified by the function swf_mulcolor()) and addcolor (specified by the function swf_addcolor()) to color the object. MOD_MATRIX uses the current matrix to position the object.

Anterior | Principal | Próxima
swf_lookat | Acima | swf_mulcolor


swf_mulcolor

(PHP 4 )

swf_mulcolor -- Sets the global multiply color to the rgba value specified

Description

void swf_mulcolor ( float r, float g, float b, float a)

The swf_mulcolor() function sets the global multiply color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be multiplied by the rgba values when the object is written to the screen.

Nota: The rgba values can be either positive or negative.

Anterior | Principal | Próxima
swf_modifyobject | Acima | swf_nextid


swf_nextid

(PHP 4 )

swf_nextid -- Returns the next free object id

Description

int swf_nextid ( void )

The swf_nextid() function returns the next available object id.

Anterior | Principal | Próxima
swf_mulcolor | Acima | swf_oncondition


swf_oncondition

(PHP 4 )

swf_oncondition -- Describe a transition used to trigger an action list

Description

void swf_oncondition ( int transition)

The swf_oncondition() function describes a transition that will trigger an action list. There are several types of possible transitions, the following are for buttons defined as TYPE_MENUBUTTON:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • IdletoOverDown

  • OutDowntoIdle

  • MenuEnter (IdletoOverUp|IdletoOverDown)

  • MenuExit (OverUptoIdle|OverDowntoIdle)

For TYPE_PUSHBUTTON there are the following options:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • OverDowntoOutDown

  • OutDowntoOverDown

  • OutDowntoIdle

  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)

  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Anterior | Principal | Próxima
swf_nextid | Acima | swf_openfile


swf_openfile

(PHP 4 )

swf_openfile -- Open a new Shockwave Flash file

Description

void swf_openfile ( string filename, float width, float height, float framerate, float r, float g, float b)

The swf_openfile() function opens a new file named filename with a width of width and a height of height a frame rate of framerate and background with a red color of r a green color of g and a blue color of b.

The swf_openfile() must be the first function you call, otherwise your script will cause a segfault. If you want to send your output to the screen make the filename: "php://stdout" (support for this is in 4.0.1 and up).

Anterior | Principal | Próxima
swf_oncondition | Acima | swf_ortho2


swf_ortho2

(PHP 4 )

swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho2 ( float xmin, float xmax, float ymin, float ymax)

The swf_ortho2() function defines a two dimensional orthographic mapping of user coordinates onto the current viewport, this defaults to one to one mapping of the area of the Flash movie. If a perspective transformation is desired, the swf_perspective () function can be used.

Anterior | Principal | Próxima
swf_openfile | Acima | swf_ortho


swf_ortho

(PHP 4 >= 4.0.1)

swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho ( float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)

The swf_ortho() function defines an orthographic mapping of user coordinates onto the current viewport.

Anterior | Principal | Próxima
swf_ortho2 | Acima | swf_perspective


swf_perspective

(PHP 4 )

swf_perspective -- Define a perspective projection transformation

Description

void swf_perspective ( float fovy, float aspect, float near, float far)

The swf_perspective() function defines a perspective projection transformation. The fovy parameter is field-of-view angle in the y direction. The aspect parameter should be set to the aspect ratio of the viewport that is being drawn onto. The near parameter is the near clipping plane and the far parameter is the far clipping plane.

Nota: Various distortion artifacts may appear when performing a perspective projection, this is because Flash players only have a two dimensional matrix. Some are not to pretty.

Anterior | Principal | Próxima
swf_ortho | Acima | swf_placeobject


swf_placeobject

(PHP 4 )

swf_placeobject -- Place an object onto the screen

Description

void swf_placeobject ( int objid, int depth)

Places the object specified by objid in the current frame at a depth of depth. The objid parameter and the depth must be between 1 and 65535.

This uses the current mulcolor (specified by swf_mulcolor()) and the current addcolor (specified by swf_addcolor()) to color the object and it uses the current matrix to position the object.

Nota: Full RGBA colors are supported.

Anterior | Principal | Próxima
swf_perspective | Acima | swf_polarview


swf_polarview

(PHP 4 )

swf_polarview -- Define the viewer's position with polar coordinates

Description

void swf_polarview ( float dist, float azimuth, float incidence, float twist)

The swf_polarview() function defines the viewer's position in polar coordinates. The dist parameter gives the distance between the viewpoint to the world space origin. The azimuth parameter defines the azimuthal angle in the x,y coordinate plane, measured in distance from the y axis. The incidence parameter defines the angle of incidence in the y,z plane, measured in distance from the z axis. The incidence angle is defined as the angle of the viewport relative to the z axis. Finally the twist specifies the amount that the viewpoint is to be rotated about the line of sight using the right hand rule.

Anterior | Principal | Próxima
swf_placeobject | Acima | swf_popmatrix


swf_popmatrix

(PHP 4 )

swf_popmatrix -- Restore a previous transformation matrix

Description

void swf_popmatrix ( void )

The swf_popmatrix() function pushes the current transformation matrix back onto the stack.

Anterior | Principal | Próxima
swf_polarview | Acima | swf_posround


swf_posround

(PHP 4 )

swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved

Description

void swf_posround ( int round)

The swf_posround() function enables or disables the rounding of the translation when objects are placed or moved, there are times when text becomes more readable because rounding has been enabled. The round is whether to enable rounding or not, if set to the value of 1, then rounding is enabled, if set to 0 then rounding is disabled.

Anterior | Principal | Próxima
swf_popmatrix | Acima | swf_pushmatrix


swf_pushmatrix

(PHP 4 )

swf_pushmatrix -- Push the current transformation matrix back unto the stack

Description

void swf_pushmatrix ( void )

The swf_pushmatrix() function pushes the current transformation matrix back onto the stack.

Anterior | Principal | Próxima
swf_posround | Acima | swf_removeobject


swf_removeobject

(PHP 4 )

swf_removeobject -- Remove an object

Description

void swf_removeobject ( int depth)

Removes the object at the depth specified by depth.

Anterior | Principal | Próxima
swf_pushmatrix | Acima | swf_rotate


swf_rotate

(PHP 4 )

swf_rotate -- Rotate the current transformation

Description

void swf_rotate ( float angle, string axis)

The swf_rotate() rotates the current transformation by the angle given by the angle parameter around the axis given by the axis parameter. Valid values for the axis are 'x' (the x axis), 'y' (the y axis) or 'z' (the z axis).

Anterior | Principal | Próxima
swf_removeobject | Acima | swf_scale


swf_scale

(PHP 4 )

swf_scale -- Scale the current transformation

Description

void swf_scale ( float x, float y, float z)

The swf_scale() scales the x coordinate of the curve by the value of the x parameter, the y coordinate of the curve by the value of the y parameter, and the z coordinate of the curve by the value of the z parameter.

Anterior | Principal | Próxima
swf_rotate | Acima | swf_setfont


swf_setfont

(PHP 4 )

swf_setfont -- Change the current font

Description

void swf_setfont ( int fontid)

The swf_setfont() sets the current font to the value given by the fontid parameter.

Anterior | Principal | Próxima
swf_scale | Acima | swf_setframe


swf_setframe

(PHP 4 )

swf_setframe -- Switch to a specified frame

Description

void swf_setframe ( int framenumber)

The swf_setframe() changes the active frame to the frame specified by framenumber.

Anterior | Principal | Próxima
swf_setfont | Acima | swf_shapearc


swf_shapearc

(PHP 4 )

swf_shapearc -- Draw a circular arc

Description

void swf_shapearc ( float x, float y, float r, float ang1, float ang2)

The swf_shapearc() function draws a circular arc from angle A given by the ang1 parameter to angle B given by the ang2 parameter. The center of the circle has an x coordinate given by the x parameter and a y coordinate given by the y, the radius of the circle is given by the r parameter.

Anterior | Principal | Próxima
swf_setframe | Acima | swf_shapecurveto3


swf_shapecurveto3

(PHP 4 )

swf_shapecurveto3 -- Draw a cubic bezier curve

Description

void swf_shapecurveto3 ( float x1, float y1, float x2, float y2, float x3, float y3)

Draw a cubic bezier curve using the x,y coordinate pairs x1, y1 and x2,y2 as off curve control points and the x,y coordinate x3, y3 as an endpoint. The current position is then set to the x,y coordinate pair given by x3,y3.

Anterior | Principal | Próxima
swf_shapearc | Acima | swf_shapecurveto


swf_shapecurveto

(PHP 4 )

swf_shapecurveto -- Draw a quadratic bezier curve between two points

Description

void swf_shapecurveto ( float x1, float y1, float x2, float y2)

The swf_shapecurveto() function draws a quadratic bezier curve from the current location, though the x coordinate given by x1 and the y coordinate given by y1 to the x coordinate given by x2 and the y coordinate given by y2. The current position is then set to the x,y coordinates given by the x2 and y2 parameters

Anterior | Principal | Próxima
swf_shapecurveto3 | Acima | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4 )

swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap

Description

void swf_shapefillbitmapclip ( int bitmapid)

Sets the fill to bitmap clipped, empty spaces will be filled by the bitmap given by the bitmapid parameter.

Anterior | Principal | Próxima
swf_shapecurveto | Acima | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4 )

swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap

Description

void swf_shapefillbitmaptile ( int bitmapid)

Sets the fill to bitmap tile, empty spaces will be filled by the bitmap given by the bitmapid parameter (tiled).

Anterior | Principal | Próxima
swf_shapefillbitmapclip | Acima | swf_shapefilloff


swf_shapefilloff

(PHP 4 )

swf_shapefilloff -- Turns off filling

Description

void swf_shapefilloff ( void )

The swf_shapefilloff() function turns off filling for the current shape.

Anterior | Principal | Próxima
swf_shapefillbitmaptile | Acima | swf_shapefillsolid


swf_shapefillsolid

(PHP 4 )

swf_shapefillsolid -- Set the current fill style to the specified color

Description

void swf_shapefillsolid ( float r, float g, float b, float a)

The swf_shapefillsolid() function sets the current fill style to solid, and then sets the fill color to the values of the rgba parameters.

Anterior | Principal | Próxima
swf_shapefilloff | Acima | swf_shapelinesolid


swf_shapelinesolid

(PHP 4 )

swf_shapelinesolid -- Set the current line style

Description

void swf_shapelinesolid ( float r, float g, float b, float a, float width)

The swf_shapelinesolid() function sets the current line style to the color of the rgba parameters and width to the width parameter. If 0.0 is given as a width then no lines are drawn.

Anterior | Principal | Próxima
swf_shapefillsolid | Acima | swf_shapelineto


swf_shapelineto

(PHP 4 )

swf_shapelineto -- Draw a line

Description

void swf_shapelineto ( float x, float y)

The swf_shapelineto() draws a line to the x,y coordinates given by the x parameter & the y parameter. The current position is then set to the x,y parameters.

Anterior | Principal | Próxima
swf_shapelinesolid | Acima | swf_shapemoveto


swf_shapemoveto

(PHP 4 )

swf_shapemoveto -- Move the current position

Description

void swf_shapemoveto ( float x, float y)

The swf_shapemoveto() function moves the current position to the x coordinate given by the x parameter and the y position given by the y parameter.

Anterior | Principal | Próxima
swf_shapelineto | Acima | swf_showframe


swf_showframe

(PHP 4 )

swf_showframe -- Display the current frame

Description

void swf_showframe ( void )

The swf_showframe function will output the current frame.

Anterior | Principal | Próxima
swf_shapemoveto | Acima | swf_startbutton


swf_startbutton

(PHP 4 )

swf_startbutton -- Start the definition of a button

Description

void swf_startbutton ( int objid, int type)

The swf_startbutton() function starts off the definition of a button. The type parameter can either be TYPE_MENUBUTTON or TYPE_PUSHBUTTON. The TYPE_MENUBUTTON constant allows the focus to travel from the button when the mouse is down, TYPE_PUSHBUTTON does not allow the focus to travel when the mouse is down.

Anterior | Principal | Próxima
swf_showframe | Acima | swf_startdoaction


swf_startdoaction

(PHP 4 )

swf_startdoaction -- Start a description of an action list for the current frame

Description

void swf_startdoaction ( void )

The swf_startdoaction() function starts the description of an action list for the current frame. This must be called before actions are defined for the current frame.

Anterior | Principal | Próxima
swf_startbutton | Acima | swf_startshape


swf_startshape

(PHP 4 )

swf_startshape -- Start a complex shape

Description

void swf_startshape ( int objid)

The swf_startshape() function starts a complex shape, with an object id given by the objid parameter.

Anterior | Principal | Próxima
swf_startdoaction | Acima | swf_startsymbol


swf_startsymbol

(PHP 4 )

swf_startsymbol -- Define a symbol

Description

void swf_startsymbol ( int objid)

Define an object id as a symbol. Symbols are tiny flash movies that can be played simultaneously. The objid parameter is the object id you want to define as a symbol.

Anterior | Principal | Próxima
swf_startshape | Acima | swf_textwidth


swf_textwidth

(PHP 4 )

swf_textwidth -- Get the width of a string

Description

float swf_textwidth ( string str)

The swf_textwidth() function gives the width of the string, str, in pixels, using the current font and font size.

Anterior | Principal | Próxima
swf_startsymbol | Acima | swf_translate


swf_translate

(PHP 4 )

swf_translate -- Translate the current transformations

Description

void swf_translate ( float x, float y, float z)

The swf_translate() function translates the current transformation by the x, y, and z values given.

Anterior | Principal | Próxima
swf_textwidth | Acima | swf_viewport


swf_viewport

(PHP 4 )

swf_viewport -- Select an area for future drawing

Description

void swf_viewport ( float xmin, float xmax, float ymin, float ymax)

The swf_viewport() function selects an area for future drawing for xmin to xmax and ymin to ymax, if this function is not called the area defaults to the size of the screen.

Anterior | Principal | Próxima
swf_translate | Acima | SNMP Functions


SNMP Functions

Manual do PHP
Anterior Próxima

CII. SNMP Functions

Introdução

Requisitos

In order to use the SNMP functions on Unix you need to install the NET-SNMP package. On Windows these functions are only available on NT and not on Win95/98.

Instalação

Important: In order to use the UCD SNMP package, you need to define NO_ZEROLENGTH_COMMUNITY to 1 before compiling it. After configuring UCD SNMP, edit config.h and search for NO_ZEROLENGTH_COMMUNITY. Uncomment the #define line. It should look like this afterwards:
#define NO_ZEROLENGTH_COMMUNITY 1
Now compile PHP --with-snmp[=DIR].

If you see strange segmentation faults in combination with SNMP commands, you did not follow the above instructions. If you do not want to recompile UCD SNMP, you can compile PHP with the --enable-ucd-snmp-hack switch which will work around the misfeature.

The Windows distribution contains support files for SNMP in the mibs directory. This directory should be moved to DRIVE:\usr\mibs, where DRIVE must be replaced with the driveletter where PHP is installed on, e.g.: c:\usr\mibs.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
snmp_get_quick_print -- Fetches the current value of the UCD library's quick_print setting
snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library
snmpget -- Fetch an SNMP object
snmprealwalk -- Return all objects including their respective object ID within the specified one
snmpset -- Set an SNMP object
snmpwalk -- Fetch all the SNMP objects from an agent
snmpwalkoid -- Query for a tree of information about a network entity

Anterior | Principal | Próxima
swf_viewport | Acima | snmp_get_quick_print


snmp_get_quick_print

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmp_get_quick_print -- Fetches the current value of the UCD library's quick_print setting

Description

bool snmp_get_quick_print ( void )

Returns the current value stored in the UCD Library for quick_print. quick_print is off by default.

Exemplo 1. snmp_get_quick_print() example

<?php
  $quickprint = snmp_get_quick_print();
?>

Above function call would return FALSE if quick_print is off, and TRUE if quick_print is on.

snmp_get_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

See also snmp_set_quick_print() for a full description of what quick_print does.

Anterior | Principal | Próxima
SNMP Functions | Acima | snmp_set_quick_print


snmp_set_quick_print

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library

Description

void snmp_set_quick_print ( bool quick_print)

Sets the value of quick_print within the UCD SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the UCD SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

Setting quick_print is often used when using the information returned rather then displaying it.

<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a< br />\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<br />\n";
?>

The first value printed might be: 'Timeticks: (0) 0:00:00.00', whereas with quick_print enabled, just '0:00:00.00' would be printed.

By default the UCD SNMP library returns verbose values, quick_print is used to return only the value.

Currently strings are still returned with extra quotes, this will be corrected in a later release.

snmp_set_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

Anterior | Principal | Próxima
snmp_get_quick_print | Acima | snmpget


snmpget

(PHP 3, PHP 4 , PHP 5)

snmpget -- Fetch an SNMP object

Description

string snmpget ( string hostname, string community, string object_id [, int timeout [, int retries]])

Returns SNMP object value on success and FALSE on error.

The snmpget() function is used to read the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Anterior | Principal | Próxima
snmp_set_quick_print | Acima | snmprealwalk


snmprealwalk

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmprealwalk -- Return all objects including their respective object ID within the specified one

Description

array snmprealwalk ( string host, string community, string object_id [, int timeout [, int retries]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
snmpget | Acima | snmpset


snmpset

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

snmpset -- Set an SNMP object

Description

bool snmpset ( string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

Sets the specified SNMP object value, returning TRUE on success and FALSE on error.

The snmpset() function is used to set the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

Anterior | Principal | Próxima
snmprealwalk | Acima | snmpwalk


snmpwalk

(PHP 3, PHP 4 , PHP 5)

snmpwalk -- Fetch all the SNMP objects from an agent

Description

array snmpwalk ( string hostname, string community, string object_id [, int timeout [, int retries]])

Returns an array of SNMP object values starting from the object_id as root and FALSE on error.

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A NULL object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array. If object_id is specified, all the SNMP objects below that object_id are returned.

<?php
$a = snmpwalk("127.0.0.1", "public", "");
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

<?php
for ($i=0; $i < count($a); $i++) {
    echo $a[$i];
}
?>

Anterior | Principal | Próxima
snmpset | Acima | snmpwalkoid


snmpwalkoid

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmpwalkoid -- Query for a tree of information about a network entity

Description

array snmpwalkoid ( string hostname, string community, string object_id [, int timeout [, int retries]])

Returns an associative array with object ids and their respective object value starting from the object_id as root and FALSE on error.

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A NULL object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array. If object_id is specified, all the SNMP objects below that object_id are returned.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility.

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

<?php
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

Anterior | Principal | Próxima
snmpwalk | Acima | Socket Functions


Socket Functions

Manual do PHP
Anterior Próxima

CIII. Socket Functions

Introdução

The socket extension implements a low-level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client.

For a more generic client-side socket interface, see
stream_socket_client(),
stream_socket_server(),
fsockopen(), and
pfsockopen().

When using these functions, it is important to remember that while many of them have identical names to their C counterparts, they often have different declarations. Please be sure to read the descriptions to avoid confusion.

Those unfamiliar with socket programming can find a lot of useful material in the appropriate Unix man pages, and there is a great deal of tutorial information on socket programming in C on the web, much of which can be applied, with slight modifications, to socket programming in PHP. The Unix Socket FAQ might be a good start.

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

The socket functions described here are part of an extension to PHP which must be enabled at compile time by giving the --enable-sockets option to configure.

Nota: O suporte ao IPv6 foi acrescentado no PHP 5.0.0.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

AF_UNIX (integer)

AF_INET (integer)

AF_INET6 (integer)

SOCK_STREAM (integer)

SOCK_DGRAM (integer)

SOCK_RAW (integer)

SOCK_SEQPACKET (integer)

SOCK_RDM (integer)

MSG_OOB (integer)

MSG_WAITALL (integer)

MSG_PEEK (integer)

MSG_DONTROUTE (integer)

SO_DEBUG (integer)

SO_REUSEADDR (integer)

SO_KEEPALIVE (integer)

SO_DONTROUTE (integer)

SO_LINGER (integer)

SO_BROADCAST (integer)

SO_OOBINLINE (integer)

SO_SNDBUF (integer)

SO_RCVBUF (integer)

SO_SNDLOWAT (integer)

SO_RCVLOWAT (integer)

SO_SNDTIMEO (integer)

SO_RCVTIMEO (integer)

SO_TYPE (integer)

SO_ERROR (integer)

SOL_SOCKET (integer)

PHP_NORMAL_READ (integer)

PHP_BINARY_READ (integer)

SOL_TCP (integer)

SOL_UDP (integer)

Socket Errors

The socket extension was written to provide a useable interface to the powerful BSD sockets. Care has been taken that the functions work equally well on Win32 and Unix implementations. Almost all of the sockets functions may fail under certain conditions and therefore emit an E_WARNING message describing the error. Sometimes this doesn't happen to the desire of the developer. For example the function socket_read() may suddenly emit an E_WARNING message because the connection broke unexpectedly. It's common to suppress the warning with the @-operator and catch the error code within the application with the socket_last_error() function. You may call the socket_strerror() function with this error code to retrieve a string describing the error. See their description for more information.

Nota: The E_WARNING messages generated by the socket extension are in English though the retrieved error message will appear depending on the current locale (LC_MESSAGES):
Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet

Exemplos

Exemplo 1. Socket example: Simple TCP/IP server

This example shows a simple talkback server. Change the address and port variables to suit your setup and execute. You may then connect to the server with a command similar to: telnet 192.168.1.53 10000 (where the address and port match your setup). Anything you type will then be output on the server side, and echoed back to you. To disconnect, enter 'quit'.

#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

/* Turn on implicit output flushing so we see what we're getting
 * as it comes in. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n";
}

if (($ret = socket_bind($sock, $address, $port)) < 0) {
    echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($ret = socket_listen($sock, 5)) < 0) {
    echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) < 0) {
        echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
        break;
    }
    /* Send instructions. */
    $msg = "\nWelcome to the PHP Test Server. \n" .
        "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Exemplo 2. Socket example: Simple TCP/IP client

This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits.

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>

Índice
socket_accept -- Accepts a connection on a socket
socket_bind -- Binds a name to a socket
socket_clear_error -- Clears the error on the socket or the last error code
socket_close -- Closes a socket resource
socket_connect -- Initiates a connection on a socket
socket_create_listen -- Opens a socket on port to accept connections
socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in an array.
socket_create -- Create a socket (endpoint for communication)
socket_get_option -- Gets socket options for the socket
socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.
socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.
socket_iovec_add -- Adds a new vector to the scatter/gather array
socket_iovec_alloc -- Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, and readv
socket_iovec_delete -- Deletes a vector from an array of vectors
socket_iovec_fetch -- Returns the data held in the iovec specified by iovec_id[iovec_position]
socket_iovec_free -- Frees the iovec specified by iovec_id
socket_iovec_set -- Sets the data held in iovec_id[iovec_position] to new_val
socket_last_error -- Returns the last error on the socket
socket_listen -- Listens for a connection on a socket
socket_read -- Reads a maximum of length bytes from a socket
socket_readv -- Reads from an fd, using the scatter-gather array defined by iovec_id
socket_recv -- Receives data from a connected socket
socket_recvfrom -- Receives data from a socket, connected or not
socket_recvmsg -- Used to receive messages on a socket, whether connection-oriented or not
socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout
socket_send -- Sends data to a connected socket
socket_sendmsg -- Sends a message to a socket, regardless of whether it is connection-oriented or not
socket_sendto -- Sends a message to a socket, whether it is connected or not
socket_set_block -- Sets blocking mode on a socket resource
socket_set_nonblock -- Sets nonblocking mode for file descriptor fd
socket_set_option -- Sets socket options for the socket
socket_shutdown -- Shuts down a socket for receiving, sending, or both.
socket_strerror -- Return a string describing a socket error
socket_write -- Write to a socket
socket_writev -- Writes to a file descriptor, fd, using the scatter-gather array defined by iovec_id

Anterior | Principal | Próxima
snmpwalkoid | Acima | socket_accept


socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_accept -- Accepts a connection on a socket

Description

resource socket_accept ( resource socket)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

After the socket socket has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket resource is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, socket_accept() will block until a connection becomes present. If socket has been made non-blocking using socket_set_blocking() or socket_set_nonblock(), FALSE will be returned.

The socket resource returned by socket_accept() may not be used to accept new connections. The original listening socket socket, however, remains open and may be reused.

Returns a new socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_connect(),
socket_listen(),
socket_create(), and
socket_strerror().

Anterior | Principal | Próxima
Socket Functions | Acima | socket_bind


socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bind -- Binds a name to a socket

Description

bool socket_bind ( resource socket, string address [, int port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

socket_bind() binds the name given in address to the socket described by socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix-domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Retorna TRUE em caso de sucesso ou FALSE em falhas. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error. Note that socket_last_error() is reported to return an invalid error code in case you are trying to bind the socket to a wrong address that does not belong to your Windows 9x/ME machine.

See also
socket_connect(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Anterior | Principal | Próxima
socket_accept | Acima | socket_clear_error


socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_error -- Clears the error on the socket or the last error code

Description

void socket_clear_error ( [resource socket])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function clears the error code on the given socket or the global last socket error.

This function allows explicitly resetting the error code value either of a socket or of the extension global last error code. This may be useful to detect within a part of the application if an error occurred or not.

See also socket_last_error() and socket_strerror().

Anterior | Principal | Próxima
socket_bind | Acima | socket_close


socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_close -- Closes a socket resource

Description

void socket_close ( resource socket)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

socket_close() closes the socket resource given by socket.

Nota: socket_close() can't be used on PHP file resources created with fopen(), popen(), fsockopen(), or pfsockopen(); it is meant for sockets created with socket_create() or socket_accept().

See also socket_bind(), socket_listen(),
socket_create() and
socket_strerror().

Anterior | Principal | Próxima
socket_clear_error | Acima | socket_connect


socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connect -- Initiates a connection on a socket

Description

bool socket_connect ( resource socket, string address [, int port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Initiates a connection using the socket resource socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Retorna TRUE em caso de sucesso ou FALSE em falhas. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Anterior | Principal | Próxima
socket_close | Acima | socket_create_listen


socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen -- Opens a socket on port to accept connections

Description

resource socket_create_listen ( int port [, int backlog])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

socket_create_listen() creates a new socket resource of type AF_INET listening on all local interfaces on the given port waiting for new connections.

The backlog parameter defines the maximum length the queue of pending connections may grow to. SOMAXCONN may be passed as backlog parameter, see socket_listen() for more information.

socket_create_listen() returns a new socket resource on success or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Nota: If you want to create a socket which only listens on a certain interface you need to use socket_create(), socket_bind() and socket_listen().

See also
socket_create(),
socket_bind(),
socket_listen(),
socket_last_error() and
socket_strerror().

Anterior | Principal | Próxima
socket_connect | Acima | socket_create_pair


socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in an array.

Description

bool socket_create_pair ( int domain, int type, int protocol, array &fd)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

socket_create_pair() creates two connected and indistinguishable sockets, and stores them in &fd. This function is commonly used in IPC (InterProcess Communication).

The domain parameter specifies the protocol family to be used by the socket.

Tabela 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family. Supported only in windows.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0. Supported only in windows.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Tabela 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Tabela 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

Exemplo 1. socket_create_pair() example

<?php
$sockets = array();
$uniqid = uniqid('');
if (file_exists("/tmp/$uniqid.sock")) {
    die('Temporary socket already exists.');
}
/* Setup socket pair */
if (!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets)) {
    echo socket_strerror(socket_last_error());
}
/* Send and Recieve Data */
if (!socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n"))) {
    echo socket_strerror(socket_last_error());
}
if (!$data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) {
    echo socket_strerror(socket_last_error());
}
var_dump($data);

/* Close sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Exemplo 2. socket_create_pair() IPC example

<?php
$ary = array();
$strone = 'Message From Parent.';
$strtwo = 'Message From Child.';
if (!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary)) {
    echo socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Could not fork Process.';
} elseif ($pid) {
    /*parent*/
    socket_close($ary[0]);
    if (!socket_write($ary[1], $strone, strlen($strone))) {
        echo socket_strerror(socket_last_error());
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Recieved $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*child*/
    socket_close($ary[1]);
    if (!socket_write($ary[0], $strtwo, strlen($strtwo))) {
        echo socket_strerror(socket_last_error());
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Recieved $strone\n";
    }
    socket_close($ary[0]);
}
?>

Anterior | Principal | Próxima
socket_create_listen | Acima | socket_create


socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_create -- Create a socket (endpoint for communication)

Description

resource socket_create ( int domain, int type, int protocol)

Creates and returns a socket resource, also referred to as an endpoint of communication. A typical network connection is made up of 2 sockets, one performing the role of the client, and another performing the role of the server.

The domain parameter specifies the protocol family to be used by the socket.

Tabela 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Tabela 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Tabela 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

socket_create() Returns a socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

Nota: If an invalid domain or type is given, socket_create() defaults to AF_INET and SOCK_STREAM respectively and additionally emits an E_WARNING message.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(), and
socket_strerror().

Anterior | Principal | Próxima
socket_create_pair | Acima | socket_get_option


socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option -- Gets socket options for the socket

Description

mixed socket_get_option ( resource socket, int level, int optname)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The socket_get_option() function retrieves the value for the option specified by the optname parameter for the socket specified by the socket parameter. socket_get_option() will return FALSE on failure.

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

Tabela 1. Available Socket Options

Option | Description
SO_DEBUG | Reports whether debugging information is being recorded.
SO_ACCEPTCONN | Reports whether socket listening is enabled.
SO_BROADCAST | Reports whether transmission of broadcast messages is supported.
SO_REUSEADDR | Reports whether local addresses can be reused.
SO_KEEPALIVE | Reports whether connections are kept active with periodic transmission of messages. If the connected socket fails to respond to these messages, the connection is broken and processes writing to that socket are notified with a SIGPIPE signal.
SO_LINGER | Reports whether the socket lingers on socket_close() if data is present.
SO_OOBINLINE | Reports whether the socket leaves out-of-band data inline.
SO_SNDBUF | Reports send buffer size information.
SO_RCVBUF | Reports recieve buffer size information.
SO_ERROR | Reports information about error status and clears it.
SO_TYPE | Reports the socket type.
SO_DONTROUTE | Reports whether outgoing messages bypass the standard routing facilities.
SO_RCVLOWAT | Reports the minimum number of bytes to process for socket input operations. ( Defaults to 1 )
SO_RCVTIMEO | Reports the timeout value for input operations.
SO_SNDLOWAT | Reports the minimum number of bytes to process for socket output operations.
SO_SNDTIMEO | Reports the timeout value specifying the amount of time that an output function blocks because flow control prevents data from being sent.

Nota: This function used to be called socket_getopt() prior to PHP 4.3.0

Anterior | Principal | Próxima
socket_create | Acima | socket_getpeername


socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.

Description

bool socket_getpeername ( resource socket, string &addr [, int &port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

If the given socket is of type AF_INET or AF_INET6, socket_getpeername() will return the peers (remote) IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getpeername() will return the Unix filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

Nota: socket_getpeername() should not be used with AF_UNIX sockets created with socket_accept(). Only sockets created with socket_connect() or a primary server socket following a call to socket_bind() will return meaningful values.

Retorna TRUE em caso de sucesso ou FALSE em falhas. socket_getpeername() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getsockname(),
socket_last_error() and
socket_strerror().

Anterior | Principal | Próxima
socket_get_option | Acima | socket_getsockname


socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.

Description

bool socket_getsockname ( resource socket, string &addr [, int &port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

If the given socket is of type AF_INET or AF_INET6, socket_getsockname() will return the local IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getsockname() will return the Unix filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

Nota: socket_getsockname() should not be used with AF_UNIX sockets created with socket_connect(). Only sockets created with socket_accept() or a primary server socket following a call to socket_bind() will return meaningful values.

Retorna TRUE em caso de sucesso ou FALSE em falhas. socket_getsockname() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getpeername(),
socket_last_error() and
socket_strerror().

Anterior | Principal | Próxima
socket_getpeername | Acima | socket_iovec_add


socket_iovec_add

(PHP 4 >= 4.1.0)

socket_iovec_add -- Adds a new vector to the scatter/gather array

Description

bool socket_iovec_add ( resource iovec, int iov_len)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_getsockname | Acima | socket_iovec_alloc


socket_iovec_alloc

(PHP 4 >= 4.1.0)

socket_iovec_alloc -- Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, and readv

Description

resource socket_iovec_alloc ( int num_vectors [, int ])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_iovec_add | Acima | socket_iovec_delete


socket_iovec_delete

(PHP 4 >= 4.1.0)

socket_iovec_delete -- Deletes a vector from an array of vectors

Description

bool socket_iovec_delete ( resource iovec, int iov_pos)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_iovec_alloc | Acima | socket_iovec_fetch


socket_iovec_fetch

(PHP 4 >= 4.1.0)

socket_iovec_fetch -- Returns the data held in the iovec specified by iovec_id[iovec_position]

Description

string socket_iovec_fetch ( resource iovec, int iovec_position)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_iovec_delete | Acima | socket_iovec_free


socket_iovec_free

(PHP 4 >= 4.1.0)

socket_iovec_free -- Frees the iovec specified by iovec_id

Description

bool socket_iovec_free ( resource iovec)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_iovec_fetch | Acima | socket_iovec_set


socket_iovec_set

(PHP 4 >= 4.1.0)

socket_iovec_set -- Sets the data held in iovec_id[iovec_position] to new_val

Description

bool socket_iovec_set ( resource iovec, int iovec_position, string new_val)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_iovec_free | Acima | socket_last_error


socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_error -- Returns the last error on the socket

Description

int socket_last_error ( [resource socket])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function returns a socket error code.

If a socket resource is passed to this function, the last error which occurred on this particular socket is returned. If the socket resource is omitted, the error code of the last failed socket function is returned. The latter is in particular helpful for functions like socket_create() which don't return a socket on failure and socket_select() which can fail for reasons not directly tied to a particular socket. The error code is suitable to be fed to socket_strerror() which returns a string describing the given error code.
<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
    die("Couldn't create socket, error code is: " . socket_last_error() .
        ",error message is: " . socket_strerror(socket_last_error()));
}
?>

Nota: socket_last_error() does not clear the error code, use socket_clear_error() for this purpose.

Anterior | Principal | Próxima
socket_iovec_set | Acima | socket_listen


socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listen -- Listens for a connection on a socket

Description

bool socket_listen ( resource socket [, int backlog])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

After the socket socket has been created using socket_create() and bound to a name with socket_bind(), it may be told to listen for incoming connections on socket.

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

Nota: The maximum number passed to the backlog parameter highly depends on the underlying platform. On Linux, it is silently truncated to SOMAXCONN. On win32, if passed SOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.

socket_listen() is applicable only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

Retorna TRUE em caso de sucesso ou FALSE em falhas. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_create() and
socket_strerror().

Anterior | Principal | Próxima
socket_last_error | Acima | socket_read


socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_read -- Reads a maximum of length bytes from a socket

Description

string socket_read ( resource socket, int length [, int type])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function socket_read() reads from the socket resource socket created by the socket_create() or socket_accept() functions. The maximum number of bytes read is specified by the length parameter. Otherwise you can use \r, \n, or \0 to end reading (depending on the type parameter, see below).

socket_read() returns the data as a string on success, or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual representation of the error.

Nota: socket_read() may return a zero length string ("") indicating the end of communication (i.e. the remote end point has closed the connection).

Optional type parameter is a named constant:

  • PHP_BINARY_READ - use the system read() function. Safe for reading binary data. (Default in PHP >= 4.1.0)

  • PHP_NORMAL_READ - reading stops at \n or \r. (Default in PHP <= 4.0.6)

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(),
socket_strerror() and
socket_write().

Anterior | Principal | Próxima
socket_listen | Acima | socket_readv


socket_readv

(PHP 4 >= 4.1.0)

socket_readv -- Reads from an fd, using the scatter-gather array defined by iovec_id

Description

bool socket_readv ( resource socket, resource iovec_id)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_read | Acima | socket_recv


socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recv -- Receives data from a connected socket

Description

int socket_recv ( resource socket, string &buf, int len, int flags)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_readv | Acima | socket_recvfrom


socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfrom -- Receives data from a socket, connected or not

Description

int socket_recvfrom ( resource socket, string &buf, int len, int flags, string &name [, int &port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_recv | Acima | socket_recvmsg


socket_recvmsg

(PHP 4 >= 4.1.0)

socket_recvmsg -- Used to receive messages on a socket, whether connection-oriented or not

Description

bool socket_recvmsg ( resource socket, resource iovec, array &control, int &controllen, int &flags, string &addr [, int &port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_recvfrom | Acima | socket_select


socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout

Description

int socket_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket resource arrays are in fact the so-called file descriptor sets. Three independent arrays of socket resources are watched.

The sockets listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a socket resource is also ready on end-of-file, in which case a socket_read() will return a zero length string).

The sockets listed in the write array will be watched to see if a write will not block.

The sockets listed in the except array will be watched for exceptions.

Atenção

On exit, the arrays are modified to indicate which socket resource actually changed status.

You do not need to pass every array to socket_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after socket_select() returns.

Exemplo 1. socket_select() example

<?php
/* Prepare the read array */
$read = array($socket1, $socket2);

$num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0);

if ($num_changed_sockets === false) {
    /* Error handling */
} else if ($num_changed_sockets > 0) {
    /* At least at one of the sockets something interesting happened */
}
?>

Nota: Due a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

Exemplo 2. Using NULL with socket_select()

<?php
socket_select($r, $w, $e = NULL, 0);
?>

The tv_sec and tv_usec together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. tv_sec may be zero , causing socket_select() to return immediately. This is useful for polling. If tv_sec is NULL (no timeout), socket_select() can block indefinitely.

On success socket_select() returns the number of socket resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned. The error code can be retrieved with socket_last_error().

Nota: Be sure to use the === operator when checking for an error. Since the socket_select() may return 0 the comparison with == would evaluate to TRUE:

Exemplo 3. Understanding socket_select()'s result

<?php
if (false === socket_select($r, $w, $e = NULL, 0)) {
    echo "socket_select() failed, reason: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Nota: Be aware that some socket implementations need to be handled very carefully. A few basic rules:

  • You should always try to use socket_select() without timeout. Your program should have nothing to do if there is no data available. Code that depends on timeouts is not usually portable and difficult to debug.

  • No socket resource must be added to any set if you do not intend to check its result after the socket_select() call, and respond appropriately. After socket_select() returns, all socket resources in all arrays must be checked. Any socket resource that is available for writing must be written to, and any socket resource available for reading must be read from.

  • If you read/write to a socket returns in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

  • It's common to most socket implementations that the only exception caught with the except array is out-of-bound data received on a socket.

See also
socket_read(),
socket_write(),
socket_last_error() and
socket_strerror().

Anterior | Principal | Próxima
socket_recvmsg | Acima | socket_send


socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_send -- Sends data to a connected socket

Description

int socket_send ( resource socket, string buf, int len, int flags)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function socket_send() sends len bytes to the socket socket from buf

The value of flags can be any ORed combination of the following:

Tabela 1. possible values for flags

0x1 | Process OOB (out-of-band) data
0x2 | Peek at incoming message
0x4 | Bypass routing, use direct interface
0x8 | Data completes record
0x100 | Data completes transaction

See also socket_sendmsg() and socket_sendto().

Anterior | Principal | Próxima
socket_select | Acima | socket_sendmsg


socket_sendmsg

(PHP 4 >= 4.1.0)

socket_sendmsg -- Sends a message to a socket, regardless of whether it is connection-oriented or not

Description

bool socket_sendmsg ( resource socket, resource iovec, int flags, string addr [, int port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_send | Acima | socket_sendto


socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int socket_sendto ( resource socket, string buf, int len, int flags, string addr [, int port])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function socket_sendto() sends len bytes from buf through the socket socket to the port at the address addr

The value of flags can be one of the following:

Tabela 1. possible values for flags

0x1 | Process OOB (out-of-band) data.
0x2 | Peek at incoming message.
0x4 | Bypass routing, use direct interface.
0x8 | Data completes record.
0x100 | Data completes transaction.

Exemplo 1. socket_sendto() Example

<?php
    $sh = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if (socket_bind($sh, '127.0.0.1', 4242)) {
        echo "Socket bound correctly";
    }
    $buf = 'Test Message';
    $len = strlen($buf);
    if (socket_sendto($sh, $buf, $len, 0x100, '192.168.0.2', 4242) !== false) {
        echo "Message sent correctly";
    }
    socket_close($sh);
?>

See also socket_send() and socket_sendmsg().

Anterior | Principal | Próxima
socket_sendmsg | Acima | socket_set_block


socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_block -- Sets blocking mode on a socket resource

Description

bool socket_set_block ( resource socket)

The socket_set_block() function removes the O_NONBLOCK flag on the socket specified by the socket parameter.

Exemplo 1. socket_set_block() example

<?php

$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) { // $socket is now nonblocking
    echo socket_strerror(socket_last_error());
}

if (!socket_set_block($socket)) {     // $socket is now blocking
    echo socket_strerror(socket_last_error());
}

?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also socket_set_nonblock() and socket_set_option()

Anterior | Principal | Próxima
socket_sendto | Acima | socket_set_nonblock


socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblock -- Sets nonblocking mode for file descriptor fd

Description

bool socket_set_nonblock ( resource socket)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The socket_set_nonblock() function sets the O_NONBLOCK flag on the socket specified by the socket parameter.

Exemplo 1. socket_set_nonblock() example

<?php
$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) {
    echo socket_strerror(socket_last_error());
}
?>

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also socket_set_block() and socket_set_option()

Anterior | Principal | Próxima
socket_set_block | Acima | socket_set_option


socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_option -- Sets socket options for the socket

Description

bool socket_set_option ( resource socket, int level, int optname, mixed optval)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The socket_set_option() function sets the option specified by the optname parameter, at the protocol level specified by the level parameter, to the value pointed to by the optval parameter for the socket specified by the socket parameter. socket_set_option() will return FALSE on failure.

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

The available socket options are the same as those for the socket_get_option() function.

Nota: This function used to be called socket_setopt() prior to PHP 4.3.0

Anterior | Principal | Próxima
socket_set_nonblock | Acima | socket_shutdown


socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown -- Shuts down a socket for receiving, sending, or both.

Description

bool socket_shutdown ( resource socket [, int how])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

The value of how can be one of the following:

Tabela 1. possible values for how

0 | Shutdown socket reading
1 | Shutdown socket writing
2 | Shutdown socket reading and writing

Anterior | Principal | Próxima
socket_set_option | Acima | socket_strerror


socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerror -- Return a string describing a socket error

Description

string socket_strerror ( int errno)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

socket_strerror() takes as its errno parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text. This makes it a bit more pleasant to figure out why something didn't work; for instance, instead of having to track down a system include file to find out what '-111' means, you just pass it to socket_strerror(), and it tells you what happened.

Exemplo 1. socket_strerror() example

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

The expected output from the above example (assuming the script is not run with root privileges):
socket_bind() failed: reason: Permission denied

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(), and
socket_create().

Anterior | Principal | Próxima
socket_shutdown | Acima | socket_write


socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_write -- Write to a socket

Description

int socket_write ( resource socket, string buffer [, int length])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

The function socket_write() writes to the socket socket from buffer.

The optional parameter length can specify an alternate length of bytes written to the socket. If this length is greater then the buffer length, it is silently truncated to the length of the buffer.

Returns the number of bytes successfully written to the socket or FALSE one error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Nota: socket_write() does not necessarily write all bytes from the given buffer. It's valid that, depending on the network buffers etc., only a certain amount of data, even one byte, is written though your buffer is greater. You have to watch out so you don't unintentionally forget to transmit the rest of your data.

Nota: It is perfectly valid for socket_write() to return zero which means no bytes have been written. Be sure to use the === operator to check for FALSE in case of an error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_read() and
socket_strerror().

Anterior | Principal | Próxima
socket_strerror | Acima | socket_writev


socket_writev

(PHP 4 >= 4.1.0)

socket_writev -- Writes to a file descriptor, fd, using the scatter-gather array defined by iovec_id

Description

bool socket_writev ( resource socket, resource iovec_id)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
socket_write | Acima | Standard PHP Library (SPL) Functions


Standard PHP Library (SPL) Functions

Manual do PHP
Anterior Próxima

CIV. Standard PHP Library (SPL) Functions

Introdução

SPL is a collection of interfaces and classes that are meant to solve standard problems.

Instalação

This extension is available and compiled by default in PHP 5.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

RIT_LEAVES_ONLY (integer)

RIT_SELF_FIRST (integer)

RIT_CHILD_FIRST (integer)

CIT_CALL_TOSTRING (integer)

CIT_CATCH_GET_CHILD (integer)

Índice
ArrayIterator::current -- Return current array entry
ArrayIterator::key -- Return current array key
ArrayIterator::next -- Move to next entry
ArrayIterator::rewind -- Rewind array back to the start
ArrayIterator::valid -- Check whether array contains more entries
ArrayObject::__construct -- Construct a new array object
ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance
DirectoryIterator::__construct -- Constructs a new dir iterator from a path.
DirectoryIterator::current -- Return this (needed for Iterator interface)
DirectoryIterator::fileATime -- Get last access time of file
DirectoryIterator::fileCTime -- Get inode modification time of file
DirectoryIterator::fileGroup -- Get file group
DirectoryIterator::fileInode -- Get file inode
DirectoryIterator::fileMTime -- Get last modification time of file
DirectoryIterator::fileOwner -- Get file owner
DirectoryIterator::filePerms -- Get file permissions
DirectoryIterator::fileSize -- Get file size
DirectoryIterator::fileType -- Get file type
DirectoryIterator::getFilename -- Return filename of current dir entry
DirectoryIterator::getPath -- Return directory path
DirectoryIterator::getPathname -- Return path and filename of current dir entry
DirectoryIterator::hasMore -- Check whether dir contains more entries
DirectoryIterator::isDir -- Returns true if file is directory
DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'
DirectoryIterator::isExecutable -- Returns true if file is executable
DirectoryIterator::isFile -- Returns true if file is a regular file
DirectoryIterator::isLink -- Returns true if file is symbolic link
DirectoryIterator::isReadable -- Returns true if file can be read
DirectoryIterator::isWritable -- Returns true if file can be written
DirectoryIterator::key -- Return current dir entry
DirectoryIterator::next -- Move to next entry
DirectoryIterator::rewind -- Rewind dir back to the start
RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory
RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'
RecursiveDirectoryIterator::key -- Return path and filename of current dir entry
RecursiveDirectoryIterator::next -- Move to next entry
RecursiveDirectoryIterator::rewind -- Rewind dir back to the start
SimpleXMLIterator::current -- Return current SimpleXML entry
SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object
SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object
SimpleXMLIterator::key -- Return current SimpleXML key
SimpleXMLIterator::next -- Move to next entry
SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start
SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Anterior | Principal | Próxima
socket_writev | Acima | ArrayIterator::current


ArrayIterator::current

(no version information, might be only in CVS)

ArrayIterator::current -- Return current array entry

Description

mixed ArrayIterator::current ( void )

This function returns the current array entry

Exemplo 1. ArrayIterator::current() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

The above example will output:

1 => one
2 => two
3 => three

Anterior | Principal | Próxima
Standard PHP Library (SPL) Functions | Acima | ArrayIterator::key


ArrayIterator::key

(no version information, might be only in CVS)

ArrayIterator::key -- Return current array key

Description

mixed ArrayIterator::key ( void )

This function returns the current array key

Exemplo 1. ArrayIterator::key() example

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>

Anterior | Principal | Próxima
ArrayIterator::current | Acima | ArrayIterator::next


ArrayIterator::next

(no version information, might be only in CVS)

ArrayIterator::next -- Move to next entry

Description

void ArrayIterator::next ( void )

This function moves the iterator to the next entry.

Exemplo 1. ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

0 => zero
1 => one

Anterior | Principal | Próxima
ArrayIterator::key | Acima | ArrayIterator::rewind


ArrayIterator::rewind

(no version information, might be only in CVS)

ArrayIterator::rewind -- Rewind array back to the start

Description

void ArrayIterator::rewind ( void )

This function rewinds the iterator to the begining.

Exemplo 1. ArrayObject::rewind() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the begining
echo $iterator->key(); //0
?>

Anterior | Principal | Próxima
ArrayIterator::next | Acima | ArrayIterator::valid


ArrayIterator::valid

(no version information, might be only in CVS)

ArrayIterator::valid -- Check whether array contains more entries

Description

bool ArrayIterator::valid ( void )

This function checks if the array contains any more entries.

Exemplo 1. ArrayIterator::valid() example

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // advance to the next item

//bool(false) because there is only one array element
var_dump($iterator->valid());
?>

Anterior | Principal | Próxima
ArrayIterator::rewind | Acima | ArrayObject::__construct


ArrayObject::__construct

(no version information, might be only in CVS)

ArrayObject::__construct -- Construct a new array object

Description

void ArrayObject::__construct ( mixed input)

This constructs a new array object. The input parameter accepts an array or another ArrayObject.

Exemplo 1. ArrayObject::__construct() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

The above example will output:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Anterior | Principal | Próxima
ArrayIterator::valid | Acima | ArrayObject::getIterator


ArrayObject::getIterator

(no version information, might be only in CVS)

ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance

Description

ArrayIterator ArrayObject::getIterator ( void )

This function will return an iterator from an ArrayObject.

Exemplo 1. ArrayObject::getIterator() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

1 => one
2 => two
3 => three

Anterior | Principal | Próxima
ArrayObject::__construct | Acima | DirectoryIterator::__construct


DirectoryIterator::__construct

(no version information, might be only in CVS)

DirectoryIterator::__construct -- Constructs a new dir iterator from a path.

Description

void DirectoryIterator::__construct ( string path)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ArrayObject::getIterator | Acima | DirectoryIterator::current


DirectoryIterator::current

(no version information, might be only in CVS)

DirectoryIterator::current -- Return this (needed for Iterator interface)

Description

DirectoryIterator DirectoryIterator::current ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::__construct | Acima | DirectoryIterator::fileATime


DirectoryIterator::fileATime

(no version information, might be only in CVS)

DirectoryIterator::fileATime -- Get last access time of file

Description

int DirectoryIterator::fileATime ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::current | Acima | DirectoryIterator::fileCTime


DirectoryIterator::fileCTime

(no version information, might be only in CVS)

DirectoryIterator::fileCTime -- Get inode modification time of file

Description

int DirectoryIterator::fileCTime ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileATime | Acima | DirectoryIterator::fileGroup


DirectoryIterator::fileGroup

(no version information, might be only in CVS)

DirectoryIterator::fileGroup -- Get file group

Description

int DirectoryIterator::fileGroup ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileCTime | Acima | DirectoryIterator::fileInode


DirectoryIterator::fileInode

(no version information, might be only in CVS)

DirectoryIterator::fileInode -- Get file inode

Description

int DirectoryIterator::fileInode ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileGroup | Acima | DirectoryIterator::fileMTime


DirectoryIterator::fileMTime

(no version information, might be only in CVS)

DirectoryIterator::fileMTime -- Get last modification time of file

Description

int DirectoryIterator::fileMTime ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileInode | Acima | DirectoryIterator::fileOwner


DirectoryIterator::fileOwner

(no version information, might be only in CVS)

DirectoryIterator::fileOwner -- Get file owner

Description

int DirectoryIterator::fileOwner ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileMTime | Acima | DirectoryIterator::filePerms


DirectoryIterator::filePerms

(no version information, might be only in CVS)

DirectoryIterator::filePerms -- Get file permissions

Description

int DirectoryIterator::filePerms ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileOwner | Acima | DirectoryIterator::fileSize


DirectoryIterator::fileSize

(no version information, might be only in CVS)

DirectoryIterator::fileSize -- Get file size

Description

int DirectoryIterator::fileSize ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::filePerms | Acima | DirectoryIterator::fileType


DirectoryIterator::fileType

(no version information, might be only in CVS)

DirectoryIterator::fileType -- Get file type

Description

string DirectoryIterator::fileType ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileSize | Acima | DirectoryIterator::getFilename


DirectoryIterator::getFilename

(no version information, might be only in CVS)

DirectoryIterator::getFilename -- Return filename of current dir entry

Description

string DirectoryIterator::getFilename ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::fileType | Acima | DirectoryIterator::getPath


DirectoryIterator::getPath

(no version information, might be only in CVS)

DirectoryIterator::getPath -- Return directory path

Description

string DirectoryIterator::getPath ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::getFilename | Acima | DirectoryIterator::getPathname


DirectoryIterator::getPathname

(no version information, might be only in CVS)

DirectoryIterator::getPathname -- Return path and filename of current dir entry

Description

string DirectoryIterator::getPathname ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::getPath | Acima | DirectoryIterator::hasMore


DirectoryIterator::hasMore

(no version information, might be only in CVS)

DirectoryIterator::hasMore -- Check whether dir contains more entries

Description

string DirectoryIterator::hasMore ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::getPathname | Acima | DirectoryIterator::isDir


DirectoryIterator::isDir

(no version information, might be only in CVS)

DirectoryIterator::isDir -- Returns true if file is directory

Description

bool DirectoryIterator::isDir ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::hasMore | Acima | DirectoryIterator::isDot


DirectoryIterator::isDot

(no version information, might be only in CVS)

DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'

Description

bool DirectoryIterator::isDot ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isDir | Acima | DirectoryIterator::isExecutable


DirectoryIterator::isExecutable

(no version information, might be only in CVS)

DirectoryIterator::isExecutable -- Returns true if file is executable

Description

bool DirectoryIterator::isExecutable ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isDot | Acima | DirectoryIterator::isFile


DirectoryIterator::isFile

(no version information, might be only in CVS)

DirectoryIterator::isFile -- Returns true if file is a regular file

Description

bool DirectoryIterator::isFile ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isExecutable | Acima | DirectoryIterator::isLink


DirectoryIterator::isLink

(no version information, might be only in CVS)

DirectoryIterator::isLink -- Returns true if file is symbolic link

Description

bool DirectoryIterator::isLink ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isFile | Acima | DirectoryIterator::isReadable


DirectoryIterator::isReadable

(no version information, might be only in CVS)

DirectoryIterator::isReadable -- Returns true if file can be read

Description

bool DirectoryIterator::isReadable ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isLink | Acima | DirectoryIterator::isWritable


DirectoryIterator::isWritable

(no version information, might be only in CVS)

DirectoryIterator::isWritable -- Returns true if file can be written

Description

bool DirectoryIterator::isWritable ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isReadable | Acima | DirectoryIterator::key


DirectoryIterator::key

(no version information, might be only in CVS)

DirectoryIterator::key -- Return current dir entry

Description

string DirectoryIterator::key ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::isWritable | Acima | DirectoryIterator::next


DirectoryIterator::next

(no version information, might be only in CVS)

DirectoryIterator::next -- Move to next entry

Description

void DirectoryIterator::next ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::key | Acima | DirectoryIterator::rewind


DirectoryIterator::rewind

(no version information, might be only in CVS)

DirectoryIterator::rewind -- Rewind dir back to the start

Description

void DirectoryIterator::rewind ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::next | Acima | RecursiveDirectoryIterator::getChildren


RecursiveDirectoryIterator::getChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory

Description

object RecursiveDirectoryIterator::getChildren ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
DirectoryIterator::rewind | Acima | RecursiveDirectoryIterator::hasChildren


RecursiveDirectoryIterator::hasChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'

Description

bool RecursiveDirectoryIterator::hasChildren ( [bool $allow_links [, = false]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
RecursiveDirectoryIterator::getChildren | Acima | RecursiveDirectoryIterator::key


RecursiveDirectoryIterator::key

(no version information, might be only in CVS)

RecursiveDirectoryIterator::key -- Return path and filename of current dir entry

Description

string RecursiveDirectoryIterator::key ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
RecursiveDirectoryIterator::hasChildren | Acima | RecursiveDirectoryIterator::next


RecursiveDirectoryIterator::next

(no version information, might be only in CVS)

RecursiveDirectoryIterator::next -- Move to next entry

Description

void RecursiveDirectoryIterator::next ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
RecursiveDirectoryIterator::key | Acima | RecursiveDirectoryIterator::rewind


RecursiveDirectoryIterator::rewind

(no version information, might be only in CVS)

RecursiveDirectoryIterator::rewind -- Rewind dir back to the start

Description

void RecursiveDirectoryIterator::rewind ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
RecursiveDirectoryIterator::next | Acima | SimpleXMLIterator::current


SimpleXMLIterator::current

(no version information, might be only in CVS)

SimpleXMLIterator::current -- Return current SimpleXML entry

Description

mixed SimpleXMLIterator::current ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
RecursiveDirectoryIterator::rewind | Acima | SimpleXMLIterator::getChildren


SimpleXMLIterator::getChildren

(no version information, might be only in CVS)

SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object

Description

object SimpleXMLIterator::getChildren ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SimpleXMLIterator::current | Acima | SimpleXMLIterator::hasChildren


SimpleXMLIterator::hasChildren

(no version information, might be only in CVS)

SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object

Description

bool SimpleXMLIterator::hasChildren ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SimpleXMLIterator::getChildren | Acima | SimpleXMLIterator::key


SimpleXMLIterator::key

(no version information, might be only in CVS)

SimpleXMLIterator::key -- Return current SimpleXML key

Description

mixed SimpleXMLIterator::key ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SimpleXMLIterator::hasChildren | Acima | SimpleXMLIterator::next


SimpleXMLIterator::next

(no version information, might be only in CVS)

SimpleXMLIterator::next -- Move to next entry

Description

void SimpleXMLIterator::next ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SimpleXMLIterator::key | Acima | SimpleXMLIterator::rewind


SimpleXMLIterator::rewind

(no version information, might be only in CVS)

SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start

Description

void SimpleXMLIterator::rewind ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SimpleXMLIterator::next | Acima | SimpleXMLIterator::valid


SimpleXMLIterator::valid

(no version information, might be only in CVS)

SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Description

bool SimpleXMLIterator::valid ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
SimpleXMLIterator::rewind | Acima | Stream Functions


Stream Functions

Manual do PHP
Anterior Próxima

CV. Stream Functions

Introdução

Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Apêndice J), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in Capítulo 43. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Apêndice J for a list of PHP builtin wrappers. If no wrapper is specified, the function default is used (typically file://).

  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Apêndice J for a description of targets for builtin streams.

Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension using the API Reference in Capítulo 43. To access the list of currently registered filters, use stream_get_filters().

Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found with the list of built-in wrappers (See Apêndice J).

In addition, parameters may be set on a context using stream_context_set_params(). Currently the only context parameter supported by PHP is notification. The value of this parameter must be the name of a function to be called when an event occurs on a stream. The notification function called during an event should accept the following six parameters:

void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max)

notification_code and severity are numerical values which correspond to the STREAM_NOTIFY_* constants listed below. If a descriptive message is available from the stream, message and message_code will be populated with the appropriate values. The meaning of these values is dependent on the specific wrapper in use. bytes_transferred and bytes_max will be populated when applicable.

Instalação

Streams are an integral part of PHP as of version 4.3.0. No steps are required to enable them.

Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

Constant | Description
STREAM_FILTER_READ | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Return Code indicating that the userspace filter returned buckets in $out.
PSFS_FEED_ME | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT | Open client socket asynchronously. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Server sockets should always include this flag.
STREAM_NOTIFY_RESOLVE | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message.
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occurred on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occurred. Processing cannot continue.

Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occurs an E_WARNING message will be generated describing the nature of the error.

Exemplos

Exemplo 1. Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Exemplo 2. Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
 * Include form elements named "foo" and "bar" with dummy values
 */

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
  $headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
  $body .= fgets($sock, 4096);

fclose($sock);
?>

Exemplo 3. Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
 * File can be read back using compress.zlib stream or just
 * decompressed from the command line using 'gzip -d foo-bar.txt.gz'
 */
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>

Índice
stream_context_create -- Create a streams context
stream_context_get_options -- Retrieve options for a stream/wrapper/context
stream_context_set_option -- Sets an option for a stream/wrapper/context
stream_context_set_params -- Set parameters for a stream/wrapper/context
stream_copy_to_stream -- Copies data from one stream to another
stream_filter_append -- Attach a filter to a stream.
stream_filter_prepend -- Attach a filter to a stream.
stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter
stream_get_contents -- Reads remainder of a stream into a string
stream_get_filters -- Retrieve list of registered filters
stream_get_line -- Gets line from stream resource up to a given delimiter
stream_get_meta_data -- Retrieves header/meta data from streams/file pointers
stream_get_transports -- Retrieve list of registered socket transports
stream_get_wrappers -- Retrieve list of registered streams
stream_register_wrapper -- Alias of stream_wrapper_register()
stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
stream_set_blocking -- Set blocking/non-blocking mode on a stream
stream_set_timeout -- Set timeout period on a stream
stream_set_write_buffer -- Sets file buffering on the given stream
stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()
stream_socket_client -- Open Internet or Unix domain socket connection
stream_socket_get_name -- Retrieve the name of the local or remote sockets
stream_socket_recvfrom -- Receives data from a socket, connected or not
stream_socket_sendto -- Sends a message to a socket, whether it is connected or not
stream_socket_server -- Create an Internet or Unix domain server socket
stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Anterior | Principal | Próxima
SimpleXMLIterator::valid | Acima | stream_context_create


stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_create -- Create a streams context

Description

resource stream_context_create ( array options)

Creates and returns a stream context with any options supplied in options preset.

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Exemplo 1. Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

See Also: stream_context_set_option(), and Listing of supported wrappers with context options (Apêndice J)

Anterior | Principal | Próxima
Stream Functions | Acima | stream_context_get_options


stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_options -- Retrieve options for a stream/wrapper/context

Description

array stream_context_get_options ( resource stream|context)

Returns an array of options on the specified stream or context.

Anterior | Principal | Próxima
stream_context_create | Acima | stream_context_set_option


stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_option -- Sets an option for a stream/wrapper/context

Description

bool stream_context_set_option ( resource context|stream, string wrapper, string option, mixed value)

Sets an option on the specified context. value is set to option for wrapper

Anterior | Principal | Próxima
stream_context_get_options | Acima | stream_context_set_params


stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_params -- Set parameters for a stream/wrapper/context

Description

bool stream_context_set_params ( resource stream|context, array params)

params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Tabela 1. Parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification.

Anterior | Principal | Próxima
stream_context_set_option | Acima | stream_copy_to_stream


stream_copy_to_stream

(PHP 5)

stream_copy_to_stream -- Copies data from one stream to another

Description

int stream_copy_to_stream ( resource source, resource dest [, int maxlength])

Makes a copy of up to maxlength bytes of data from the current position in source to dest. If maxlength is not specified, all remaining content in source will be copied. Returns the total count of bytes copied.

Exemplo 1. stream_copy_to_stream() example

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

See also copy().

Anterior | Principal | Próxima
stream_context_set_params | Acima | stream_filter_append


stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append -- Attach a filter to a stream.

Description

bool stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

Exemplo 1. Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

/* Apply the ROT13 filter to the
 * write filter chain, but not the
 * read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
 * it will be ROT13 transformed on the
 * way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
 * Had the filter been applied to the
 * read filter chain as well, we would see
 * the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Nota: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

See also stream_filter_register(), and stream_filter_prepend()

Anterior | Principal | Próxima
stream_copy_to_stream | Acima | stream_filter_prepend


stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prepend -- Attach a filter to a stream.

Description

bool stream_filter_prepend ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Nota: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is prepended to a stream, data in the internal buffers, which has already been processed through other filters will not be reprocessed through the new filter at that time. This differs from the behavior of stream_filter_append().

See also stream_filter_register(), and stream_filter_append()

Anterior | Principal | Próxima
stream_filter_append | Acima | stream_filter_register


stream_filter_register

(PHP 5)

stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter

Description

bool stream_filter_register ( string filtername, string classname)

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions as defined below. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

stream_filter_register() will return FALSE if the filtername is already defined.

int filter ( resource in, resource out, int &consumed, bool closing)

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()). in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered. out is a resource pointing to a second bucket brigade into which your modified buckets should be placed. consumed, which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket. If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE The filter method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.

void onCreate ( void )

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it. Your implementation of this method should return FALSE on failure, or TRUE on success.

When your filter is first instantiated, and yourfilter->onCreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().

void onClose ( void )

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialzed during onCreate this would be the time to destroy or dispose of them.

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

Exemplo 1. Filter for capitalizing characters on foo-bar.txt stream

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

?>

Output

LINE1
WORD - 2
EASY AS 123

Exemplo 2. Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

/* Output
 * ------

LINE1
WORD - 2
EASY AS 123

 */

?>

See Also:
stream_wrapper_register(),
stream_filter_prepend(), and
stream_filter_append()

Anterior | Principal | Próxima
stream_filter_prepend | Acima | stream_get_contents


stream_get_contents

(PHP 5)

stream_get_contents -- Reads remainder of a stream into a string

Description

string stream_get_contents ( resource handle [, int maxlength])

Identical to file_get_contents(), except that stream_get_contents() operates on an already open file resource and returns the remaining contents, up to maxlength bytes, in a string.

Nota: Esta função é compatível com dados binários

See also:
fgets(),
fread(), and
fpassthru().

Anterior | Principal | Próxima
stream_filter_register | Acima | stream_get_filters


stream_get_filters

(PHP 5)

stream_get_filters -- Retrieve list of registered filters

Description

array stream_get_filters ( void )

Returns an indexed array containing the name of all stream filters available on the running system.

Exemplo 1. Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Output will be similar to the following Note: there may be more or fewer filters in your version of PHP.

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

See also stream_filter_register(), and stream_get_wrappers()

Anterior | Principal | Próxima
stream_get_contents | Acima | stream_get_line


stream_get_line

(PHP 5)

stream_get_line -- Gets line from stream resource up to a given delimiter

Description

string stream_get_line ( resource handle, int length, string ending)

Returns a string of up to length bytes read from the file pointed to by handle. Reading ends when length bytes have been read, when the string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

If an error occurs, returns FALSE.

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

See also fread(),
fgets(), and
fgetc(),

Anterior | Principal | Próxima
stream_get_filters | Acima | stream_get_meta_data


stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_data -- Retrieves header/meta data from streams/file pointers

Description

array stream_get_meta_data ( resource stream)

Returns information about an existing stream. The stream can be any stream created by fopen(), fsockopen() and pfsockopen(). The result array contains the following items:

  • timed_out (bool) - TRUE if the stream timed out while waiting for data on the last call to fread() or fgets().

  • blocked (bool) - TRUE if the stream is in blocking IO mode. See stream_set_blocking().

  • eof (bool) - TRUE if the stream has reached end-of-file. Note that for socket streams this member can be TRUE even when unread_bytes is non-zero. To determine if there is more data to be read, use feof() instead of reading this item.

  • unread_bytes (int) - the number of bytes currently contained in the read buffer.

The following items were added in PHP 4.3:

  • stream_type (string) - a label describing the underlying implementation of the stream.

  • wrapper_type (string) - a label describing the protocol wrapper implementation layered over the stream. See Apêndice J for more information about wrappers.

  • wrapper_data (mixed) - wrapper specific data attached to this stream. See Apêndice J for more information about wrappers and their wrapper data.

  • filters (array) - and array containing the names of any filters that have been stacked onto this stream. Filters are currently undocumented.

Nota: This function was introduced in PHP 4.3, but prior to this version, socket_get_status() could be used to retrieve the first four items, for socket based streams only.

In PHP 4.3 and later, socket_get_status() is an alias for this function.

Nota: This function does NOT work on sockets created by the Socket extension.

The following items were added in PHP 5.0:

  • mode (string) - the mode (or permissions) of the URI associated with this stream.

  • seakable (bool) - whether the current stream can be seeked in.

  • uri (string) - the URI/filename associated with this stream.

Anterior | Principal | Próxima
stream_get_line | Acima | stream_get_transports


stream_get_transports

(PHP 5)

stream_get_transports -- Retrieve list of registered socket transports

Description

array stream_get_transports ( void )

Returns an indexed array containing the name of all socket transports available on the running system.

Exemplo 1. Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Output will be similar to the following Note: there may be more or fewer transports in your version of PHP

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

See also stream_get_filters(), and stream_get_wrappers()

Anterior | Principal | Próxima
stream_get_meta_data | Acima | stream_get_wrappers


stream_get_wrappers

(PHP 5)

stream_get_wrappers -- Retrieve list of registered streams

Description

array stream_get_wrappers ( void )

Returns an indexed array containing the name of all stream wrappers available on the running system.

See also stream_wrapper_register()

Anterior | Principal | Próxima
stream_get_transports | Acima | stream_register_wrapper


stream_register_wrapper

stream_register_wrapper -- Alias of stream_wrapper_register()

Description

This function is an alias of stream_wrapper_register(). This function is included for compatability with PHP 4.3.0 and PHP 4.3.1 only. stream_wrapper_register() should be used instead.

Anterior | Principal | Próxima
stream_get_wrappers | Acima | stream_select


stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Description

int stream_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec])

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

The streams listed in the write array will be watched to see if a write will not block.

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Nota: When stream_select() returns, the arrays read, write and except are modified to indicate which stream resource(s) actually changed status.

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams. If tv_sec is NULL stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

On success stream_select() returns the number of stream resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Atenção

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

You do not need to pass every array to stream_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after stream_select() returns.

This example checks to see if data has arrived for reading on either $stream1 or $stream2. Since the timeout value is 0 it will return immediately:
<?php
/* Prepare the read array */
$read = array($stream1, $stream2);

if (false === ($num_changed_streams = stream_select($read, $write = NULL, $except = NULL, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Nota: Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:
<?php
stream_select($r, $w, $e = NULL, 0);
?>

Nota: Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to TRUE:
<?php
if (false === stream_select($r, $w, $e = NULL, 0)) {
    echo "stream_select() failed\n";
}
?>

Nota: If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Windows 98 Note: stream_select() used on a pipe returned from proc_open() may cause data loss under Windows 98.

See also stream_set_blocking()

Anterior | Principal | Próxima
stream_register_wrapper | Acima | stream_set_blocking


stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blocking -- Set blocking/non-blocking mode on a stream

Description

bool stream_set_blocking ( resource stream, int mode)

If mode is FALSE, the given stream will be switched to non-blocking mode, and if TRUE, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Nota: Prior to PHP 4.3, this function only worked on socket based streams. Since PHP 4.3, this function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

See also stream_select().

Anterior | Principal | Próxima
stream_select | Acima | stream_set_timeout


stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeout -- Set timeout period on a stream

Description

bool stream_set_timeout ( resource stream, int seconds [, int microseconds])

Sets the timeout value on stream, expressed in the sum of seconds and microseconds. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\n\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    var_dump(stream_get_meta_data($fp));
    fclose($fp);
    echo $res;
}
?>

Nota: As of PHP 4.3, this function can (potentially) work on any kind of stream. In PHP 4.3, socket based streams are still the only kind supported in the PHP core, although streams from other extensions may support this function.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

See also: fsockopen() and fopen().

Anterior | Principal | Próxima
stream_set_blocking | Acima | stream_set_write_buffer


stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_buffer -- Sets file buffering on the given stream

Description

int stream_set_write_buffer ( resource stream, int buffer)

Output using fwrite() is normally buffered at 8K. This means that if there are two processes wanting to write to the same output stream (a file), each is paused after 8K of data to allow the other to write. stream_set_write_buffer() sets the buffering for write operations on the given filepointer stream to buffer bytes. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

The function returns 0 on success, or EOF if the request cannot be honored.

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

Exemplo 1. stream_set_write_buffer() example

<?php
$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fwrite($fp, $output);
  fclose($fp);
}
?>

See also fopen() and fwrite().

Anterior | Principal | Próxima
stream_set_timeout | Acima | stream_socket_accept


stream_socket_accept

(PHP 5)

stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()

Description

resource stream_socket_accept ( resource server_socket [, int timeout [, string &peername]])

Accept a connection on a socket previously created by stream_socket_server(). If timeout is specified, the default socket accept timeout will be overridden with the time specified in seconds. The name (address) of the client which connected will be passed back in peername if included and available from the selected transport.

peername can also be determined later using stream_socket_get_name().

If the call fails, it will return FALSE.

See also stream_socket_server(),
stream_socket_get_name(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Anterior | Principal | Próxima
stream_set_write_buffer | Acima | stream_socket_client


stream_socket_client

(PHP 5)

stream_socket_client -- Open Internet or Unix domain socket connection

Description

resource stream_socket_client ( string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource context]]]]])

Initiates a stream or datagram connection to the destination specified by remote_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. The optional timeout can be used to set a timeout in seconds for the connect system call. flags is a bitmask field which may be set to any combination of connection flags. Currently the selection of connection flags is limited to STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

Nota: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to stream_socket_client() only applies while connecting the socket.

stream_socket_client() returns a
stream resource which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See Apêndice L for a list of built in transports.

The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Exemplo 1. stream_socket_client() Example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Exemplo 2. Using UDP connection

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Atenção

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Nota: Quando informando endereços IPv6 numéricos (por exemplo, fe80::1), você precisa englobar o IP entre colchetes. Exemplo: tcp://[fe80::1]:80.

See also stream_socket_server(), stream_set_blocking(), stream_set_timeout(), stream_select(), fgets(), fgetss(), fwrite(), fclose(), feof(), and the Curl extension.

Anterior | Principal | Próxima
stream_socket_accept | Acima | stream_socket_get_name


stream_socket_get_name

(PHP 5)

stream_socket_get_name -- Retrieve the name of the local or remote sockets

Description

string stream_socket_get_name ( resource handle, bool want_peer)

Returns the local or remote name of a given socket connection. If want_peer is set to TRUE the remote socket name will be returned, if it is set to FALSE the local socket name will be returned.

See also stream_socket_accept()

Anterior | Principal | Próxima
stream_socket_client | Acima | stream_socket_recvfrom


stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom -- Receives data from a socket, connected or not

Description

string stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]])

The function stream_socket_recvfrom() accepts data from a remote socket up to length bytes. If address is provided it will be populated with the address of the remote socket.

The value of flags can be any combination of the following:

Tabela 1. possible values for flags

STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

Exemplo 1. stream_socket_recvfrom() Example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't comsume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

See also
stream_socket_sendto(),
stream_socket_client(), and
stream_socket_server().

Anterior | Principal | Próxima
stream_socket_get_name | Acima | stream_socket_sendto


stream_socket_sendto

(PHP 5)

stream_socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int stream_socket_sendto ( resource socket, string data [, int flags [, string address]])

The function stream_socket_sendto() sends the data specified by data through the socket specified by socket. The address specified when the socket stream was created will be used unless an alternate address is specified in address.

The value of flags can be any combination of the following:

Tabela 1. possible values for flags

STREAM_OOB Process OOB (out-of-band) data.

Exemplo 1. stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

See also
stream_socket_recvfrom(),
stream_socket_client(), and
stream_socket_server().

Anterior | Principal | Próxima
stream_socket_recvfrom | Acima | stream_socket_server


stream_socket_server

(PHP 5)

stream_socket_server -- Create an Internet or Unix domain server socket

Description

resource stream_socket_server ( string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]])

Creates a stream or datagram socket on the specified local_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. flags is a bitmask field which may be set to any combination of socket creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See Apêndice L for a list of bulitin transports.

Exemplo 1. stream_socket_server() Example

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Nota: Most systems require root access to create a server socket on a port below 1024.

Exemplo 2. Using UDP server sockets

<?php
$socket = stream_socket_server("udp://0.0.0.0:13", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, date("D M j H:i:s Y\r\n"));
    fclose($conn);
  }
  fclose($socket);
}
?>

Nota: Quando informando endereços IPv6 numéricos (por exemplo, fe80::1), você precisa englobar o IP entre colchetes. Exemplo: tcp://[fe80::1]:80.

See also stream_socket_client(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Anterior | Principal | Próxima
stream_socket_sendto | Acima | stream_wrapper_register


stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5)

stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Description

bool stream_wrapper_register ( string protocol, string classname)

stream_wrapper_register() allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a wrapper, you need to define a class with a number of member functions, as defined below. When someone fopens your stream, PHP will create an instance of classname and then call methods on that instance. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

Nota: As of PHP 5.0.0 the instance of classname will be populated with a context property referencing a Context Resource which may be accessed with stream_context_get_options(). If no context was passed to the stream creation function, context will be set to NULL.

stream_wrapper_register() will return FALSE if the protocol already has a handler.

bool stream_open ( string path, string mode, int options, string opened_path)

This method is called immediately after your stream object is created. path specifies the URL that was passed to fopen() and that this object is expected to retrieve. You can use parse_url() to break it apart.

mode is the mode used to open the file, as detailed for fopen(). You are responsible for checking that mode is valid for the path requested.

options holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_USE_PATH | If path is relative, search for the resource using the include_path.
STREAM_REPORT_ERRORS | If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

If the path is opened successfully, and STREAM_USE_PATH is set in options, you should set opened_path to the full path of the file/resource that was actually opened.

If the requested resource was opened successfully, you should return TRUE, otherwise you should return FALSE

void stream_close ( void )

This method is called when the stream is closed, using fclose(). You must release any resources that were locked or allocated by the stream.

string stream_read ( int count)

This method is called in response to fread() and fgets() calls on the stream. You must return up-to count bytes of data from the current read/write position as a string. If there are less than count bytes available, return as many as are available. If no more data is available, return either FALSE or an empty string. You must also update the read/write position of the stream by the number of bytes that were successfully read.

int stream_write ( string data)

This method is called in response to fwrite() calls on the stream. You should store data into the underlying storage used by your stream. If there is not enough room, try to store as many bytes as possible. You should return the number of bytes that were successfully stored in the stream, or 0 if none could be stored. You must also update the read/write position of the stream by the number of bytes that were successfully written.

bool stream_eof ( void )

This method is called in response to feof() calls on the stream. You should return TRUE if the read/write position is at the end of the stream and if no more data is available to be read, or FALSE otherwise.

int stream_tell ( void )

This method is called in response to ftell() calls on the stream. You should return the current read/write position of the stream.

bool stream_seek ( int offset, int whence)

This method is called in response to fseek() calls on the stream. You should update the read/write position of the stream according to offset and whence. See fseek() for more information about these parameters. Return TRUE if the position was updated, FALSE otherwise.

bool stream_flush ( void )

This method is called in response to fflush() calls on the stream. If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now. Return TRUE if the cached data was successfully stored (or if there was no data to store), or FALSE if the data could not be stored.

array stream_stat ( void )

This method is called in response to fstat() calls on the stream and should return an array containing the same values as appropriate for the stream.

bool unlink ( string path)

This method is called in response to unlink() calls on URL paths associated with the wrapper and should attempt to delete the item specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support unlinking.

Nota: Userspace wrapper unlink method is not supported prior to PHP 5.0.0.

bool rename ( string path_from, string path_to)

This method is called in response to rename() calls on URL paths associated with the wrapper and should attempt to rename the item specified by path_from to the specification given by path_to. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support renaming.

Nota: Userspace wrapper rename method is not supported prior to PHP 5.0.0.

bool mkdir ( string path, int mode, int options)

This method is called in response to mkdir() calls on URL paths associated with the wrapper and should attempt to create the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support creating directories. Posible values for options include STREAM_REPORT_ERRORS and STREAM_MKDIR_RECURSIVE.

Nota: Userspace wrapper mkdir method is not supported prior to PHP 5.0.0.

bool rmdir ( string path, int options)

This method is called in response to rmdir() calls on URL paths associated with the wrapper and should attempt to remove the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support removing directories. Possible values for options include STREAM_REPORT_ERRORS.

Nota: Userspace wrapper rmdir method is not supported prior to PHP 5.0.0.

bool dir_opendir ( string path, int options)

This method is called immediately when your stream object is created for examining directory contents with opendir(). path specifies the URL that was passed to opendir() and that this object is expected to explore. You can use parse_url() to break it apart.

array url_stat ( string path, int flags)

This method is called in response to stat() calls on the URL paths associated with the wrapper and should return as many elements in common with the system function as possible. Unknown or unavailable values should be set to a rational value (usually 0).

flags holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_URL_STAT_LINK | For resources with the ability to link to other resource (such as an HTTP Location: forward, or a filesystem symlink). This flag specified that only information about the link itself should be returned, not the resource pointed to by the link. This flag is set in response to calls to lstat(), is_link(), or filetype().
STREAM_URL_STAT_QUIET | If this flag is set, your wrapper should not raise any errors. If this flag is not set, you are responsible for reporting errors using the trigger_error() function during stating of the path.

string dir_readdir ( void )

This method is called in response to readdir() and should return a string representing the next filename in the location opened by dir_opendir().

bool dir_rewinddir ( void )

This method is called in response to rewinddir() and should reset the output generated by dir_readdir(). i.e.: The next call to dir_readdir() should return the first entry in the location returned by dir_opendir().

bool dir_closedir ( void )

This method is called in response to closedir(). You should release any resources which were locked or allocated during the opening and use of the directory stream.

The example below implements a var:// protocol handler that allows read/write access to a named global variable using standard filesystem stream functions such as fread(). The var:// protocol implemented below, given the URL "var://foo" will read/write data to/from $GLOBALS["foo"].

Exemplo 1. A Stream for reading/writing global variables

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Anterior | Principal | Próxima
stream_socket_server | Acima | String


String

Manual do PHP
Anterior Próxima

CVI. String

Introdução

Todas estas funções manipulam strings de vários meios. Algumas seções mais especializadas podem ser encontradas nas seções de expressões regulares e Funções de URL.

Para informação de como as strings funcionam, especialmente sobre o uso de apóstrofo, aspas e sequências de escape veja Strings na seção Tipos do manual.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

CRYPT_SALT_LENGTH integer

CRYPT_STD_DES integer

CRYPT_EXT_DES integer

CRYPT_MD5 integer

CRYPT_BLOWFISH integer

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

Veja Também

Para funções de manuseio de string mais poderosas, de uma olhada em funções de expressão regular POSIX e funções de expressão regular compatíveis com Perl .

Índice
addcslashes -- String entre aspas com barras no estilo C
addslashes -- Adiciona barras invertidas a uma string
bin2hex -- Converte um dado binário em hexadecimal
chop -- Alias de rtrim()
chr -- Retorna um caracter específico
chunk_split -- Divide uma string em pequenos pedaços
convert_cyr_string -- Converte de um caracter cirílico para outro
count_chars -- Retorna informações sobre os caracteres usados numa string
crc32 -- Calcula polinômio crc32 de uma string
crypt -- Único caminho de codificação de string (hashing)
echo -- Exibe uma ou mais strings
explode -- Divide uma string em strings
fprintf -- Escreve uma string formatada para um stream
get_html_translation_table -- Retorna a tabela de tradução usada por htmlspecialchars() e htmlentities()
hebrev -- Converte texto lógico Hebraico para texto visual
hebrevc -- Converte um texto lógico Hebráico para um texto visual com conversão newline
html_entity_decode -- Converte todas as entidades HTML para os seus caracteres
htmlentities -- Converte todos os caracteres para HTML entities
htmlspecialchars -- Converte caracteres especiais para a realidade HTML
implode -- Junta elementos de uma matriz em uma string
join -- Sinônimo de implode()
levenshtein -- Calcula a distância Levenshtein entre duas strings
localeconv -- Obtém a informação da formatação numérica
ltrim -- Retira whitespace do início da string
md5_file -- Calcula hash md5 de um dado arquivo
md5 -- Calcula o "hash MD5" de uma string
metaphone -- Calcula a metaphone key de uma string
money_format -- Formata um número como uma string de moeda
nl_langinfo -- Retorna informação de linguagem e local
nl2br -- Insere quebras de linha HTML antes de todas newlines em uma string
number_format -- Formata um número com os milhares agrupados
ord -- Retorna o valor ASCII do caractere
parse_str -- Converte a string em variáveis
print -- Mostra uma string
printf -- Mostra uma string formatada
quoted_printable_decode -- Converte uma string quoted-printable para uma string de 8 bit
quotemeta -- Adiciona uma barra invertida antes dos meta caracteres
rtrim -- Retira espaço em branco do final da string
setlocale -- Define informações locais
sha1_file -- Calcula a hash sha1 de um arquivo
sha1 -- Calcula a hash sha1 de uma string
similar_text -- Calcula a similaridade entre duas strings
soundex -- Calcula a chave soundex de uma string
sprintf -- Retorna uma string formatada
sscanf -- Interpreta a entrada de uma string de acordo com um formato
str_ireplace -- Versão que não diferencia maiúsculas e minúsculas de str_replace().
str_pad -- Preenche uma string para um certo tamanho com outra string
str_repeat -- Repete uma string
str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição
str_rot13 -- Executa a transformação rot13 em uma string
str_shuffle -- Mistura uma string aleatoriamente
str_split -- Converte uma string para um array
str_word_count -- Retorna informação sobre as palavras usadas em uma string
strcasecmp -- Comparação de strings sem diferenciar maiúsculas e minúsculas segura para binário
strchr -- Apelido para strstr()
strcmp -- Comparação de string segura para binário
strcoll -- Comparação de string baseada no local
strcspn -- Encontra o tamanho do segmento inicial que não contenha a mascara
strip_tags -- Retira as tags HTML e PHP de uma string
stripcslashes -- Desfaz o efeito de addcslashes()
stripos -- Encontra a primeira ocorrencia de uma string sem diferenciar maiúsculas e minúsculas
stripslashes -- Desfaz o efeito de addslashes()
stristr -- strstr() sem diferenciar maiúsculas e minúsculas
strlen -- Retorna o tamanho de uma string
strnatcasecmp -- Comparação de strings sem diferenciar maiúsculas/minúsculas usando o algoritmo "natural order"
strnatcmp -- Comparação de strings usando o algoritmo "natural order"
strncasecmp -- Comparação de string caso-sensitivo de Binário seguro dos primeiros n caracteres
strncmp -- Comparação de string segura para binário para os primeiros n caracteres
strpos -- Encontra a posição da primeira ocorrência de uma string
strrchr -- Encontra a ultima ocorrência de um caractere em uma string
strrev -- Reverte uma string
strripos -- Encontra a posição da última ocorrência de uma string case-insensitive em uma string
strrpos -- Encontra a posição da última ocorrência de um caractere em uma string
strspn -- Encontra o comprimento do segmento inicial combinando com a máscara
strstr -- Encontra a primeira ocorrencia de uma string
strtok -- Tokeniza uma string
strtolower -- Converte uma string para minúsculas
strtoupper -- Converte uma string para maiúsculas
strtr -- Traduz certos caracteres
substr_compare -- A comparação binária entre duas strings case-insensitive de um offset é guardada opcionalmente, até o limite do comprimento de caracteres
substr_count -- Conta o número de ocorrências de uma substring
substr_replace -- Substitui o texto dentro de uma parte de uma string
substr -- Retorna uma parte de uma string
trim -- Retira espaço no ínicio e final de uma string
ucfirst -- Converte para maiúscula o primeiro caractere de uma string
ucwords -- Converte para maiúsculas o primeiro caractere de cada palavra
vprintf -- Mostra uma string formatada
vsprintf -- Retorna uma string formatada
wordwrap -- Quebra uma string em linhas usando um caractere de quebra de linha.

Anterior | Principal | Próxima
stream_wrapper_register | Acima | addcslashes


addcslashes

(PHP 4 , PHP 5)

addcslashes -- String entre aspas com barras no estilo C

Descrição

string addcslashes ( string str, string charlist)

Retorna uma string com barras invertidas antes dos caracteres que estão listados no parâmetro charlist. Ela escapa \n, \r etc. Como no estilo C, caracteres no código ASCII menores que 32 e maiores que 126 são convertidos para representação octadecimal.

Tome cuidado se você escolher escapar caracteres 0, a, b, f, n, r, t e v. Eles serão convertidos para \0, \a, \b, \f, \n, \r, \t e \v. No PHP \0 (NULL), \r (sinal de retorno), \n (novalinha) e \t (tab) são seqüencias de escape predefinidas, enquanto em C todas essas são seqüencias de escape predefinidas.

charlist como "\0..\37", que que escaparia todos os caracteres em código ASCII entre 0 e 37.

Exemplo 1. addcslashes() exemplo

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Quando você define uma seqüencia de caracteres no argumento charlist certifique-se que você sabe quais os caracteres que vêm dentro do intervalo que você definiu.

<?php
echo addcslashes('foo[ ]', 'A..z');
// output:  \f\o\o\[ \]
// All upper and lower-case letters will be escaped
// ... but so will the [\]^_` and any tabs, line
// feeds, carriage returns, etc.
?>

Também, se o primeiro caracter no intervalo tem um valor ASCII maior do que o segundo, nenhum intervalo será construído. Apenas os caracteres do começo e do fim serão escapados. Use a função ord() para encontrar o valor ASCII para um caracter.

<?php
echo addcslashes("zoo['.']", 'z..A');
// output:  \zoo['\.']
?>

Veja também stripcslashes(),
stripslashes(),
htmlspecialchars(), e
quotemeta().

Anterior | Principal | Próxima
String | Acima | addslashes


addslashes

(PHP 3, PHP 4 , PHP 5)

addslashes -- Adiciona barras invertidas a uma string

Descrição

string addslashes ( string str)

Retorna uma string com barras invertidas antes de caracteres que precisam ser escapados para serem escapados em query a banco de dados, etc. Estes caracteres são aspas simples ('), aspas duplas ("), barra invertida (\) e NUL (o byte NULL).

Um exemplo do uso de addslashes() é quando você esta entrando com dados em um banco de dados. Por exemplo, para inserir o nome O'reilly em um banco de dados, você vai precisar escapa-lo. A maior parte dos banco de dados faz isto com \ o que nos leva a O\'reilly. Isto é apenas para colocar os dados no banco de dados, a \ não será inserida. Tendo a diretiva do PHP magic_quotes_sybase em on fará com que ' seja escapada com outra '.

A diretiva do PHP magic_quotes_gpc é on por padrão, e ela essencialmente executa addslashes() para todos dados de GET, POST e COOKIE. Não use addslashes() em strings que já foram escapadas com magic_quotes_gpc já que você acabara escapando duas vezes. A função get_magic_quotes_gpc() pode dar uma mão para conferir isto.

Exemplo 1. Exemplo addslashes()

<?php
$str = "Seu nome é O'reilly?";

// Mostra: Seu nome é O\'reilly?
echo addslashes($str);
?>

Veja também stripslashes(),
htmlspecialchars(),
quotemeta(), and
get_magic_quotes_gpc().

Anterior | Principal | Próxima
addcslashes | Acima | bin2hex


bin2hex

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

bin2hex -- Converte um dado binário em hexadecimal

Descrição

string bin2hex ( string str)

Retorna uma string ASCII uma representação hexadecimal de str. A conversão é feita byte-wise com o high-nibble primeiro.

Veja também pack() e unpack().

Anterior | Principal | Próxima
addslashes | Acima | chop


chop

chop -- Alias de rtrim()

Descrição

Esta função é um alias de rtrim().

Nota: chop() é diferente da função de Perl chop(), que remove o último caracter na string.

Anterior | Principal | Próxima
bin2hex | Acima | chr


chr

(PHP 3, PHP 4 , PHP 5)

chr -- Retorna um caracter específico

Descrição

string chr ( int ascii)

Retorna uma string de um único caractere contendo o caracter especificado pelo ascii.

Exemplo 1. chr() exemplo

<?php
$str = "The string ends in escape: ";
$str .= chr(27); /* add an escape character at the end of $str */

/* Often this is more useful */

$str = sprintf("The string ends in escape: %c", 27);
?>

Você pode encontrar uma tabela ASCII-table aqui: http://www.asciitable.com.

Esta função complementa ord(). Veja também sprintf() com uma string no formato de %c.

Anterior | Principal | Próxima
chop | Acima | chunk_split


chunk_split

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

chunk_split -- Divide uma string em pequenos pedaços

Descrição

string chunk_split ( string body [, int chunklen [, string end]])

Pode dividir uma string em pequenos pedaços que são úteis para e.g. converter base64_encode output para compatibilizar com semânticas RFC 2045 . Ela insere end (padrão para "\r\n") cada caracater chunklen (padrão para 76). Ela retorna uma nova string deixando a string original intocada.

Exemplo 1. chunk_split() exemplo

<?php
// format $data using RFC 2045 semantics
$new_string = chunk_split(base64_encode($data));
?>

Veja também explode(), split() wordwrap() e RFC 2045.

Anterior | Principal | Próxima
chr | Acima | convert_cyr_string


convert_cyr_string

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

convert_cyr_string -- Converte de um caracter cirílico para outro

Descrição

string convert_cyr_string ( string str, string from, string to)

Esta função retorna a string dada convertida de um caracter cirílico para outro. Os argumentos from e to são caracteres simples que representam o original e o caractere Cirílico de destino. Os tipos suportados são:

  • k - koi8-r

  • w - windows-1251

  • i - iso8859-5

  • a - x-cp866

  • d - x-cp866

  • m - x-mac-cyrillic

Anterior | Principal | Próxima
chunk_split | Acima | count_chars


count_chars

(PHP 4 , PHP 5)

count_chars -- Retorna informações sobre os caracteres usados numa string

Descrição

mixed count_chars ( string string [, int mode])

Conta o número de ocorrências de cada byte-value (0..255) na string e retorna ela de várias maneiras. O parâmetro original Mode por definição 0. A depender do mode count_chars() pode retornar os seguintes:

  • 0 - Um array com um byte-value como chave e a freqüência de cada byte como valor.

  • 1 - mesmo que o 0 mas apenas byte-values com freqüência maior do que 0 são listadas.

  • 2 - mesmo que 0 mas apenas byte-values com freqüência igual a 0 são listadas.

  • 3 - uma string contendo todos os byte-values usados é retornada.

  • 4 - uma string contendo todos os byte-values que não foram usados é retornada.

Exemplo 1. Exemplo count_chars()

<?php

$data = "Two Ts and one F.";

$result = count_chars($data, 0);

for ($i=0; $i < count($result); $i++) {
   if ($result[$i] != 0)
       echo "There were $result[$i] instance(s) of \"" , chr($i) , "\" in the string.\n";
   }

?>

Isto irá mostrar:

There were 4 instance(s) of " " in the string.
There were 1 instance(s) of "." in the string.
There were 1 instance(s) of "F" in the string.
There were 2 instance(s) of "T" in the string.
There were 1 instance(s) of "a" in the string.
There were 1 instance(s) of "d" in the string.
There were 1 instance(s) of "e" in the string.
There were 2 instance(s) of "n" in the string.
There were 2 instance(s) of "o" in the string.
There were 1 instance(s) of "s" in the string.
There were 1 instance(s) of "w" in the string.

Veja também strpos() e substr_count().

Anterior | Principal | Próxima
convert_cyr_string | Acima | crc32


crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Calcula polinômio crc32 de uma string

Descrição

int crc32 ( string str)

Gera o polinômio cyclic redundancy checksum de 32-bit de comprimento do str. É usado geralmente para validar a integridade de um dado sendo transferido.

Devido ao tipo integer do PHP conter sinal e muitos dos checksums crc32 resultarem em integers negativos, você precisa usar o formatador "%u" de sprintf() ou printf() para obter uma string representando o checksum crc32 sem sinal.

Este segundo exemplo mostra com exibir um checksum convertido com a função printf():

Exemplo 1. Mostrando um checksum crc32

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

Veja também md5() e sha1().

Anterior | Principal | Próxima
count_chars | Acima | crypt


crypt

(PHP 3, PHP 4 , PHP 5)

crypt -- Único caminho de codificação de string (hashing)

Descrição

string crypt ( string str [, string salt])

crypt() retornará uma string criptografada usando o algoritmo de encriptação Unix Standard DES-based ou ou algoritmos alternativos disponíveis no sistema. Os argumentos são uma string para ser criptografada e uma string opcional para basear em qual encriptação está. Veja a página de encriptação Unix para mais informação.

Se o argumento salt não é fornecido, um argumento aleatório será gerado pelo PHP.

Alguns SO suportam mais de um tipo de codificação. De fato, algumas vezes a codificação Standard DES-based é substituído por MD5-based . O tipo de codificação é definido pelo argumento salt. Na instalação, o PHP determina as possíveis funções de codificação e aceitará salts para outros tipos. Se nenhum salt é fornecido, o PHP auto-gera um salt padrão de 2 caracateres por definição, a menos que o tipo de codificação padrão do sistema seja MD5, nesse caso um salt MD5-compatible aleatório será gerado. O PHP define uma constante com nome CRYPT_SALT_LENGTH que dirá se um salt de 2 caracteres aplica-se ao seu sistema ou se o salt mais comprido de 12 caracteres é aplicavél.

Se você está usando um salt fornecido, você está ciente que o salt é gerado uma vez. Se você está chamando essa função repetidamente, isto pode afetar a aparência e a segurança.

O Standard DES-based crypt() retorna o salt como o primeiro two characters da saída. Ele também usa apenas os oito primeiros caracteres da str, então strings longas que começam com os mesmos oito caracteres gerarão o mesmo resultado (quando o mesmo salt é usado).

Em sistemas onde a função crypt() suporta variados tipos de codificação, as seguintes funções são definidas para 0 ou 1 a depender se um dado tipo está disponível:

  • CRYPT_STD_DES - Codificação Standard DES-based com um salt de 2 caracteres

  • CRYPT_EXT_DES - Codificação Extended DES-based com um salt de 9 caracateres

  • CRYPT_MD5 - Codificação MD5 com um salt de 12 caracteres começando com $1$

  • CRYPT_BLOWFISH - Codificação Blowfish com um salt de 16 caracteres começando com $2$

Nota: Não há função de decodificação, desde que crypt() utiliza uma algorimo de um só caminho.

Exemplo 1. crypt() exemplos

<?php
$password = crypt("My1sTpassword"); # let salt be generated

# You should pass the entire results of crypt() as the salt for comparing a
# password, to avoid problems when different hashing algorithms are used. (As
# it says above, standard DES-based password hashing uses a 2-character salt,
# but MD5-based hashing uses 12.)
if (crypt($user_input,$password) == $password) {
   echo "Password verified!";
}
?>

Veja também md5() e the Mcrypt extension.

Anterior | Principal | Próxima
crc32 | Acima | echo


echo

(PHP 3, PHP 4, PHP 5 )

echo -- Exibe uma ou mais strings

Descrição

void echo ( string arg1 [, string argn...])

Exibe todos os parãmetros.

echo() não é uma função atualmente (construtor da linguagem) então não é obrigatório usar parênteses. De fato, se você quer passar mais do que um parâmetro para echo, você não deve fechar os parênteses dentro de parênteses.

Exemplo 1. echo() exemplos

<?php
echo "Hello World";

echo "This spans
multiple lines. The newlines will be
output as well";

echo "This spans\nmultiple lines. The newlines will be\noutput as well.";

echo "Escaping characters is done \"Like this\".";

// You can use variables inside of an echo statement
$foo = "foobar";
$bar = "barbaz";

echo "foo is $foo"; // foo is foobar

// You can also use arrays
$bar = array("value" => "foo");

echo "this is {$bar['value']} !"; // this is foo !

// Using single quotes will print the variable name, not the value
echo 'foo is $foo'; // foo is $foo

// If you are not using any other characters, you can just echo variables
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon no extra whitespace!
END;

// Because echo is not a function, following code is invalid.
($some_var) ? echo('true'): echo('false');

// However, the following examples will work:
($some_var) ? print('true'): print('false'); // print is a function
echo $some_var ? 'true': 'false'; // changing the statement around
?>

echo() também tem uma sintaxe curta, onde você pode seguir imediatamente a tag de abertura com um sinal de igual. Esta sintaxe curta funciona apenas com a configuração short_open_tag habilitada.

I have <?=$foo?> foo.

For a short discussion about the differences between print() and echo(), see this FAQTs Knowledge Base Article: http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Veja também
print(),
printf(), e
flush().

Anterior | Principal | Próxima
crypt | Acima | explode


explode

(PHP 3, PHP 4 , PHP 5)

explode -- Divide uma string em strings

Descrição

array explode ( string separator, string string [, int limit])

Retorna uma matriz de strings, cada uma como substring de string formada pela divisão dela a partir de fronteiras presentes nela separator. Se limit está definido, a matriz retornada conterá o máximo de limit elementos com o último elemento contendo o resto da string.

Se separator está como uma string vazia (""), explode() retornará FALSE. Se separator contém um valor que não está contido em string, então explode() retornará uma matriz contendo a string.

Ainda que implode() pode por razões históricas aceitar seus parâmetros em uma das duas ordens, explode() não pode. Você deve assegurar que o argumento separator vem antes do argumento string.

Nota: O parâmetro limit foi adicionado no PHP 4.0.1

Exemplo 1. explode() exemplos

<?php
// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
print $pieces[0]; // piece1
print $pieces[1]; // piece2

// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user,$pass,$uid,$gid,$gecos,$home,$shell) = explode(":",$data);
print $user; // foo
print $pass; // *
?>

Veja também
preg_split(),
spliti(),
split(), e
implode().

Anterior | Principal | Próxima
echo | Acima | fprintf


fprintf

(PHP 5)

fprintf -- Escreve uma string formatada para um stream

Descrição

int fprintf ( resource handle, string format [, mixed args])

Escreve uma string produzida de acordo com a string de formato format para o recurso de stream especificado por handle..

A string de formato é composta por zero ou mais diretivas: caracteres ordinários(excluindo %) que são copiados diretamente para o resultado ,e especificações de conversão, cada qual dos resultados obtidos do seu próprio parâmetro. Isto se aplica para fprintf(), sprintf(), e printf().

Cada especificação de conversão consite de um sinal de porcentagem (%), seguido por um ou mais destes elementos, em ordem:

  1. Um especificador de prenchimento opcional que diz qual caractere será usado para prencher os resultados para o tamanho certo da string. Este pode ser um caracteres de espaço ou um 0 (zero). O padrão é prencher com espaços. Um caractere de prenchimento alternativo pode ser especificado colocando-se antes um aspa simples ('). Veja os exemplos abaixo.

  2. Um especificador de alinhamento opcional que diz se o resultado deve ser alinhado a esquerda ou a direita. O padrão é alinhado a direita; um caractere - aqui fará ser alinhado a esquerda.

  3. Um número opcional, um especificador de largura que diz quantos caracteres (mínimo) deve resultar desta conversão.

  4. Um especificador de precisão que diz quantos digitos decimais serão mostrados para números de ponto flutuante. Esta opção não tem efeito para outros tipos senão float. (Outra função util para formatar números é number_format().)

  5. Um especificador de tipo que diz de qual tipo o argumento será tratado como. Tipos possiveis são:

    % - um caractere de porcentagem. Não é necessário nenhum argumento.
    b - o argumento é tratado como um inteiro e mostrado como um número binário.
    c - o argumento é tratado como um inteiro e mostrado o caractere ASCII. value.
    d - o argumento é tratado como um inteiro e mostrado como um número decimal com sinal.
    u - o argumento é tratado como um inteiro e mostrado como um número decimal sem sinal.
    f - o argumento é tratado com um float e mostrado como um número de ponto flutuante.
    o - o argumento é tratado como um inteiro e mostrado como um número octal.
    s - O argumento é tratado e mostrado como uma string.
    x - o argumento é tratado como um inteiro e mostrado como um número hexadecimal (com letras minúsculas).
    X - o argumento é tratado como um inteiro e mostrado como um número hexadecimal (com letras maiúsculas).

Veja também: printf(),
sprintf(),
sscanf(), fscanf(),
vsprintf(), e
number_format().

Examplos

Exemplo 1. sprintf(): inteiros prenchidos com zero

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Exemplo 2. sprintf(): formatando valores

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money irá mostrar "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted irá mostar "123.10"
?>

Anterior | Principal | Próxima
explode | Acima | get_html_translation_table


get_html_translation_table

(PHP 4 , PHP 5)

get_html_translation_table -- Retorna a tabela de tradução usada por htmlspecialchars() e htmlentities()

Descrição

array get_html_translation_table ( int table [, int quote_style])

get_html_translation_table() retornará a tabela de tradução que é usada internamente por htmlspecialchars() e htmlentities().

Há duas novas constantes definidas (HTML_ENTITIES, HTML_SPECIALCHARS) que permitem especificar a tabela que você quer. E como nas funções htmlspecialchars() e htmlentities()você pode opcionalmente especificar a quote_style que você está trabalhando. O padrão é modo ENT_COMPAT. Veja a descrição desses modos em htmlspecialchars().

Exemplo 1. Exemplo de tabela de tradução

<?php
$trans = get_html_translation_table(HTML_ENTITIES);
$str = "Hallo & <Frau> & Krämer";
$encoded = strtr($str, $trans);
?>
A variável $encoded conterá agora: "Hallo & <Frau> & Krämer".

Outro uso interessante desta função é, com a ajuda de array_flip(), mudar a direção da tradução.

<?php
$trans = array_flip($trans);
$original = strtr($encoded, $trans);
?>

O conteúdo de $original seria: "Hallo & <Frau> & Krämer".

Veja também htmlspecialchars(),
htmlentities(), strtr(),
e array_flip().

Anterior | Principal | Próxima
fprintf | Acima | hebrev


hebrev

(PHP 3, PHP 4 , PHP 5)

hebrev -- Converte texto lógico Hebraico para texto visual

Descrição

string hebrev ( string hebrew_text [, int max_chars_per_line])

O parâmetro opcional max_chars_per_line indica o número máximo de caracteres por linha que será exibido. A função tenta evitar palavras quebradas.

Veja também hebrevc()

Anterior | Principal | Próxima
get_html_translation_table | Acima | hebrevc


hebrevc

(PHP 3, PHP 4 , PHP 5)

hebrevc -- Converte um texto lógico Hebráico para um texto visual com conversão newline

Descrição

string hebrevc ( string hebrew_text [, int max_chars_per_line])

É similar a hebrev() a diferença é que ela converte newlines (\n) para "<br>\n". O parâmetro opcional max_chars_per_line indica o número máximo de caracteres por linha que será exibido. A função evita quebrar palavras.

Veja também hebrev()

Anterior | Principal | Próxima
hebrev | Acima | html_entity_decode


html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode -- Converte todas as entidades HTML para os seus caracteres

Descrição

string html_entity_decode ( string string [, int quote_style [, string charset]])

html_entity_decode() é o oposto da função htmlentities() no que converte todas as entidades HTML para os seus caracteres de string.

O segundo parâmetro, que é opcional, quote_style permite você definir o que será feito com 'apostrofos' e "aspas". Ele recebe uma constante entre três, sendo o padrão ENT_COMPAT:

Tabela 1. Constantes disponíveis para quote_style

Nome da Constante | Descrição
ENT_COMPAT | Irá converter aspas e deixar os apostrofos.
ENT_QUOTES | Irá converter ambos.
ENT_NOQUOTES | Irá deixar ambos sem converter.

O conjunto de caracteres ISO-8859-1 é usado como padrão para o terceiro parâmetro, que é opcional, charset. Este defini o conjunto de caracteres usado na conversão. Suporte para este terceiro argumento foi adicionado no PHP 4.1.0.

Os seguintes conjuntos de caracteres são suportados no PHP 4.3.0 e posterior.

Tabela 2. Conjuntos de caracteres suportados

Conjunto de caracteres | Apelidos | Descrição
ISO-8859-1 | ISO8859-1 | Western European, Latin-1
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1(ISO-8859-1).
UTF-8 |  | Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 | ibm866, 866 | Conjunto de caracteres do DOS específico para o Russo. Este conjunto de caracteres é suportado no 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Conjunto de caracteres do Windows específico para o Russo. Este conjunto de caracteres é suportado no 4.3.2.
cp1252 | Windows-1252, 1252 | Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R | koi8-ru, koi8r | Russo. Este conjunto de caracteres é suportado no 4.3.2.
BIG5 | 950 | Chinês Tradicional, usado principalmente em Taiwan.
GB2312 | 936 | Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS |  | Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS | SJIS, 932 | Japonês
EUC-JP | EUCJP | Japonês

Nota: Qualquer outro conjunto de caracteres não é reconhecido e será usado o ISO-8859-1.

Exemplo 1. Decodificando entidades html

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now

// Para versões anteriores ao PHP 4.3.0 você deve fazer isto:
function unhtmlentities ($string)
{
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>

Nota: Você deve imaginar porque trim(html_entity_decode('&nbsp;')); não reduz a string para uma string vazia, isto é porque a entidade '&nbsp;' não é o código ASCII 32 (o qual é retirado por trim()) mas o caracter ASCII 160 (0xa0) no conjunto de caracteres padrão.

Veja também htmlentities(),
htmlspecialchars(),
get_html_translation_table(),
htmlspecialchars() e urldecode().

Anterior | Principal | Próxima
hebrevc | Acima | htmlentities


htmlentities

(PHP 3, PHP 4 , PHP 5)

htmlentities -- Converte todos os caracteres para HTML entities

Descrição

string htmlentities ( string string [, int quote_style [, string charset]])

Esta função é idêntica a htmlspecialchars() em tudo, exceto que todos os caracteres que tem caracteres HTML equivalentes são são traduzidos nesta realidade. Como htmlspecialchars(), ele leva um segundo argumento opcional que indica o que seria feito com aspas simples e dupla. ENT_COMPAT (padrão) apenas converterá aspas duplas e deixará aspas-simples sozinha. ENT_QUOTES será convertido ambas aspas simples e dupla, e ENT_NOQUOTES deixará ambas desconvertidas.

No presente momento, o conjunto de caracteres ISO-8859-1 é usado como padrão. Suporte para o segundo argumento opcional foi adicionado no PHP 3.0.17 e PHP 4.0.3.

Como htmlspecialchars(),ele leva um terceiro argumento opcional que define o conjunto de caracteres usados na conversão. Suporte para esse argumento foi adicionado no PHP 4.1.0.

Não há o oposto desta função. Entretanto, você pode criar uma você próprio. Aqui está um exemplo de como fazer isso.

Exemplo 1. Oposto de htmlentities()

<?php
function unhtmlentities ($string)
{
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}
?>

Veja também htmlspecialchars() e nl2br().

Anterior | Principal | Próxima
html_entity_decode | Acima | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4 , PHP 5)

htmlspecialchars -- Converte caracteres especiais para a realidade HTML

Descrição

string htmlspecialchars ( string string [, int quote_style [, string charset]])

Certos caracteres tem significado especial em HTML, e seriam representados pela realidade HTML se eles estão preservanado seus significados. Esta função retorna uma string com algumas destas conversões feitas; As transformações feitas são aquelas mais úteis para programação web. Se você precisa que sejam transformados todos os caracteres da realidade HTML, use htmlentities() no lugar dela.

Esta função é útil na prevenção de textos fornecidos pelo usuário contendo marcação HTML, tal como um quadro de mensgens ou guest book. O segundo argumento opcional, quote_style, conta à função o que fazer com os caracteres aspas simples e dupla. O modo padrão, ENT_COMPAT, é o modo mais compatível com a atualidade, apenas transforma a aspas-dupla e deixa a aspas-simples como está. Se ENT_QUOTES está definida, ambas transformadas e se ENT_NOQUOTES está definida nenhuma das duas são modificadas.

As traduções executadas são:

  • '&' (ampersand) torna-se '&amp;'

  • '"' (aspas dupla) torna-se '&quot;' quando ENT_NOQUOTES não está definida.

  • ''' (aspas simples) torna-se '&#039;' apenas quando ENT_QUOTES está definida.

  • '<' (menor que) torna-se '&lt;'

  • '>' (maior que) torna-se '&gt;'

Exemplo 1. htmlspecialchars() exemplo

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Note que esta função não converte nada além do que foi listado acima. Para completa realidade de conversões, veja htmlentities(). Suporte para o segundo argumento opcional foi adicionado no PHP 3.0.17 e PHP 4.0.3.

O terceiro argumento define o conjunto de caracteres usados na conversão. O conjunto de caracteres padrão é ISO-8859-1. Suporte para o terceiro argumento foi adicionado no PHP 4.1.0.

Os seguintes conjuntos de caracteres são suportados no PHP 4.3.0 e posterior.

Tabela 1. Conjuntos de caracteres suportados

Conjunto de caracteres | Apelidos | Descrição
ISO-8859-1 | ISO8859-1 | Western European, Latin-1
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1(ISO-8859-1).
UTF-8 |  | Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 | ibm866, 866 | Conjunto de caracteres do DOS específico para o Russo. Este conjunto de caracteres é suportado no 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Conjunto de caracteres do Windows específico para o Russo. Este conjunto de caracteres é suportado no 4.3.2.
cp1252 | Windows-1252, 1252 | Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R | koi8-ru, koi8r | Russo. Este conjunto de caracteres é suportado no 4.3.2.
BIG5 | 950 | Chinês Tradicional, usado principalmente em Taiwan.
GB2312 | 936 | Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS |  | Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS | SJIS, 932 | Japonês
EUC-JP | EUCJP | Japonês

Nota: Qualquer outro conjunto de caracteres não é reconhecido e será usado o ISO-8859-1.

Veja também get_html_translation_table(), htmlentities() e nl2br().

Anterior | Principal | Próxima
htmlentities | Acima | implode


implode

(PHP 3, PHP 4 , PHP 5)

implode -- Junta elementos de uma matriz em uma string

Descrição

string implode ( string glue, array pieces)

Retorna uma string contendo os elementos da matriz na mesma ordem com uma ligação entre cada elemento.

Exemplo 1. implode() exemplo

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

print $comma_separated; // lastname,email,phone

?>

Nota: implode() pode, por razões históricas, aceitar seus parâmetros nas duas ordens. Para consistência com explode(), entretando, ela pode ser menos confusa por usar a ordem documentada dos argumentos.

Nota: Apartir do PHP 4.3.0, o parametro glue da função implode() é opcional e seu padrão é uma string em branco(''). Este não é o uso preferido de implode(). Nós recomendamos sempre usar dois parametros para compatibilidade com versões anteriores.

Veja também explode(), e split().

Anterior | Principal | Próxima
htmlspecialchars | Acima | join


join

join -- Sinônimo de implode()

Descrição

Esta função é um sinônimo de implode()

Anterior | Principal | Próxima
implode | Acima | levenshtein


levenshtein

(PHP 3>= 3.0.17, PHP 4 >= 4.0.1, PHP 5)

levenshtein -- Calcula a distância Levenshtein entre duas strings

Descrição

int levenshtein ( string str1, string str2)

int levenshtein ( string str1, string str2, int cost_ins, int cost_rep, int cost_del)

int levenshtein ( string str1, string str2, function cost)

Retorna a Levenshtein-Distance entre duas strings argumentos ou -1, se nenhuma das strings argumentos é mais longa que o o limite de 255 caracteres (255 seria mais do que o bastante para o nome ou comparação de dicionário, e ninguém sério estaria fazendo análises genéticas com PHP).

A distância Levenshtein é definida como o número mínimo de caracteres que você tem para substituir, inserir ou apagar para transformar str1 dentro de str2. A complexidade do algoritmo é O(m*n), onde n e m são o comprimento da str1 e str2 (rather good when compared to similar_text(), which is O(max(n,m)**3), but still expensive).

Na sua forma mais simples a função pegará apenas as duas strings como parâmetros e calculará apenas o número de operações de inserção, substituição e deletação necessárias para transformar str1 em str2.

Uma segunda variante pegará três parâmetros adicionais que definem o custo das operações de inserção, substituição e deletação. Esta é a mais geral e adapatável do que a variante um, mas não tão eficiente.

A terceira variante (que ainda não é implementada) será a mais geral e adaptável, mas também a alternativa mais lenta. Ela chamará uma função de usuário fornecida que determinará o custo para cada possível operação.

A função de usuário fornecida(The user-supplied function) será chamada com os seguintes argumentos:

  • operation to apply: 'I', 'R' ou 'D'

  • actual character in string 1

  • actual character in string 2

  • position in string 1

  • position in string 2

  • remaining characters in string 1

  • remaining characters in string 2

The user-supplied function has to return a positive integer describing the cost for this particular operation, but it may decide to use only some of the supplied arguments.

The user-supplied function approach offers the possibility to take into account the relevance of and/or difference between certain symbols (characters) or even the context those symbols appear in to determine the cost of insert, replace and delete operations, but at the cost of losing all optimizations done regarding cpu register utilization and cache misses that have been worked into the other two variants.

Veja também soundex(),
similar_text(), e
metaphone().

Anterior | Principal | Próxima
join | Acima | localeconv


localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv -- Obtém a informação da formatação numérica

Description

array localeconv ( void )

Retorna uma matriz associativa contendo informação de formatação numérica.

localeconv() retorna dados baseados na localidade corrente definida por setlocale(). A matriz associativa que é retornada contém os seguintes campos:

Array element | Descrição
decimal_point | Caracter de ponto decimal
thousands_sep | Thousands separator
grouping | Matriz contendo agrupamentos numéricos
int_curr_symbol | International currency symbol (i.e. USD)
currency_symbol | Simbolo da moeda local symbol (i.e. $)
mon_decimal_point | Caractere monetário de ponto decimal
mon_thousands_sep | Separador monetário de mil
mon_grouping | Matriz contendo agrupamentos monetários
positive_sign | Sinal para valores positivos
negative_sign | Sinal para valores negativos
int_frac_digits | Dígitos de fração Internacionais
frac_digits | Dígitos de fração locais
p_cs_precedes | TRUE Se o simbolo da moeda precede um valor positivo, FALSE se eles sucede um.
p_sep_by_space | TRUE Se um espaço separa o simbolo da moeda de um valor positivo, FALSE caso contrário
n_cs_precedes | TRUE Se o simbolo de moeda precede um valor negativo, FALSE se ele sucede
n_sep_by_space | TRUE se um espaço separa o simbolo da moeda de um valor negativo, FALSE caso contrário
p_sign_posn

0 | Parênteses na quantidade e simbolo da moeda
1 | A string sinal precede a quantidade e o simbolo da moeda
2 | A string sinal sucede a quantidade e o simbolo da moeda
3 | A string sinal precede imediatamente o simbolo da moeda
4 | A string sinal sucede imediatamente o simbolo da moeda

n_sign_posn

0 | Parentêses na quantidade e simbolo da moeda
1 | A string sinal precede a quantidade e o simbolo da moeda
2 | A string sinal sucede a quantidade e o simbolo da moeda
3 | A string sinal precede imediatamente o simbolo da moeda
4 | A string sinal sucede imediatamente o simbolo da moeda

Os campos de agrupamento contém matrizes que definem o modo de como os números seriam agrupados. Por exemplo, o campo de agrupamento para a localidade en_US, conteria uma matriz de 2 itens com os valores 3 e 3. O mais alto índice na matriz, mais distante da esquerda do agrupamento está. Se um elemento da matriz é igual a CHAR_MAX, até aqui nenhum agrupamento é feito. Se um elemento de matriz é igual a 0, o prévio elemento seria usado.

Exemplo 1. localeconv() exemplo

<?php
setlocale(LC_ALL, "en_US");

$locale_info = localeconv();

echo "<PRE>\n";
echo "--------------------------------------------\n";
echo "  Monetary information for current locale:  \n";
echo "--------------------------------------------\n\n";

echo "int_curr_symbol:   {$locale_info["int_curr_symbol"]}\n";
echo "currency_symbol:   {$locale_info["currency_symbol"]}\n";
echo "mon_decimal_point: {$locale_info["mon_decimal_point"]}\n";
echo "mon_thousands_sep: {$locale_info["mon_thousands_sep"]}\n";
echo "positive_sign:     {$locale_info["positive_sign"]}\n";
echo "negative_sign:     {$locale_info["negative_sign"]}\n";
echo "int_frac_digits:   {$locale_info["int_frac_digits"]}\n";
echo "frac_digits:       {$locale_info["frac_digits"]}\n";
echo "p_cs_precedes:     {$locale_info["p_cs_precedes"]}\n";
echo "p_sep_by_space:    {$locale_info["p_sep_by_space"]}\n";
echo "n_cs_precedes:     {$locale_info["n_cs_precedes"]}\n";
echo "n_sep_by_space:    {$locale_info["n_sep_by_space"]}\n";
echo "p_sign_posn:       {$locale_info["p_sign_posn"]}\n";
echo "n_sign_posn:       {$locale_info["n_sign_posn"]}\n";
echo "</PRE>\n";
?>

A constante CHAR_MAX também está definida para o uso mencionado acima.

Veja também setlocale().

Anterior | Principal | Próxima
levenshtein | Acima | ltrim


ltrim

(PHP 3, PHP 4 , PHP 5)

ltrim -- Retira whitespace do início da string

Descrição

string ltrim ( string str [, string charlist])

Nota: O segundo parâmetro foi adicionado no PHP 4.1.0

Esta função retorna uma string com whitespace retirados do início de str. Sem o segundo parâmetro, ltrim() retirará estes caracteres:

  • " " (ASCII 32 (0x20)), um espaço normal.

  • "\t" (ASCII 9 (0x09)), uma tabulação.

  • "\n" (ASCII 10 (0x0A)), uma linha nova (line feed).

  • "\r" (ASCII 13 (0x0D)), um retono de carro.

  • "\0" (ASCII 0 (0x00)), o byte NULL.

  • "\x0B" (ASCII 11 (0x0B)), uma tabulação vertical.

Você pode também especificar os caracteres que você quer retirar, por meio do parâmetro charlist. Simplesmente lista todos os caracteres que você quer que sejam retirados. Com .. você pode especificar um ordem de caracteres.

Exemplo 1. Exemplo do uso de ltrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$trimmed = ltrim($text);
// $trimmed = "These are a few words :) ...  "
$trimmed = ltrim($text," \t.");
// $trimmed = "These are a few words :) ...  "
$clean = ltrim($binary,"\0x00..\0x1F");
// trim the ASCII control characters at the beginning of $binary
// (from 0 to 31 inclusive)

?>

Veja também trim() e rtrim().

Anterior | Principal | Próxima
localeconv | Acima | md5_file


md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_file -- Calcula hash md5 de um dado arquivo

Descrição

string md5_file ( string filename [, bool raw_output])

Calcula o hash MD5 de um filename especificado usando o RSA Data Security, Inc. MD5 Message-Digest Algorithm, e retorna esse hash. A hash é um número hexadecimal de 32 caracteres. Se o parametro opcional raw_output for TRUE, então o md5 é retornado no formato bináriocom tamanho de 16.

Nota: O parametro opcional raw_output foi adicionado no PHP 5.0.0 e o padrão é FALSE

Esta função tem o mesmo propósito da linha de comando md5sum.

Veja também md5(), crc32() e sha1_file().

Anterior | Principal | Próxima
ltrim | Acima | md5


md5

(PHP 3, PHP 4 , PHP 5)

md5 -- Calcula o "hash MD5" de uma string

Descrição

string md5 ( string str [, bool raw_output])

Calcula o "hash MD5" de str usando RSA Data Security, Inc. MD5 Message-Digest Algorithm, e devolve esse hash. O hash é um número hexadecimal 32-character. Se o opcional raw_output está definido para TRUE, então o md5 compreende que ao invés disso retorna um "raw binary format" com comprimento 16.

Nota: O parâmetro opcional raw_output foi adicionado no PHP 5.0.0 e por definição é FALSE

Exemplo 1. Um exemplo de md5()

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

Veja também crc32(), md5_file(), e sha1().

Anterior | Principal | Próxima
md5_file | Acima | metaphone


metaphone

(PHP 4 , PHP 5)

metaphone -- Calcula a metaphone key de uma string

Descrição

string metaphone ( string str)

Calcula a metaphone key de str.

Similar a soundex() metaphone cria a mesma key para palavras sonoras similares. Ela é mais precisa do que soundex() por ela conhecer as regras básicas da pronunciação inglesa. As metaphone keys geradas são de comprimentos variados.

Metaphone foi desenvolvido por Lawrence Philips <lphilips at verity dot com>. Ela é descrita em ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Anterior | Principal | Próxima
md5 | Acima | money_format


money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format -- Formata um número como uma string de moeda

Descrição

string money_format ( string formato, float numero)

money_format() retorna uma versão formatada de um numero. Esta função engloba a biblioteca de função do C strfmon(), com a diferença que esta implementação converte apenas um número por vez.

Nota: A função money_format() é apenas definida se o sistema tem capacidades de strfmon. Por exemplo, o Windows não tem, então money_format() está indefinida o Windows.

A especificação do formato consistem da seguinte sequência:

  • a % character

  • flags opcionais

  • largura de campo opcional

  • precisão da esquerda opcional

  • precisão da direita opcional

  • conversão de caractere requerida

Flags. Uma ou mais, das flags opcionais abaixo podem ser usadas:

=f

O caracter = seguido por um caractere (byte simples) f para ser usado como o caracter númerico de preenchimento. O caractere de preenchimento padrão é o espaço.

^

Desabilite o uso de agrupamento de caractere (como definido pela localidade atual).

+ ou (

Especifique o estilo de formatação para números positivos e negativos. Se + é usado, o equivalente da localidade para + e - será usado. Se ( é usado, quantias negativas são fechadas em parêntesis. se nenhuma especificação é dada, o padrão será +.

!

Suprima o simbolo atual da string de saída.

-

Se presente, isso fará todos os campos esquerda-justificados (arrumados para a direita), em oposição ao padrão que é para campos serem direita-justificados (arrumados para a esquerda).

Largura de campo.

w

Uma string de dígito decimal especificando uma largura de campo mínima. O campo será direita-justificado a menos que o flag - seja usado. Valor padrão é 0 (zero) por definição.

Precisão de esquerdan.

#n

O número máximo de dígitos (n) esperado para a esquerda do caracatere decimal(ex. ponto decimal). Isso é usado normalmente para manter a saída formatada alinhada nas mesmas colunas, usando o caractere de preenchimento se o número de dígitos é menor do que n. Se o número de dígitos atual é maior do que n, então esta especificação é ignorada.

Se agrupamento foi suprimido usando a flag ^, separatores de agrupamento serão inseridos antes dos caracteres de preenchimento (se algum) são adicionados, mesmo se o caractere de preenchimento é um dígito.

Para garantir alinhamento, quaisquer caracteres aparecendo, antes ou depois do número em saída formatada, como moeda ou simbolos de sinal, são arrumado conforme necessário, com caracteres de espaço para fazer seus formatos positivos e negativos num comprimento igual.

Precisão de direita .

.p

Um período seguido por um número de dígitos (p) depois do caractere decimal. Se o valor de p é 0 (zero), o caractere decimal e os digitos à sua direita serão omitidos. Se nenhuma precisão de direita é incluida, o padrão será ditado pela localidade atual em uso. A quantia sendo formatada é arredondada para o número de dígitos especificados a priori para ser formatado.

Caracteres de conversão .

i

O número é formatado de acordo com o formato de moeda internacional da localidade (ex para a localidade de EUA: USD 1,234.56).

n

O número é formatado de acordo com o formato de moeda nacional da localidade (ex: para a localidade de_DE: DM1.234,56).

%

Retorna o caractere %.

Nota: A categoria LC_MONETARY de configurações de localidade, afeta o comportamento desta função. Utilize setlocale() para definir a localidade padrão apropriadamente antes de usar esta função.

Os caracteres antes e depois da string de formatação serão retornados sem modificação.

Exemplo 1. money_format() Exemplo

Nós usaremos localidades diferentes e especificações de formatos e localidades para ilustrar o uso desta função.

<?php

$number = 1234.56;

// Vamos exibir o formato internacional para a localidade en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number)."\n";
// USD 1,234.56

// Formato nacional italiano com 2 decimais
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number)."\n";
// L. 1.234,56

// Usando um número negativo
$number = -1234.5672;

// Formato nacional de US, usando () para números negativos
// e 10 dígitos para precisão de esquerda
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number)."\n";
// ($        1,234.57)

// Similar ao formato acima, adicionando o uso de dois dígitos de precisão de direita
// e '*' como caractere de preenchimento
echo money_format('%=*(#10.2n', $number)."\n";
// ($********1,234.57)

// Vamos justificar para a direita, usando largura de 14 posições, 8 digitos de
// precisão de esquerda, 2 precisão de direita, sem caractere de agrupamento
// e usando o formato internacional para a localiade de_DE.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56)."\n";
// DEM 1234,56****

// Vamos adicionar alguns dizeres antes e depois da especificação de conversão
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'O valor final é %i (depois de um desconto de 10%%)';
echo money_format($fmt, 1234.56)."\n";
// O valor final é GBP 1,234.56 (depois de um desconto de 10%)

?>

Veja também: setlocale(),
number_format(),sprintf(),
printf() e sscanf().

Anterior | Principal | Próxima
metaphone | Acima | nl_langinfo


nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfo -- Retorna informação de linguagem e local

Descrição

string nl_langinfo ( int item)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
money_format | Acima | nl2br


nl2br

(PHP 3, PHP 4 , PHP 5)

nl2br -- Insere quebras de linha HTML antes de todas newlines em uma string

Descrição

string nl2br ( string string)

Retorna string com '<br />' inserido antes de todas as newlines.

Nota: Começa no PHP 4.0.5, nl2br() está agora em XHTML complacente. Todas as versões anteriores a 4.0.5 retornarão string com '<br>' inserido antes das newlines ao invés de '<br />'.

Exemplo 1. usando nl2br()

<?php
echo nl2br("foo isn't\n bar");
?>

isto irá mostrar :

foo isn't<br />
 bar

Veja também htmlspecialchars(),
htmlentities(),
wordwrap() e
str_replace().

Anterior | Principal | Próxima
nl_langinfo | Acima | number_format


number_format

(PHP 3, PHP 4 , PHP 5)

number_format -- Formata um número com os milhares agrupados

Descrição

string number_format ( float number [, int decimals])

string number_format ( float number, int decimals, string dec_point, string thousands_sep)

number_format() retorna uma versão formatada de number. Esta função aceita um, dois ou quatro parâmetros (não três):

Se apenas um parâmetro é dado, number será formatado sem decimais, mas com uma virgula (",") entre cada grupo de milhar.

Se dois parâmetros são dados, number será formatado com o número de casas decimais especificadas em decimals com um ponto (".") na frente, e uma vírgula (",") entre cada grupo de milhar.

Se todos os quatro parâmetros forem dados, number será formatado com o número de casas decimais em decimals, dec_point ao invés do ponto (".") antes das casas decimais e thousands_sep ao invés de uma vírgula (",") entre os grupos de milhares.

Somente o primeiro caractere de thousands_sep é usado. Por exemplo, se você usar foo como o parâmetro thousands_sep no número 1000, number_format() irá retornar 1f000.

Exemplo 1. Exemplo number_format()

Por exemplo, a notação Francesa usa duas casas decimais, vírgula (',') como separador decimal, e espaço (' ') como separador de milhar. Isto é feito com a linha :

<?php

$number = 1234.56;

// Notação Inglesa (padrão)
$english_format_number = number_format($number);
// 1,234

// Notação Francesa
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// Notação Inglesa com separador de milhar
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Veja também: sprintf(), printf() e sscanf().

Anterior | Principal | Próxima
nl2br | Acima | ord


ord

(PHP 3, PHP 4 , PHP 5)

ord -- Retorna o valor ASCII do caractere

Descrição

int ord ( string string)

Retorna o valor ASCII do primeiro caractere de string. Esta função complementa chr().

Exemplo 1. Exemplo ord()

<?php
if (ord($str) == 10) {
    echo "O primeiro caractere de \$str é uma nova linha.\n";
}
?>

Você pode achar a tabela ASCII aqui: http://www.asciitable.com.

Veja também chr().

Anterior | Principal | Próxima
number_format | Acima | parse_str


parse_str

(PHP 3, PHP 4 , PHP 5)

parse_str -- Converte a string em variáveis

Descrição

void parse_str ( string str [, array arr])

Converte str como se ela tivesse sido passada via URL e define o valor das variáveis. Se o segundo parâmetro arr estiver presente, as variáveis são colocadas nesta variável como uma matriz de elementos.

Nota: Suporte para o segundo parâmetro, que é opcional, foi adicionado no PHP 4.0.3.

Nota: Para pegar a QUERY_STRING atual, você deve usar a variável $_SERVER['QUERY_STRING']. também você deve querer ler a seção sobre variáveis de fora do PHP.

Exemplo 1. Usando parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

Veja também parse_url(), pathinfo(), set_magic_quotes_runtime(), e urldecode().

Anterior | Principal | Próxima
ord | Acima | print


print

(PHP 3, PHP 4, PHP 5 )

print -- Mostra uma string

Descrição

int print ( string arg)

Mostra arg. Retorna sempre 1.

print() não é atualmente uma função real (é uma construção da linguagem) então você não precisa usar parênteses com ela.

Exemplo 1. Exemplos print()

<?php
print("Alô Mundo");

print "print() também funciona sem parênteses.";

print "Isto divide
em múltiplas linhas. As quebras de linha serão
mostradas também";

print "Isto divide\nem múltiplas linhas. As quebras de linha serão\nmostradas também";

print "escapar caracteres é feito \"como isto\".";

// Você pode usar variáveis dentro do
$foo = "foobar";
$bar = "barbaz";

print "foo is $foo"; // foo is foobar
// Você pode usar arrays
$bar = array("value" => "foo");
print "this is {$bar['value']} !"; // this is foo !

// Usando apóstrofos irá exibir o nome da variável, não o valor
print 'foo is $foo'; // foo is $foo

// Se você não estiver usando outros caracteres, somente mostre a variável
print $foo;          // foobar

print <<<END
Isto usa a sintaxe "aqui documento" para mostrar
múltiplas linhas com interpolação de $variable interpolation. Note
que o terminador de aqui documento deve aparecer
em uma linha terminada em ponto e vírgula(;) sem nenhum espaço extra!
END;
?>

Para uma discussão sobre as diferenças entre print() e echo(), veja este FAQ: Knowledge Base Article: http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Veja também echo(), printf(), e flush().

Anterior | Principal | Próxima
parse_str | Acima | printf


printf

(PHP 3, PHP 4 , PHP 5)

printf -- Mostra uma string formatada

Descrição

void printf ( string format [, mixed args])

Produz uma saída de acordo com format, o qual é descrito na documentação para sprintf().

Veja também print(), sprintf(),
vprintf(), sscanf(),
fscanf() e flush().

Anterior | Principal | Próxima
print | Acima | quoted_printable_decode


quoted_printable_decode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

quoted_printable_decode -- Converte uma string quoted-printable para uma string de 8 bit

Descrição

string quoted_printable_decode ( string str)

Esta função retorna uma string de 8-bit correspondendo a string quoted-printable decodificada. Esta função é similar a imap_qprint(), com a exceção de não requerer o módulo IMAP para funcionar.

Anterior | Principal | Próxima
printf | Acima | quotemeta


quotemeta

(PHP 3, PHP 4 , PHP 5)

quotemeta -- Adiciona uma barra invertida antes dos meta caracteres

Descrição

string quotemeta ( string str)

Retorna uma versão de str com uma barra invertida (\) entes de cada um destes caracteres:
. \\ + * ? [ ^ ] ( $ )

Veja também addslashes(),
htmlentities(),
htmlspecialchars(),
nl2br(), and
stripslashes().

Anterior | Principal | Próxima
quoted_printable_decode | Acima | rtrim


rtrim

(PHP 3, PHP 4 , PHP 5)

rtrim -- Retira espaço em branco do final da string

Descrição

string rtrim ( string str [, string charlist])

Nota: O Segundo parâmetro foi adicionado no PHP 4.1.0

Esta função retorna a string como os espaços em branco retirados do final de str. Sem o segundo parâmetro, rtrim() irá retirar os seguintes caracteres:

  • " " (ASCII 32 (0x20)), um espaço comum.

  • "\t" (ASCII 9 (0x09)), uma tabulação.

  • "\n" (ASCII 10 (0x0A)), uma nova linha.

  • "\r" (ASCII 13 (0x0D)), um retorno de carro(ENTER).

  • "\0" (ASCII 0 (0x00)), o byte NULL.

  • "\x0B" (ASCII 11 (0x0B)), uma tabulação vertical.

Você também pode especificar os caracteres que você deseja retirar, pelo parâmetro charlist. Simplesmente liste todos os caracteres que você quer ver retirados. Com .. você pode especificar um intervalo de caracteres.

Exemplo 1. Exemplo de uso da função rtrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$trimmed = rtrim($text);
// $trimmed = "\t\tThese are a few words :) ..."
$trimmed = rtrim($text," \t.");
// $trimmed = "\t\tThese are a few words :)"
$clean = rtrim($binary,"\0x00..\0x1F");
// retira os caracteres de controle ASCII ao final de $binary
// (de 0 até 31 inclusive)

?>

Veja também trim() e ltrim().

Anterior | Principal | Próxima
quotemeta | Acima | setlocale


setlocale

(PHP 3, PHP 4 , PHP 5)

setlocale -- Define informações locais

Descrição

string setlocale ( mixed category, string locale [, string ...])

string setlocale ( mixed category, array locale)

Category é uma constante (ou string) especificando a categoria de funções afetadas pela definição local: setting:

  • LC_ALL para tudo abaixo

  • LC_COLLATE para comparação de strings, veja strcoll()

  • LC_CTYPE para classificação de caracteres e conversão, por exemplo strtoupper()

  • LC_MONETARY para localeconv()

  • LC_NUMERIC para o separador decimal (Veja também localeconv())

  • LC_TIME para formatação de data e hora com strftime()

Se locale for uma string vazia "", o nome do local será obtido apartir de variaveis de ambiente com os mesmos nomes das categorias acima ou apartir de "LANG".

Se locale for NULL ou "0", a definição de local não é modificada, apenas retorna a definição atual.

Se locale for uma matriz ou conter parâmetros adicionais, então cada elemento da matriz é tentado como um local até obter sucesso. Isto é útil se um lugar é conhecido por nomes diferentes em sistemas diferentes ou para prover um outro local se um estiver indisponível.

Nota: Passar varios lugares não esta disponível antes do PHP 4.3.0

setlocale() retorna o novo local ou FALSE se a funcionalidade de locais não estiver implementada em sua plataforma, o local não existir ou a categoria for invalida. Uma categoria invalida também gera uma mensagem de aviso. Nomes de categoria/local podem ser encontrados em RFC 1766 e ISO 639.

Nota: O valor de retorno de setlocale() depende do sistema no qual o PHP esta sendo executado. Ele retorna exatamente o que a função setlocale do sistema retorna.

Dica: Usuários do windows encontraram informações úteis sobre as strings de locale no site MSDN da Microsoft. Strings das línguas suportadas podem ser encontradas aqui as strings de pais/região suportados aqui. Sistemas windows suportam códigos de três letras para pais/região especificados por ISO 3166-Alpha-3, que pode ser encontrada em Unicode website .

Exemplo 1. Exemplos setlocale()

<?php
/* Define o local para Holandês(usar pt_BR para o Português(Brasil) ) */
setlocale (LC_ALL, 'nl_NL');

/* Mostra: vrijdag 22 december 1978 */
echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978));

/* Tenta diferentes nomes de local para o Alemão apartir do PHP 4.3.0 */
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Exemplo 2. Exemplos para windows desetlocale()

<?php
/* Define o local para Holandês(usar ptb para o Português(Brasil) ) */
setlocale (LC_ALL, 'nld_nld');

/* Mostra: vrijdag 22 december 1978 */
echo strftime ("%A %d %B %Y", mktime (0, 0, 0, 12, 22, 1978));

/* Tenta diferentes nomes de local para o Alemão apartir do PHP 4.3.0 */
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Anterior | Principal | Próxima
rtrim | Acima | sha1_file


sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_file -- Calcula a hash sha1 de um arquivo

Descrição

string sha1_file ( string nomedoarquivo [, bool raw_output])

Calcula a hash sha1 de nomedoarquivo usando US Secure Hash Algorithm 1, e retorna esta hash. A hash é um número hexadecimal de 40 caracteres. Em caso de falha é retornado FALSE. Se o parâmetro opcional raw_output for TRUE, então o resultado é retornado em um formato binário com o tamanho de 20.

Nota: O parâmetro opcional raw_output foi adicionado no PHP 5.0.0 e o padrão é FALSE

Veja também sha1(), crc32(), e md5_file()

Anterior | Principal | Próxima
setlocale | Acima | sha1


sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1 -- Calcula a hash sha1 de uma string

Descrição

string sha1 ( string str [, bool raw_output])

Calcula a hash sha1 de str usando US Secure Hash Algorithm 1, e retorna esta hash. A hash é um número hexadecimal de 40 caracteres. Se o parâmetro opcional raw_output for TRUE, então o resultado é retornado em um formato binário com o tamanho de 20.

Nota: O parâmetro opcional raw_output foi adicionado no PHP 5.0.0 e o padrão é FALSE

Exemplo 1. Exemplo sha1()

<?php
$str = 'apple';

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

Veja também sha1_file(), crc32(), e md5()

Anterior | Principal | Próxima
sha1_file | Acima | similar_text


similar_text

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

similar_text -- Calcula a similaridade entre duas strings

Descrição

int similar_text ( string first, string second [, float percent])

Calcula a similaridade entre duas strings como descrito em Oliver [1993]. Note que esta implementação não usa um stack como no pseudo-código de Oliver, mas chamadas recursivas as quais podem ou não tornar todo o processo mais rapido. Note também que a complexidade deste algotimo é O(N**3) aonde N é o tamanho da maior string.

Passando por referencia o terceiro argumento, similar_text() irá calcular a similaridare em porcentagem para você. Retorna o número de caracteres igual em ambas strings.

Anterior | Principal | Próxima
sha1 | Acima | soundex


soundex

(PHP 3, PHP 4 , PHP 5)

soundex -- Calcula a chave soundex de uma string

Descrição

string soundex ( string str)

Calcula a chave soundex de str.

Chaves soundex tem a propriedade que palavras pronunciadas similarmente produzem a mesma chave soundex, e assim podem ser usadas em pesquisas em bancos de dados aonde você conhece a pronuncia mas não exatamente como se escreve. Esta função soundex retorna uma string de 4 caracteres, começando com uma letra.

Esta função soundex em particular é a descrita por Donald Knuth em "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Exemplo 1. Exemplos Soundex

<?php
soundex("Euler") == soundex("Ellery") == 'E460';
soundex("Gauss") == soundex("Ghosh") == 'G200';
soundex("Hilbert") == soundex("Heilbronn") == 'H416';
soundex("Knuth") == soundex("Kant") == 'K530';
soundex("Lloyd") == soundex("Ladd") == 'L300';
soundex("Lukasiewicz") == soundex("Lissajous") == 'L222';
?>

Veja também levenshtein(), metaphone() e similar_text().

Anterior | Principal | Próxima
similar_text | Acima | sprintf


sprintf

(PHP 3, PHP 4 , PHP 5)

sprintf -- Retorna uma string formatada

Descrição

string sprintf ( string format [, mixed args])

Retorna uma string produzida de acordo com a string de formatação format.

A string e formatação é composta de zero ou mais diretivas: caracteres normais (excluindo %) que são copiados diretamente para o resultado, e especificações de conversão, cada um dos quais resulta em obter o seu próprio parâmetro. Isto se aplica para sprintf() e printf().

Cada especificação de conversão consiste em um símbolo de porcento (%), seguido por um ou mais destes elementos em ordem:

  1. Um especificador de prenchimento opcional que diz qual caractere será usado para prencher o resultado para o tamanho certo. Isto pode ser um espaço ou 0 (zero character). O padrão é prencher com espaços. Um caractere alternativo de prenchimento pode ser especificado colocando uma aspa simples (') antes. Veja os exemplos abaixo.

  2. Um especificador de alinhamento opcional que diz se o resultado deve ser alinhado a esquerda ou a direita. O padrão é alinhar a direita; um caractere - fará com que seja alinhado a esquerda.

  3. Um número opcional, um especificador de tamanho que diz quantos caracteres (mínimo) deve resultar desta conversão.

  4. Um especificador de precisão opcional que diz quantos digitos decimais devem ser mostrados para números de ponto flutuante. Esta opção não tem efeito para outros tipos que não sejam float. (Outra função útil para formatar números é number_format().)

  5. Um especificador de tipo que diz que o argumento deve ser tratado como do tipo. Os tipos possivéis são:

    % - Um caractere porcento. Não é requerido neenhum argumento.
    b - O argumento é tratado com um inteiro, e mostrado como um binário.
    c - O argumento é tratado como um inteiro, e mostrado como o caractere ASCII correspondente.
    d - O argumento é tratado como um inteiro, e mostrado como um número decimal com sinal.
    u - O argumento é tratado com um inteiro, e mostrado como um número decimal sem sinal.
    f - O argumento é tratado como um float, e mostrado como um número de ponto flutuante.
    o - O argumento é tratado com um inteiro, e mostrado como un número octal.
    s - O argumento é tratado e mostrado como uma string.
    x - O argumento é tratado como um inteiro, e mostrado como um número hexadecimal (com as letras minúsculas). letters).
    X - O argumento é tratado como um inteiro, e mostrado como um número hexadecimal (com as letras maiúsculas).

Apartir do PHP 4.0.6 a string de formatação suporta numeração/troca. Aqui esta um exemplo:

Exemplo 1. Troca de argumentos

<?php
$format = "There are %d monkeys in the %s";
printf($format,$num,$location);
?>
Este deve mostrar, "There are 5 monkeys in the tree". Mas imagine que nós estejamos criando a string de formatação em um arquivo separado, normalmente para internacionalizar e rescrevemos como:

Exemplo 2. Troca de argumentos

<?php
$format = "The %s contains %d monkeys";
printf($format,$num,$location);
?>
Agora nós temos um problema. A ordem dos argumentos na string de formatação não combina com os argumentos no código. Nós gostariamos de deixar o código como esta e simplesmente indicar na string de formatação quais argumentos pertencem aonde. Podemos escrever a string de formatação assim:

Exemplo 3. Troca de argumento

<?php
$format = "The %2\$s contains %1\$d monkeys";
printf($format,$num,$location);
?>
Um beneficio adicional disto é ue você pode repetir os especificadores de conversão sem adicionar mais argumentos em seu código. Por exemplo:

Exemplo 4. Troca de argumento

<?php
$format = "The %2\$s contains %1\$d monkeys.
           That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);
?>

Veja também printf(),
sscanf(), fscanf(),
vsprintf() e
number_format().

Examplos

Exemplo 5. sprintf(): inteiros prenchidos com zero

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Exemplo 6. sprintf(): formatando dinheiro

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money irá mostrar "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted irá mostrar "123.10"
?>

Anterior | Principal | Próxima
soundex | Acima | sscanf


sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf -- Interpreta a entrada de uma string de acordo com um formato

Descrição

mixed sscanf ( string str, string formato [, string var1])

A função sscanf() é análoga a printf(). sscanf() lê da string str e interpreta ela de acordo com o formato especificado. Se apenas dois parâmetros forem passados para esta função, os valores interpretados serão retornados como array.

Qualquer espaço em branco na string de formato será comparada com qualquer espaço em branco na string de entrada. Isto significa que até mesmo um tab \t na string de formato pode ser comparada com um caractere de espaço simples na string de entrada.

Exemplo 1. sscanf() Exemplo

<?php
// Pegando o número serial
$serial = sscanf("SN/2350001","SN/%d");
// e a data de criação
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate,"%s %d %d");
echo "O Item $serial foi criado em: $year-".substr($month,0,3)."-$day\n";
?>
Se parâetros opcionais são passados, a função retornará o número de valores assumidos. Os parâmetros opcionais devem ser passados por referência.

Exemplo 2. sscanf() - usando parâmetros opcionais

<?php
// pega informação do autor e gera uma entrada de DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth,"%d\t%s %s", &$id, &$first, &$last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>

Veja também fscanf(), printf(), e sprintf().

Anterior | Principal | Próxima
sprintf | Acima | str_ireplace


str_ireplace

(PHP 5)

str_ireplace -- Versão que não diferencia maiúsculas e minúsculas de str_replace().

Descrição

mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count])

Esta função retorna uma string ou uma matriz com todas as ocorrencias de search em subject (não diferenciando maiúsculas e minúsculas) substituidas com o valor de replace. Se você não necessitar de regras de substituição mais complicadas, você deve geralmente usar esta função ao invés de eregi_replace() ou preg_replace() com o modificador i.

Se subject for uma matriz, então a procura e substituição é realizada para cada item de subject, e o valor retornado é uma matriz.

Se search e replace forem matrizes, então str_ireplace() pega um valor de cada matriz e os usas para localizar e substituir em subject. Se replace tiver menos valores do que search, então uma string vazia é usada para o resto dos valores de substituição. Se search é uma matriz e replace é uma string; então esta string é usada para cada valor de search.

Exemplo 1. Exemplo str_ireplace()

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

Esta função é segura para binários.

Nota: Apartir do PHP 5.0.0 o número de vezes que needles foi encontrado e substituido será retornado em count o qual é passado por referencia. Anteriormente a PHP 5.0.0 este parâmetro não esta disponível.

Veja também:
str_replace(),
ereg_replace(),
preg_replace() e
strtr().

Anterior | Principal | Próxima
sscanf | Acima | str_pad


str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_pad -- Preenche uma string para um certo tamanho com outra string

Descrição

string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]])

Esta função retorna a string input preenchida na esquerda, direita ou ambos os lados até o tamanho especificado. Se o parâmetro opcional pad_string não for indicado, input é preenchido com espaços, se não é preenchido com os caracteres de pad_string até o limite.

O parâmetro opcional pad_type pode ser STR_PAD_RIGHT (preencher a direita), STR_PAD_LEFT (preencher a esquerda), ou STR_PAD_BOTH (preencher de ambos os lados). If pad_type não for especificado é assumido que seja STR_PAD_RIGHT.

Se o valor de pad_length é negativo ou menor do que o tamanho da string , não há nenhum preenchimento.

Exemplo 1. Exemplo str_pad()

<?php
$input = "Alien";
print str_pad($input, 10);                      // produz "Alien     "
print str_pad($input, 10, "-=", STR_PAD_LEFT);  // produz "-=-=-Alien"
print str_pad($input, 10, "_", STR_PAD_BOTH);   // produz "__Alien___"
print str_pad($input, 6 , "___");               // produces "Alien_"
?>

Nota: O parâmetro pad_string será truncado se se o número de caracteres de prenchimento não puder ser dividido igualmente pelo tamanho do parâmetro pad_string.

Anterior | Principal | Próxima
str_ireplace | Acima | str_repeat


str_repeat

(PHP 4 , PHP 5)

str_repeat -- Repete uma string

Descrição

string str_repeat ( string input, int multiplier)

Retorna input_str repetida multiplier vezes. multiplier deve ser maior ou igual a 0. Se o parâmetro multiplier for 0, a função irá retornar uma string vazia.

Exemplo 1. Exemplo str_repeat()

<?php
echo str_repeat("-=", 10);
?>

Isto irá mostrar "-=-=-=-=-=-=-=-=-=-=".

veja também for, str_pad() e substr_count().

Anterior | Principal | Próxima
str_pad | Acima | str_replace


str_replace

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição

Descrição

mixed str_replace ( mixed pesquisa, mixed substitui, mixed assunto [, int &count])

Esta função retorna uma string ou um array com todas as ocorrências de pesquisa em assunto substituidas com a o valor dado para substitui. Se você não precisa de regras de substituição especiais, você sempre poderia usar esta função ao invés de ereg_replace() ou preg_replace().

Como do PHP 4.0.5, cada parâmetro em str_replace() pode ser um array.

Atenção

Em versões do PHP anteriores à 4.3.3 existia um bug ao se usar arrays em ambos os parâmetros pesquisa e substitui que causava índices de pesquisa vazios para serem pulados sem avançar o apontador interno no array substitui. Isto foi corrigido no PHP 4.3.3, quaisquer scripts que contavam com este bug removeriam valores de pesquisa vazios anteriores à chamada desta função afim de imitar o comportamento original.

Se assunto é um array, então a pesquisa e a substituição é executada com cada entrada do assunto, e o valor de retorno é um array também.

Se pesquisa e substitui são arrays, então str_replace() pega o valor de cada array e os usa para fazer a pesquisa e a substituição em subject. Se substitui tem menos valores do que pesquisa, então um string vazia é usada para o restante dos valores de substituição. Se pesquisa é um array e substitui é uma string; então esta string de substituição é usada para cada valor de pesquisa.

Exemplo 1. str_replace() exemplos

<?php
// Fornece: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Fornece: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Fornece: você comeria pizza, cerveja e sorvete todos os dias
$frase  = "você comeria frutas, vegetais, e fibra todos os dias.";
$saldavel = array("frutas", "vegetais", "fibra");
$saboroso   = array("pizza", "cerveja", "sorvete");

$novafrase = str_replace($saudavel, $saboroso, $frase);

// Uso do parâmetro count está disponível no PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
?>

Nota: Esta função é compatível com dados binários

Nota: No PHP 5.0.0 o número "neddles" (search) combinadas e substituidas será retornado em count que é passado por referência. Antes do PHP 5.0.0 este parâmetro não estava disponível.

Veja também
str_ireplace(),
substr_replace(),
ereg_replace(),
preg_replace(), e
strtr().

Anterior | Principal | Próxima
str_repeat | Acima | str_rot13


str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 -- Executa a transformação rot13 em uma string

Descrição

string str_rot13 ( string str)

Esta função executa a codificação ROT13 no argumento str e retorna a string resultante. A codificação ROT13 simplesmente troca cada letra por 13 lugares no alfabeto, enquanto não muda os caracteres não-alfa. Codificação e decodificação são feitos pela mesma função, passando uma string codificada como argumento retornará a string com a versão original.

Exemplo 1. rot13() exemplo

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Nota: O comportamento desta função foi "buggy" até o PHP 4.3.0. Antes disso, o str foi também modificado, como se passado por referência.

Anterior | Principal | Próxima
str_replace | Acima | str_shuffle


str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffle -- Mistura uma string aleatoriamente

Descrição

string str_shuffle ( string str)

str_shuffle() mistura uma string. Uma permutação de todas as possibilidades é criada.

Exemplo 1. str_shuffle() exemplo

<?php
$str = 'abcdef';
$misturada = str_shuffle($str);

// Isto exibirá algo como: bfdaec
print $misturada;
?>

Veja também shuffle() e rand().

Anterior | Principal | Próxima
str_rot13 | Acima | str_split


str_split

(PHP 5)

str_split -- Converte uma string para um array

Descrição

array str_split ( string string [, int split_length])

Converte uma string em um array. Se o parâmetro opcional split_length for especificado, o array retornado será quebrado em pedaços com cada um estando com split_length de comprimento, caso contrário cada pedaço terá um caractere de comprimento.

FALSE é retornado se split_length é menor do que 1. Se o comprimento split_length escede o comprimento da string, a string inteira é retornada como o primeiro(e único) elemento do array.

Exemplo 1. Exemplo utilizando str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

/* A saída será como:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)
*/
?>

Exemplo 2. Exemplos relacionados a str_split()

<?php

$str = "Hello Friend";

print $str{0};  // H
print $str{8};  // i

// Cria: array('H','e','l','l','o',' ','F','r','i','e','n','d')
$arr1 = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

?>

Veja também preg_split(),
split(),
count_chars(),
str_word_count(), e
for.

Anterior | Principal | Próxima
str_shuffle | Acima | str_word_count


str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_count -- Retorna informação sobre as palavras usadas em uma string

Descrição

mixed str_word_count ( string string [, int formato])

Conta o número de palavras dentro de string. Se o formato opcional não é especificado, então o valor de retorno será um inteiro representando o número de palavras encontrado. No no caso de o formato está especificado, o valor de retorno será um array, cujo conteúdo é dependente do formato. O valor possível para o format e as saídas resultantes são listadas abaixo.

  • 1 - retorna um array contendo todas as palavras encontradas dentro de string.

  • 2 - retorna um array associativo, onde a chave é a posição numérica da palavra dentro da string e o valor é a própria palavra.

Devido ao propósito desta função, 'word' é definida como uma string dependente da localidade contendo caracteres alfanuméricos, que também contém, mas não inicia com os caracteres "'" and "-".

Exemplo 1. Exemplo que usa str_word_count()

<?php

$str = "Hello friend, you're
        looking          good today!";

$a   = str_word_count($str, 1);
$b   = str_word_count($str, 2);
$c   = str_word_count($str);

print_r($a);
print_r($b);
print $c;

/* a saída pode ser:

Array
(
    [0] => Hello
    [1] => friend
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

Array
(
    [0] => Hello
    [6] => friend
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

6

*/
?>

Veja também explode(),
preg_split(),
split(),
count_chars(), e
substr_count().

Anterior | Principal | Próxima
str_split | Acima | strcasecmp


strcasecmp

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

strcasecmp -- Comparação de strings sem diferenciar maiúsculas e minúsculas segura para binário

Descrição

int strcasecmp ( string str1, string str2)

Retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.

Exemplo 1. Exemplo strcasecmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 é igual a $var2 numa comparação sem diferenciar maiúsculas e minúsculas';
}
?>

Veja também ereg(), strcmp(),
substr(), stristr(),
strncasecmp() e
strstr().

Anterior | Principal | Próxima
str_word_count | Acima | strchr


strchr

strchr -- Apelido para strstr()

Descrição

Esta função é um apelido para strstr().

Anterior | Principal | Próxima
strcasecmp | Acima | strcmp


strcmp

(PHP 3, PHP 4 , PHP 5)

strcmp -- Comparação de string segura para binário

Descrição

int strcmp ( string str1, string str2)

Retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.

Note que esta função diferencia maiúsculas e minúsculas.

Veja também ereg(),
strcasecmp(), substr(),
stristr(), strncasecmp(),
strncmp(), e strstr().

Anterior | Principal | Próxima
strchr | Acima | strcoll


strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcoll -- Comparação de string baseada no local

Descrição

int strcoll ( string str1, string str2)

Retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais. strcoll() usa o local atual para fazer as comparações. Se o local atual for C ou POSIX, esta função é equivalente à strcmp().

Note que esta função diferencia maiúsculas e minúsculas, e diferentemente de strcmp() esta função não é segura para binário.

Nota: strcoll() foi adicionada no PHP 4.0.5, mas não foi ativada para o win32 até 4.2.3.

Veja também ereg(), strcmp(),
strcasecmp(), substr(),
stristr(), strncasecmp(),
strncmp(), strstr(), e
setlocale().

Anterior | Principal | Próxima
strcmp | Acima | strcspn


strcspn

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

strcspn -- Encontra o tamanho do segmento inicial que não contenha a mascara

Descrição

int strcspn ( string str1, string str2)

Retorna o tamanho do segmento inicial de str1 que não contém nenhum dos caracteres em str2.

Veja também strspn().

Anterior | Principal | Próxima
strcoll | Acima | strip_tags


strip_tags

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

strip_tags -- Retira as tags HTML e PHP de uma string

Descrição

string strip_tags ( string str [, string allowable_tags])

Esta função tenta retornar uma string retirando todas as tags HTML e PHP de str. Ele erra no lado de ter cuidado no caso de tags com problemas ou incompletas. Usa o mesmo sistema para retirar as tags do que fgetss().

Você pode utilizar o segundo parâmetro, que é opcional, para indicar tags que não devam ser retiradas.

Nota: allowable_tags foi adicionado em PHP 3.0.13 e PHP 4.0b3.

Exemplo 1. Exemplo strip_tags()

<?php
$string = strip_tags($string, '<a><b><i><u>');
?>

Atenção

Esta função não modifica nenhum dos atributos das tags que você permitiu usando allowable_tags, incluindo os atributos style e onmouseover que um usuário travesso pode abusar quando colocar texto a ser mostrado para os outros usuários.

Anterior | Principal | Próxima
strcspn | Acima | stripcslashes


stripcslashes

(PHP 4 , PHP 5)

stripcslashes -- Desfaz o efeito de addcslashes()

Descrição

string stripcslashes ( string str)

Retorna uma string com as barras invertidas retiradas. Reconhece estilo C \n, \r ..., representação octal e hexadecimal.

Veja também addcslashes().

Anterior | Principal | Próxima
strip_tags | Acima | stripos


stripos

(PHP 5)

stripos -- Encontra a primeira ocorrencia de uma string sem diferenciar maiúsculas e minúsculas

Descrição

int stripos ( string haystack, string needle [, int offset])

Retorna a posição numerica da primeira ocorrencia de needle na string haystack. Diferentemente de strpos(), stripos() não diferencia maiúsculas e minúsculas.

Note que o parâmetro needle deve ser uma string de um ou mais caracteres.

Se needle não for encontrada, stripos() irá retornar boolean FALSE.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Exemplo 1. Exemplos stripos()

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// 'a' certamente não esta em 'xyz'
if ($pos1 === false) {
    echo "A string '$findme' não foi encontrada na string '$mystring1'";
}

// Note o nosso uso de  ===. Simples == não funcionaria como o esperado
// porque a posição de 'a' é 0 (primeiro) caractere.
if ($pos2 !== false) {
    echo "Nós encontramos '$findme' em '$mystring2' na posição $pos2";
}
?>

Se needle não é uma string, é convertida para um inteiro e aplicado o valor do caractere.

O parâmetro opcional offset permite a você especificar apartir de qual caractere em haystack a procura começa. A posição retornada ainda é relativa ao inicio de haystack.

Veja também strpos(), strrpos(),
strrchr(), substr(),
stristr(), strripos(),
strstr() e stri_replace().

Anterior | Principal | Próxima
stripcslashes | Acima | stripslashes


stripslashes

(PHP 3, PHP 4 , PHP 5)

stripslashes -- Desfaz o efeito de addslashes()

Descrição

string stripslashes ( string str)

Retorna uma string com as barras invertidas retiradas. (\' se torna ' e assim por diante.) Duas barras invertidas (\\) se tornam uma (\).

Um exemplo do uso de stripslashes() é quando a diretiva do PHP magic_quotes_gpc é on (é on por padrão), e você não esta inserindo estes dados em um lugar (como um banco de dados) que precise de escapar. Por exemplo, se você esta usando estes dados para gerar um formulário HTML.

Exemplo 1. Exemplo stripslashes()

<?php
$str = "Seu nome é O\'reilly?";

// Mostra: Seu nome é O'reilly?
echo stripslashes($str);
?>

Veja também addslashes() e get_magic_quotes_gpc().

Anterior | Principal | Próxima
stripos | Acima | stristr


stristr

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

stristr -- strstr() sem diferenciar maiúsculas e minúsculas

Descrição

string stristr ( string haystack, string needle)

Retorna tudo de haystack apartir da primeira ocorrência de needle até o final. needle e haystack são examinadas de uma maneira que não diferencia maiúsculas e minúsculas.

Se needle não for encontrada, retorna FALSE.

Se needle não for uma string, ela é convertida para um inteiro e aplicado o valor do caractere.

Exemplo 1. Exemplo stristr()

<?php
  $email = 'USER@EXAMPLE.com';
  $domain = stristr($email, 'e');
  print $domain;
// outputs ER@EXAMPLE.com
?>

Veja também strchr(),
strrchr(), substr() e
ereg().

Anterior | Principal | Próxima
stripslashes | Acima | strlen


strlen

(PHP 3, PHP 4 , PHP 5)

strlen -- Retorna o tamanho de uma string

Descrição

int strlen ( string str)

Retorna o tamanho de string.

Exemplo 1. Exemplo strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Veja também count().

Anterior | Principal | Próxima
stristr | Acima | strnatcasecmp


strnatcasecmp

(PHP 4 , PHP 5)

strnatcasecmp -- Comparação de strings sem diferenciar maiúsculas/minúsculas usando o algoritmo "natural order"

Descrição

int strnatcasecmp ( string str1, string str2)

Esta função implementa um algoritmo de comparação de strings alfanumérico do jeito que um ser humano faz. Esta função é similar a strnatcmp(), com a exeção que a comparação não diferencia maiúsculas/minúsculas. Para maiores informações veja: Martin Pool's Natural Order String Comparison.

Similar a outras funções de comparação de string, esta aqui retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.

Veja também ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strncasecmp(),
strnatcmp(), e strstr().

Anterior | Principal | Próxima
strlen | Acima | strnatcmp


strnatcmp

(PHP 4 , PHP 5)

strnatcmp -- Comparação de strings usando o algoritmo "natural order"

Descrição

int strnatcmp ( string str1, string str2)

Esta função implementa um algoritmo de comparação de strings alfanumérico do jeito que um ser humano faz, isto é descrito como "ordem natural". Um exemplo da diferença entre este algoritmo e os algoritmos regulares de ordenação (usado em strcmp()) pode ser visto abaixo:

<?php
$arr1 = $arr2 = array("img12.png","img10.png","img2.png","img1.png");
echo "Comparação de string padrão\n";
usort($arr1,"strcmp");
print_r($arr1);
echo "\nComparação usando ordem natural\n";
usort($arr2,"strnatcmp");
print_r($arr2);
?>

O código acima irá gerar a seguinte saída:

Comparação de string padrão
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Comparação usando ordem natural
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Para maiores informações veja: Martin Pool's Natural Order String Comparison

Similar a outras funções de comparação de string, esta retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.

Note que esta coparação diferencia maiúsculas e minúsculas.

Veja também ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strncasecmp(),
strnatcasecmp(), strstr(),
natsort() e natcasesort().

Anterior | Principal | Próxima
strnatcasecmp | Acima | strncasecmp


strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmp -- Comparação de string caso-sensitivo de Binário seguro dos primeiros n caracteres

Descrição

int strncasecmp ( string str1, string str2, int len)

Esta função é similar a strcasecmp(), com a diferença que você pode especificar o (o limite mais elevado de) número de caracteres (len) de cada string para ser usado na comparação. Se nenhuma das strings é mais curta do que len, então o comprimento dessa string será usado pela comparação.

Devolve < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se elas são iguaisl.

Veja também ereg(), strcasecmp(),
strcmp(), substr(),
stristr(), e strstr().

Anterior | Principal | Próxima
strnatcmp | Acima | strncmp


strncmp

(PHP 4 , PHP 5)

strncmp -- Comparação de string segura para binário para os primeiros n caracteres

Descrição

int strncmp ( string str1, string str2, int len)

Esta função é similar a strcmp(), com a diferença que você pode especificar o limite superior de caracteres (len) de cada string para ser usado na comparação. Se qualquer uma das strings é menor do que len, então o tamanho desta string será usado para comparação.

Retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.

Note que esta função diferencia maiúsculas e minúsculas.

Veja também ereg(),
strncasecmp(),
strcasecmp(), substr(),
stristr(), strcmp(), e
strstr().

Anterior | Principal | Próxima
strncasecmp | Acima | strpos


strpos

(PHP 3, PHP 4 , PHP 5)

strpos -- Encontra a posição da primeira ocorrência de uma string

Descrição

int strpos ( string haystack, string needle [, int offset])

Retorna a posição numérica da primeira ocorrência de needle dentro de haystack. Diferentemente de strrpos(), esta função pode ter uma string inteira como o parâmetro needle e toda a string será usada.

If needle não for encontrado, strpos() irá retornar boolean FALSE.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Exemplo 1. Exemplos strpos()

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note o uso de ===.  Simples == não funcionaria como esperado
// por causa da posição de 'a' é 0 (primeiro) caractere.
if ($pos === false) {
    echo "A string '$findme' não foi encontrada na string '$mystring'";
} else {
    echo "A string '$findme' foi encontrada na string '$mystring'";
    echo " e existe na posição $pos";
}

?>

Se o parâmetro needle não é uma string, é convertido para um inteiro e aplicado o valor do caractere.

O parâmetro opcional offset permite a você definir a partir de qual caractere em haystack iniciar a busca. A posição retorna ainda é relativa ao inicio de haystack.

Veja também strrpos(),
strrchr(), substr(),
stristr(), e strstr().

Anterior | Principal | Próxima
strncmp | Acima | strrchr


strrchr

(PHP 3, PHP 4 , PHP 5)

strrchr -- Encontra a ultima ocorrência de um caractere em uma string

Descrição

string strrchr ( string haystack, char needle)

Esta função retorna a parte de haystack que inicia na última ocorrência de needle e vai até o fim de haystack.

Retorna FALSE se needle não for encontrado.

Se needle conter mais de um caractere, apenas o primeiro é usado. Isto é diferente da função strchr().

Se needle não for uma string, é convertido para uma string e é aplicado o valor do caractere.

Exemplo 1. Exemplo strrchr()

<?php
// get last directory in $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// get everything after last newline
$text = "Line 1\nLine 2\nLine 3";
$last = substr(strrchr($text, 10), 1 );
?>

Veja também strchr(), substr(), stristr() e strstr().

Anterior | Principal | Próxima
strpos | Acima | strrev


strrev

(PHP 3, PHP 4 , PHP 5)

strrev -- Reverte uma string

Descrição

string strrev ( string string)

Retorna a string revertida.

Exemplo 1. Revertendo uma string strrev()

<?php
echo strrev("Hello world!"); // mostra "!dlrow olleH"
?>

Anterior | Principal | Próxima
strrchr | Acima | strripos


strripos

(PHP 5)

strripos -- Encontra a posição da última ocorrência de uma string case-insensitive em uma string

Descrição

int strripos ( string haystack, string needle)

Retorna a posição numérica da última ocorrência de needle na string haystack. Unlike strrpos(), strripos() é case-insensitive. Note também que as posições da string começa em 0, e não em 1.

Note que a needle pode ser uma string de um ou mais caracteres.

Se needle não é encontrada, ??? é retornado.

Atenção

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

Exemplo 1. Um simples exemplo de strripos()

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "Sinto muito, nós não encontramos ($needle) em ($haystack)";
} else {
    echo "Parabéns!\n";
    echo "Nós encontramos a última ($needle) em ($haystack) na posição ($pos)";
}

/* Saída:

   Parabéns!
   Nós encontramos a última (aB) em (ababcd) na posição (2)

*/
?>

Veja também strrpos(),
strrchr(),
substr(), stripos() e
stristr().

Anterior | Principal | Próxima
strrev | Acima | strrpos


strrpos

(PHP 3, PHP 4 , PHP 5)

strrpos -- Encontra a posição da última ocorrência de um caractere em uma string

Descrição

int strrpos ( string haystack, string needle)

Retorna a posição numérica da última ocorrência de needle na string haystack. Note que a needle neste caso pode apenas ser um simples caractere PHP 4. Se uma string é passada como a needle, então apenas o primeiro caractere dessa string será usado.

Se needle não é encontrado, retorna ???.

É fácil errar a interpretação dos valores de retorno para "character found at position 0" e "character not found". Aqui segue um exemplo de como detectar a diferença:

<?php

// no PHP 4.0b3 e posterior:
$pos = strrpos($mystring, "b");
if ($pos === false) { // note: três sinais iguais
    // não encontrado...
}

// em versões mais antigas do que 4.0b3:
$pos = strrpos($mystring, "b");
if (is_string($pos) && !$pos) {
    // não encontrado...
}
?>

Se needle não é uma string, ela é convertida para um inteiro e aplicada como o valor ordinal de um caractere.

A needle pode ser uma string de mais de um caractere no PHP 5, e números são convertidos para uma string ao invés de serem aplicados como valor ordinal de um caractere.

Veja também strpos(),
strripos(),
strrchr(),
substr(),
stristr(), e
strstr().

Anterior | Principal | Próxima
strripos | Acima | strspn


strspn

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

strspn -- Encontra o comprimento do segmento inicial combinando com a máscara

Descrição

int strspn ( string str1, string str2)

Retorna o comprimento do segmento inicial de str1 que consiste inteiramente de caracteres em str2.

A linha do código:

<?php
$var = strspn("42 is the answer, what is the question ...", "1234567890");
?>

atribuirá 2 para $var, porque a string "42" será o maior segmento contendo caracteres de "1234567890".

Veja também strcspn().

Anterior | Principal | Próxima
strrpos | Acima | strstr


strstr

(PHP 3, PHP 4 , PHP 5)

strstr -- Encontra a primeira ocorrencia de uma string

Descrição

string strstr ( string haystack, string needle)

Retorna parte da string haystack apartir da primeira ocorrencia de needle até o final de haystack.

Se needle não é encontrado, retorna FALSE.

Se needle não é uma string, é convertido para um inteiro e aplicado o valor do caractere.

Nota: Esta função diferencia maiúsculas e minúsculas. Para pesquisas que não diferenciem, use stristr().

Exemplo 1. Exemplo strstr()

<?php
$email = 'user@example.com';
$domain = strstr($email, '@');
print $domain; // mostra @example.com
?>

Nota: Se você somente quer determinar se needle ocorre em haystack, use ao invés a função mais rapida e com menor uso de memória strpos().

Veja também ereg(), preg_match(),
strchr(), stristr(),
strpos(), strrchr(), e
substr().

Anterior | Principal | Próxima
strspn | Acima | strtok


strtok

(PHP 3, PHP 4 , PHP 5)

strtok -- Tokeniza uma string

Descrição

string strtok ( string arg1, string arg2)

strtok() divide uma string (arg1) em strings menores (tokens), com cada token sendo delimitado por qualquer caractere de arg2. Quer dizer que, se você tem uma string como "Esta é uma string de exemplo" você poderia "tokenizá-la" em suas palavras individuais usando o caractere de espaço como delimitador do token.

Exemplo 1. strtok() exemplo

<?php
$string = "This is\tan example\nstring";
/* Use tab e newline como caractere delimitador, que funciona bem  */
$tok = strtok($string," \n\t");
while ($tok) {
    echo "Word=$tok<br>";
    $tok = strtok(" \n\t");
}
?>

Note que só a primeira chamada a strtok usa o argumento string. Cada chamada subseqüente a strtok só precisa do delimitador a ser usado, já que ele mantém o caminho de onde ele está na string atual. Para iniciar novamente, ou tokenizar uma nova string você simplesmente chama strtok com o argumento de string novamente para inicializá-la. Veja que você pode por múltiplos delimitadores como parâmetro. A string será tokenizada quando um dos caracteres no argumento são encontrados.

O comportamento quando uma parte vazia foi encontrada mudou com o PHP 4.1.0. O antigo comportamento retornava uma string vazia, enquanto a nova, a correta, simplesmente pula a parte da string:

Exemplo 2. Comportamento antigo de strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump ($first_token, $second_token);

/* Output:
    string(0) ""
    string(9) "something"
*/
?>

Exemplo 3. Comportamento Novo strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump ($first_token, $second_token);

/* Output:
    string(9) "something"
    bool(false)
*/
?>

Também tome cuidado para que seus tokens não sejam iguais a "0". Isto avalia como ??? em expressões condicionais.

Veja também split() e explode().

Anterior | Principal | Próxima
strstr | Acima | strtolower


strtolower

(PHP 3, PHP 4 , PHP 5)

strtolower -- Converte uma string para minúsculas

Descrição

string strtolower ( string str)

Retorna string com todos os caracteres do alfabeto convertidos para minúsculas.

Note que os caracteres do alfabeto é determinado pelo local atual. Isto indica que no local padrão "C", caracteres como A com trema (ä) não serão convertidos.

Exemplo 1. Exemplo strtolower()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
print $str; # Mostra mary had a little lamb and she loved it so
?>

Veja também strtoupper(),
ucfirst(),
e ucwords().

Anterior | Principal | Próxima
strtok | Acima | strtoupper


strtoupper

(PHP 3, PHP 4 , PHP 5)

strtoupper -- Converte uma string para maiúsculas

Descrição

string strtoupper ( string string)

Retorna string com todos os caracteres do alfabeto convertidos para maiúsculas.

Note que os caracteres do alfabeto é determinado pelo local atual. Isto indica que no local padrão "C", caracteres como A com trema (ä) não serão convertidos.

Exemplo 1. Exemplo strtoupper()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
print $str; # Mostra MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Veja também strtolower(),
ucfirst(),
e ucwords().

Anterior | Principal | Próxima
strtolower | Acima | strtr


strtr

(PHP 3, PHP 4 , PHP 5)

strtr -- Traduz certos caracteres

Descrição

string strtr ( string str, string from, string to)

string strtr ( string str, array replace_pairs)

Esta função retorna uma cópia de str, traduzindo todas as ocorrências de cada caractere em from para o caractere correspondente em to e retorna o resultado.

Se from e to são de comprimentos diferentes, os caracteres extras no mais longo dos dois são ignorados.

Exemplo 1. strtr() exemplo

<?php
$addr = strtr($addr, "äåö", "aao");
?>

strtr() pode ser chamada com apenas dois argumentas. Se chamada com dois argumentos ele se comporta de uma maneira nova: from então tem que ser um array que contém string -> pares de string que serão substituídas na string original. strtr() sempre procurará pela primeira maior compatibilidade possível e *não* tentará substituir nada que ela já tenha trabalhado.

Exemplo 2. strtr() exemplo com dois argumentos

<?php
$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

Isto mostrará:

hello all, I said hi

Nota: Este parâmetro opcional to e from foram adicionados no PHP 4.0.0

Veja também ereg_replace().

Anterior | Principal | Próxima
strtoupper | Acima | substr_compare


substr_compare

(PHP 5)

substr_compare -- A comparação binária entre duas strings case-insensitive de um offset é guardada opcionalmente, até o limite do comprimento de caracteres

Descrição

int substr_compare ( string main_str, string str, int offset [, int length [, bool case_sensitivity]])

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
strtr | Acima | substr_count


substr_count

(PHP 4 , PHP 5)

substr_count -- Conta o número de ocorrências de uma substring

Descrição

int substr_count ( string haystack, string needle)

substr_count() retorna o número de vezes que a substring needle ocorre na string haystack.

Exemplo 1. Exemplo substr_count()

<?php
print substr_count("This is a test", "is"); // mostra 2
?>

Veja também count_chars(),
strpos(), substr(),
e strstr().

Anterior | Principal | Próxima
substr_compare | Acima | substr_replace


substr_replace

(PHP 4 , PHP 5)

substr_replace -- Substitui o texto dentro de uma parte de uma string

Descrição

string substr_replace ( string string, string replacement, int start [, int length])

substr_replace() substitui uma cópia de string delimitada pelos parâmetros start e (opcionalmente) length com a string dada em replacement. O resultado é retornado.

Se start é positivo, a substituição começará no start-ésimo caractere da string.

Se start é negativo, a substituição começará no start-ésimo caractere do final de string.

Se o length é dado e é positivo, ele representa o comprimento da porção de string que é para ser substituída. Se ele é negativo, ele representa o número de caracteres do final de string para parar de substituir. Se ele não é dado, então o padrão será até strlen( string ); i.e. o fim da substituição no final de string.

Exemplo 1. substr_replace() exemplo

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr>\n";

/* Estes dois exemplos substituem tudo de $var com 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br>\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br>\n";

/* Insere 'bob' direto no começo de $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br>\n";

/* Estes dois exemplos substituem 'MNRPQR' em $var com 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br>\n";
echo substr_replace($var, 'bob', -7, -1) . "<br>\n";

/* Deleta 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . "<br>\n";
?>

Veja tambémstr_replace() e substr().

Anterior | Principal | Próxima
substr_count | Acima | substr


substr

(PHP 3, PHP 4 , PHP 5)

substr -- Retorna uma parte de uma string

Descrição

string substr ( string string, int start [, int length])

substr()retorna a parte de string especificada pelo parâmetro start e length.

Se start não for negativo, a string retornada iniciará na posição start em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim em diante.

Exemplo 1. Uso basico de substr()

<?php
$rest = substr("abcdef", 1);    // retorna "bcdef"
$rest = substr("abcdef", 1, 3); // retorna "bcd"
$rest = substr("abcdef", 0, 4); // retorna "abcd"
$rest = substr("abcdef", 0, 8); // retorna "abcdef"

// Outra opção é acessar atravéz de chaves
$string = 'abcdef';
echo $string{0};                // retorna a
echo $string{3};                // retorna d
?>

Se start for negativo, a string retornada irá começar no caractere start a partir do fim de string.

Exemplo 2. Usando um inicio negativo

<?php
$rest = substr("abcdef", -1);    // retorna "f"
$rest = substr("abcdef", -2);    // retorna "ef"
$rest = substr("abcdef", -3, 1); // retorna "d"
?>

Se length for dado e for positivo, a string retornada irá conter length caracteres começando em start (dependendo do tamanho de string). Se a string é menor do que start, será retornado FALSE.

Se length for dado e for negativo, então esta quantidade caracteres serão omitidos do final de string (após a posicão de inicio ter sido calculada quando start for negativo). Se start denota uma posição além da truncagem, uma string vazia será retornada.

Exemplo 3. Usando um length negativo

<?php
$rest = substr("abcdef", 0, -1);  // retorna "abcde"
$rest = substr("abcdef", 2, -1);  // retorna "cde"
$rest = substr("abcdef", 4, -4);  // retorna ""
$rest = substr("abcdef", -3, -1); // retorna "de"
?>

Veja também strrchr(),
substr_replace(),
ereg() e
trim().

Anterior | Principal | Próxima
substr_replace | Acima | trim


trim

(PHP 3, PHP 4 , PHP 5)

trim -- Retira espaço no ínicio e final de uma string

Descrição

string trim ( string str [, string charlist])

Nota: O parâmetro opcional charlist foi adicionado no PHP 4.1.0

Esta função retorna uma string com os espaçoes retirados do ínicio e do final de str. Sem o segundo parâmetro, trim() irá retirar estes caracteres

  • " " (ASCII 32 (0x20)), um espaço normal.

  • "\t" (ASCII 9 (0x09)), uma tabulação.

  • "\n" (ASCII 10 (0x0A)), uma linha nova (line feed).

  • "\r" (ASCII 13 (0x0D)), um retono de carro.

  • "\0" (ASCII 0 (0x00)), o byte NULL.

  • "\x0B" (ASCII 11 (0x0B)), uma tabulação vertical.

Você também pode especificar quais caracteres você quer retirar, através do parâmetro charlist. Simplesmente liste todos os caracteres que você quer retirar. Com .. você pode especificar um intervalo de caracteres.

Exemplo 1. Exemplo de uso de trim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$trimmed = trim($text);
// $trimmed = "These are a few words :) ..."
$trimmed = trim($text," \t.");
// $trimmed = "These are a few words :)"
$clean = trim($binary,"\0x00..\0x1F");
// trim the ASCII control characters at the beginning and end of $binary
// (from 0 to 31 inclusive)

?>

Veja também ltrim() e rtrim().

Anterior | Principal | Próxima
substr | Acima | ucfirst


ucfirst

(PHP 3, PHP 4 , PHP 5)

ucfirst -- Converte para maiúscula o primeiro caractere de uma string

Descrição

string ucfirst ( string str)

Retorna uma string com o primeiro caractere de str em maiúsculas, se o caractere for do alfabetico.

Note que 'alfabetico' é determinado pelo local atual. Por exemplo, no local padrão "C" caracteres como ä não serão convertidos.

Exemplo 1. Exemplo ucfirst()

<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

Veja também strtolower(), strtoupper(), e ucwords().

Anterior | Principal | Próxima
trim | Acima | ucwords


ucwords

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ucwords -- Converte para maiúsculas o primeiro caractere de cada palavra

Descrição

string ucwords ( string str)

Retorna uma string com o primeiro caractere de cada palavra em str em maiúscula, se este caractere fazer parte do alfabeto.

A definição de palavra e qualquer string que esta após um espaço (Estes são: espaço em branco, form-feed, newline, carriage return, tab horizontal, e tab vertical).

Exemplo 1. Exemplo ucwords()

<?php
$foo = 'hello world!';
$foo = ucwords($foo);             // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar);             // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

Veja também strtoupper(), strtolower() e ucfirst().

Anterior | Principal | Próxima
ucfirst | Acima | vprintf


vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintf -- Mostra uma string formatada

Descrição

void vprintf ( string formato, array args)

Mostra uma string formatada de acordo com o formato (o qual é descrito na documentação para a função sprintf()).

Funciona como printf() mas aceita uma matriz de argumentos, ao invés de um número variavel de argumentos.

Veja também printf(), sprintf() e vsprintf().

Anterior | Principal | Próxima
ucwords | Acima | vsprintf


vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintf -- Retorna uma string formatada

Descrição

string vsprintf ( string formato, array args)

Retorna uma string formatada de acordo com o formato (o qual é descrito na documentação para a função sprintf()).

Funciona como sprintf() mas aceita uma matriz de argumentos, ao invés de um número variável de argumentos.

Veja também sprintf() e vprintf().

Anterior | Principal | Próxima
vprintf | Acima | wordwrap


wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrap -- Quebra uma string em linhas usando um caractere de quebra de linha.

Descrição

string wordwrap ( string str [, int width [, string break [, boolean cut]]])

Retorna uma string com o parâmetro str com quebras de linha na coluna especificada pelo parâmetro(opcional) width. A linha é quebrada usando o parâmetro(opcional) break.

wordwrap() irá automaticamente quebrar na coluna 75 e quebrar usando '\n' (newline) se os parâmetros width ou break não forem dados.

Se cut for estabelecido como 1, a string é sempre quebrada na largura especificada. Então se você tem uma palavra que é mais larga do que a largura indicada, ela é quebrada. (Veja o segundo exemplo).

Nota: O parâmetro(opcional) cut foi adicionado no PHP 4.0.3

Exemplo 1. Exemplo wordwrap()

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />");
echo "$newtext\n";
?>

Este exemplo irá mostrar:

The quick brown fox
jumped over the
lazy dog.

Exemplo 2. Exemplo wordwrap()

<?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap( $text, 8, "\n", 1);
echo "$newtext\n";
?>

Este exemplo irá mostrar:

A very

long

wooooooo

ooooord.

Veja também nl2br().

Anterior | Principal | Próxima
vsprintf | Acima | Sybase


Sybase

Manual do PHP
Anterior Próxima

CVII. Sybase

Introdução

Requisitos

Instalação

To enable Sybase-DB support configure PHP --with-sybase[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase. To enable Sybase-CT support configure PHP --with-sybase-ct[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Sybase configuration options

Name | Default | Changeable
sybase.allow_persistent | "On" | PHP_INI_SYSTEM
sybase.max_persistent | "-1" | PHP_INI_SYSTEM
sybase.max_links | "-1" | PHP_INI_SYSTEM
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM
sybase.min_error_severity | "10" | PHP_INI_ALL
sybase.min_message_severity | "10" | PHP_INI_ALL
sybase.compatability_mode | "Off" | PHP_INI_SYSTEM
magic_quotes_sybase | "Off" | PHP_INI_ALL

Breve descrição das diretivas de configuração.

sybase.allow_persistent boolean

Whether to allow persistent Sybase connections.

sybase.max_persistent integer

The maximum number of persistent Sybase connections per process. -1 means no limit.

sybase.max_links integer

The maximum number of Sybase connections per process, including persistent connections. -1 means no limit.

sybase.min_error_severity integer

Minimum error severity to display.

sybase.min_message_severity integer

Minimum message severity to display.

sybase.compatability_mode boolean

Compatability mode with old versions of PHP 3.0. If on, this will cause PHP to automatically assign types to results according to their Sybase type, instead of treating them all as strings. This compatability mode will probably not stay around forever, so try applying whatever necessary changes to your code, and turn it off.

magic_quotes_sybase boolean

If magic_quotes_sybase is on, a single-quote is escaped with a single-quote instead of a backslash if magic_quotes_gpc or magic_quotes_runtime are enabled.

Nota: Note that when magic_quotes_sybase is ON it completely overrides magic_quotes_gpc . In this case even when magic_quotes_gpc is enabled neither double quotes, backslashes or NUL's will be escaped.

Tabela 2. Sybase-CT configuration options

Name | Default | Changeable
sybct.allow_persistent | "On" | PHP_INI_SYSTEM
sybct.max_persistent | "-1" | PHP_INI_SYSTEM
sybct.max_links | "-1" | PHP_INI_SYSTEM
sybct.min_server_severity | "10" | PHP_INI_ALL
sybct.min_client_severity | "10" | PHP_INI_ALL
sybct.hostname | NULL | PHP_INI_ALL
sybct.deadlock_retry_count | "-1" | PHP_INI_ALL

Breve descrição das diretivas de configuração.

sybct.allow_persistent boolean

Whether to allow persistent Sybase-CT connections. The default is on.

sybct.max_persistent integer

The maximum number of persistent Sybase-CT connections per process. The default is -1 meaning unlimited.

sybct.max_links integer

The maximum number of Sybase-CT connections per process, including persistent connections. The default is -1 meaning unlimited.

sybct.min_server_severity integer

Server messages with severity greater than or equal to sybct.min_server_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_server_severity(). The default is 10 which reports errors of information severity or greater.

sybct.min_client_severity integer

Client library messages with severity greater than or equal to sybct.min_client_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_client_severity(). The default is 10 which effectively disables reporting.

sybct.hostname string

The name of the host you claim to be connecting from, for display by sp_who. The default is none.

sybct.deadlock_retry_count int

Allows you to to define how often deadlocks are to be retried. The default is -1, or "forever".

For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
sybase_affected_rows -- Informa o número de linhas afetadas pela última consulta
sybase_close -- fecha uma conexão Sybase
sybase_connect -- Abre uma conexão Sybase
sybase_data_seek -- Moves internal row pointer
sybase_deadlock_retry_count -- Sets the deadlock retry count
sybase_fetch_array -- Fetch row as array
sybase_fetch_assoc -- Fetch a result row as an associative array
sybase_fetch_field -- Get field information from a result
sybase_fetch_object -- Fetch a row as an object
sybase_fetch_row -- Get a result row as an enumerated array
sybase_field_seek -- Sets field offset
sybase_free_result -- Frees result memory
sybase_get_last_message -- Returns the last message from the server
sybase_min_client_severity -- Sets minimum client severity
sybase_min_error_severity -- Sets minimum error severity
sybase_min_message_severity -- Sets minimum message severity
sybase_min_server_severity -- Sets minimum server severity
sybase_num_fields -- Gets the number of fields in a result set
sybase_num_rows -- Get number of rows in a result set
sybase_pconnect -- Open persistent Sybase connection
sybase_query -- Sends a Sybase query
sybase_result -- Get result data
sybase_select_db -- Selects a Sybase database
sybase_set_message_handler -- Sets the handler called when a server message is raised
sybase_unbuffered_query -- Send a Sybase query and do not block

Anterior | Principal | Próxima
wordwrap | Acima | sybase_affected_rows


sybase_affected_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sybase_affected_rows -- Informa o número de linhas afetadas pela última consulta

Descrição

int sybase_affected_rows ( [resource link_identifier])

sybase_affected_rows() retorna o número de linhas afetadas pelo último INSERT, UPDATE ou DELETE no servidor associado com o identificador de recurso especificado. Se o identificador de recurso não for especificado a última conexão aberta é utilizada.

Exemplo 1. Delete-Query

<?php
    /* connect to database */
    sybase_connect('SYBASE', '', '') or
        die("Could not connect");
    sybase_select_db("db");

    sybase_query("DELETE FROM sometable WHERE id < 10");
    printf ("Records deleted: %d\n", sybase_affected_rows());
?>

O exemplo acima deve produzir a seguinte saída:

Records deleted: 10

Este comando não tem efeito em consultas SELECT; apenas em consultas que modificam registros. Para recuperar o número de linhas retornadas por um SELECT, utilize sybase_num_rows().

Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.

Veja também sybase_num_rows().

Anterior | Principal | Próxima
Sybase | Acima | sybase_close


sybase_close

(PHP 3, PHP 4 , PHP 5)

sybase_close -- fecha uma conexão Sybase

Descrição

bool sybase_close ( [resource link_identifier])

sybase_close() fecha a conexão com um banco de dados Sybase, o qual está associado ao identificador de recurso (link_identifier) especificado. Se o identificador de recurso não for especificado, a última conexão aberta é utilizada.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Note que isto não é normalmente necessário, já que as conexões não-persistentes abertas não automaticamente são fechadas ao final da execução do script.

sybase_close() não fechará conexões persistentes geradas pelo sybase_pconnect().

Veja também: sybase_connect() e sybase_pconnect().

Anterior | Principal | Próxima
sybase_affected_rows | Acima | sybase_connect


sybase_connect

(PHP 3, PHP 4 , PHP 5)

sybase_connect -- Abre uma conexão Sybase

Descrição

resource sybase_connect ( [string servername [, string username [, string password [, string charset [, string appname]]]]])

Retorna: um identificador de recurso Sybase positivo em caso de sucesso ou um FALSE em caso de falha.

sybase_connect() estabelece uma conexão com um servidor Sybase. O argumento servername tem que ser um nome de servidor que é definido no arquivo 'interfaces'.

Se uma segunda chamada é feita ao sybase_connect() com os mesmos argumentos nenhum novo recurso será estabelecido. Ao invés disto, o identificador de recurso do recurso já aberto será retornado.

O recurso com o servidor será fechado tão logo a execução do script termine, a não ser que ele seja fechado anteriormente ao se chamar explicitamente o sybase_close().

Exemplo 1. Exemplo sybase_connect()

<?php
    $link = sybase_connect('SYBASE', '', '')
            or die("Could not connect !");
    print ("Connected successfully");
    sybase_close($link);
?>

Veja também sybase_pconnect() e sybase_close().

Anterior | Principal | Próxima
sybase_close | Acima | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4 , PHP 5)

sybase_data_seek -- Moves internal row pointer

Description

bool sybase_data_seek ( resource result_identifier, int row_number)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specified row number. The next call to sybase_fetch_row() would return that row.

See also sybase_fetch_row().

Anterior | Principal | Próxima
sybase_connect | Acima | sybase_deadlock_retry_count


sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count -- Sets the deadlock retry count

Description

void sybase_deadlock_retry_count ( int retry_count)

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

Tabela 1. Values for retry_count

-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.

Anterior | Principal | Próxima
sybase_data_seek | Acima | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_array -- Fetch row as array

Description

array sybase_fetch_array ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_array() is an extended version of sybase_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using sybase_fetch_array() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Nota: When selecting fields with identical names (for instance, in a join), the associative indices will have a sequential number prepended. See the example for details.

Exemplo 1. Identical fieldnames

<?php
    $dbh = sybase_connect('SYBASE', '', '');
    $q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
    var_dump(sybase_fetch_array($q));
    sybase_close($dbh);
?>

The above example would produce the following output (assuming the two tables only have each one column called "person_id"):

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

See also
sybase_fetch_row(),
sybase_fetch_assoc() and
sybase_fetch_object().

Anterior | Principal | Próxima
sybase_deadlock_retry_count | Acima | sybase_fetch_assoc


sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc -- Fetch a result row as an associative array

Description

array sybase_fetch_assoc ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

See also
sybase_fetch_array(),
sybase_fetch_object() and
sybase_fetch_row().

Anterior | Principal | Próxima
sybase_fetch_array | Acima | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_field -- Get field information from a result

Description

object sybase_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

  • column_source - the table from which the column was taken

  • max_length - maximum length of the column

  • numeric - 1 if the column is numeric

  • type - datatype of the column

See also sybase_field_seek().

Anterior | Principal | Próxima
sybase_fetch_assoc | Acima | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_object -- Fetch a row as an object

Description

object sybase_fetch_object ( resource result [, mixed object])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Use the second object to specify the type of object you want to return. If this parameter is omitted, the object will be of type stdClass.

Nota: As of PHP 4.3.0, this function will no longer return numeric object members.

Old behaviour:
object(stdclass)(3) {
  [0]=>
  string(3) "foo"
  ["foo"]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
}
New behaviour:
object(stdclass)(3) {
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}

Exemplo 1. sybase_fetch_object() return as Foo

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

See also sybase_fetch_array() and sybase_fetch_row().

Anterior | Principal | Próxima
sybase_fetch_field | Acima | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_row -- Get a result row as an enumerated array

Description

array sybase_fetch_row ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Tabela 1. Data types

PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (w/o precision), DECIMAL (w/o precision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (w/ precision), DECIMAL (w/ precision), REAL, FLOAT, MONEY
NULL | NULL

See also
sybase_fetch_array(),
sybase_fetch_assoc(),
sybase_fetch_object(),
sybase_data_seek() and
sybase_result().

Anterior | Principal | Próxima
sybase_fetch_object | Acima | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4 , PHP 5)

sybase_field_seek -- Sets field offset

Description

bool sybase_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to sybase_fetch_field() won't include a field offset, this field would be returned.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also sybase_fetch_field().

Anterior | Principal | Próxima
sybase_fetch_row | Acima | sybase_free_result


sybase_free_result

(PHP 3, PHP 4 , PHP 5)

sybase_free_result -- Frees result memory

Description

bool sybase_free_result ( resource result)

sybase_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call sybase_free_result() with the result identifier as an argument and the associated result memory will be freed.

Anterior | Principal | Próxima
sybase_field_seek | Acima | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4 , PHP 5)

sybase_get_last_message -- Returns the last message from the server

Description

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

See also sybase_min_message_severity().

Anterior | Principal | Próxima
sybase_free_result | Acima | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_client_severity -- Sets minimum client severity

Description

void sybase_min_client_severity ( int severity)

sybase_min_client_severity() sets the minimum client severity level.

Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.

See also sybase_min_server_severity().

Anterior | Principal | Próxima
sybase_get_last_message | Acima | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_error_severity -- Sets minimum error severity

Description

void sybase_min_error_severity ( int severity)

sybase_min_error_severity() sets the minimum error severity level.

See also sybase_min_message_severity().

Anterior | Principal | Próxima
sybase_min_client_severity | Acima | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_message_severity -- Sets minimum message severity

Description

void sybase_min_message_severity ( int severity)

sybase_min_message_severity() sets the minimum message severity level.

See also sybase_min_error_severity().

Anterior | Principal | Próxima
sybase_min_error_severity | Acima | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_server_severity -- Sets minimum server severity

Description

void sybase_min_server_severity ( int severity)

sybase_min_server_severity() sets the minimum server severity level.

Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.

See also sybase_min_client_severity().

Anterior | Principal | Próxima
sybase_min_message_severity | Acima | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4 , PHP 5)

sybase_num_fields -- Gets the number of fields in a result set

Description

int sybase_num_fields ( resource result)

sybase_num_fields() returns the number of fields in a result set.

See also
sybase_query(),
sybase_fetch_field() and
sybase_num_rows().

Anterior | Principal | Próxima
sybase_min_server_severity | Acima | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4 , PHP 5)

sybase_num_rows -- Get number of rows in a result set

Description

int sybase_num_rows ( resource result)

sybase_num_rows() returns the number of rows in a result set.

See also
sybase_num_fields(),
sybase_query() and
sybase_fetch_row().

Anterior | Principal | Próxima
sybase_num_fields | Acima | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4 , PHP 5)

sybase_pconnect -- Open persistent Sybase connection

Description

resource sybase_pconnect ( [string servername [, string username [, string password [, string charset [, string appname]]]]])

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

sybase_pconnect() acts very much like sybase_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (sybase_close() will not close links established by sybase_pconnect()()).

This type of links is therefore called 'persistent'.

See also sybase_connect().

Anterior | Principal | Próxima
sybase_num_rows | Acima | sybase_query


sybase_query

(PHP 3, PHP 4 , PHP 5)

sybase_query -- Sends a Sybase query

Description

resource sybase_query ( string query, resource link_identifier)

Returns a positive Sybase result identifier on success, or FALSE on error.

sybase_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

See also sybase_select_db() and sybase_connect().

Anterior | Principal | Próxima
sybase_pconnect | Acima | sybase_result


sybase_result

(PHP 3, PHP 4 , PHP 5)

sybase_result -- Get result data

Description

string sybase_result ( resource result, int row, mixed field)

Returns the contents of the cell at the row and offset in the specified Sybase result set.

sybase_result() returns the contents of one cell from a Sybase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than sybase_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
sybase_fetch_row(),
sybase_fetch_array() and
sybase_fetch_object().

Anterior | Principal | Próxima
sybase_query | Acima | sybase_select_db


sybase_select_db

(PHP 3, PHP 4 , PHP 5)

sybase_select_db -- Selects a Sybase database

Description

bool sybase_select_db ( string database_name [, resource link_identifier])

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if sybase_connect() was called, and use it.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Every subsequent call to sybase_query() will be made on the active database.

See also
sybase_connect(),
sybase_pconnect() and
sybase_query()

Anterior | Principal | Próxima
sybase_result | Acima | sybase_set_message_handler


sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler -- Sets the handler called when a server message is raised

Description

bool sybase_set_message_handler ( callback handler [, resource connection])

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: The connection parameter was added in PHP 4.3.5.

Exemplo 1. sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Exemplo 2. sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text)
        {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Exemplo 3. sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        if (257 == $msgnumber) {
            return false;
        }
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Anterior | Principal | Próxima
sybase_select_db | Acima | sybase_unbuffered_query


sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query -- Send a Sybase query and do not block

Description

resource sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result])

Returns a positive Sybase result identifier on success, or FALSE on error.

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Nota: If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

The optional store_result can be FALSE to indicate the resultsets shouldn't be fetched into memory, thus minimizing memory usage which is particularly interesting with very large resultsets.

Exemplo 1. sybase_unbuffered_query() example

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Anterior | Principal | Próxima
sybase_set_message_handler | Acima | TCP Wrappers Functions


TCP Wrappers Functions

Manual do PHP
Anterior Próxima

CVIII. TCP Wrappers Functions

Introdução

The TCP wrappers provides a classical unix mechanism which has been designed to check if the remote client is able to connect from the given IP address.

Instalação

Tcpwrap is currently available through PECL http://pecl.php.net/package/tcpwrap.

If PEAR is available on your *nix-like system you can use the pear installer to install the tcpwrap extension, by the following command: pear -v install tcpwrap.

You can always download the tar.gz package and install tcpwrap by hand:

Exemplo 1. tcpwrap install by hand

gunzip tcpwrap-xxx.tgz
tar -xvf tcpwrap-xxx.tar
cd tcpwrap-xxx
phpize
./configure && make && make install

Índice
tcpwrap_check -- tcpwrap check

Anterior | Principal | Próxima
sybase_unbuffered_query | Acima | tcpwrap_check


tcpwrap_check

(no version information, might be only in CVS)

tcpwrap_check -- tcpwrap check

Description

bool tcpwrap_check ( string daemon, string address [, string user [, bool nodns]])

This function consults /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for client with remote address address (and optional username user). address can be either IP address or domain name. user can be NULL.

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to TRUE to avoid this.

For more details please consult hosts_access(3) man page.

This function returns TRUE if access should be granted, FALSE otherwise.

Anterior | Principal | Próxima
TCP Wrappers Functions | Acima | Tidy Functions


Tidy Functions

Manual do PHP
Anterior Próxima

CIX. Tidy Functions

Introdução

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipluate HTML documents, but also traverse the document tree.

Requisitos

To use Tidy, you will need libtidy installed, available on the tidy homepage http://tidy.sourceforge.net/.

Instalação

Tidy is currently available for PHP 4.3.x and PHP 5 as a PECL extension from http://pecl.php.net/package/tidy.

Nota: Tidy 1.0 is just for PHP 4.3.x, while Tidy 2.0 is just for PHP 5.

If PEAR is available on your *nix-like system you can use the pear installer to install the tidy extension, by the following command: pear -v install tidy.

You can always download the tar.gz package and install tidy by hand:

Exemplo 1. tidy install by hand in PHP 4.3.x

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windows users can download the extension dll php_tidy.dll from http://snaps.php.net/win32/PECL_STABLE/.

In PHP 5 you need only to compile using the --with-tidy option.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Tidy Configuration Options

Name | Default | Changeable | Function
tidy.default_config | "" | PHP_INI_SYSTEM | default path for tidy config file
tidy.clean_output | 0 | PHP_INI_PERDIR | turns on/off the output repairing by Tidy
For further details and definition of the PHP_INI_* constants see ini_set().

Atenção

Do not turn on tidy.clean_output if you are generating non-html content such as dynamic images.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

The following constants are defined:

Tabela 2. tidy tag constants

constant | description
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDO |
TIDY_TAG_BGSOUND |
TIDY_TAG_BIG |
TIDY_TAG_BLINK |
TIDY_TAG_BLOCKQUOTE |
TIDY_TAG_BODY |
TIDY_TAG_BR |
TIDY_TAG_BUTTON |
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMENT |
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DFN |
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FONT |
TIDY_TAG_FORM |
TIDY_TAG_FRAME |
TIDY_TAG_FRAMESET |
TIDY_TAG_H1 |
TIDY_TAG_H2 |
TIDY_TAG_H3 |
TIDY_TAG_H4 |
TIDY_TAG_H5 |
TIDY_TAG_6 |
TIDY_TAG_HEAD |
TIDY_TAG_HR |
TIDY_TAG_HTML |
TIDY_TAG_I |
TIDY_TAG_IFRAME |
TIDY_TAG_ILAYER |
TIDY_TAG_IMG |
TIDY_TAG_INPUT |
TIDY_TAG_INS |
TIDY_TAG_ISINDEX |
TIDY_TAG_KBD |
TIDY_TAG_KEYGEN |
TIDY_TAG_LABEL |
TIDY_TAG_LAYER |
TIDY_TAG_LEGEND |
TIDY_TAG_LI |
TIDY_TAG_LINK |
TIDY_TAG_LISTING |
TIDY_TAG_MAP |
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_META |
TIDY_TAG_MULTICOL |
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAFE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_Q |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TR |
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_WBR |
TIDY_TAG_XMP |

Tabela 3. tidy attribute constants

constant | description
TIDY_ATTR_UNKNOWN |
TIDY_ATTR_ABBR |
TIDY_ATTR_ACCEPT |
TIDY_ATTR_ACCEPT_CHARSET |
TIDY_ATTR_ACCESSKEY |
TIDY_ATTR_ACTION |
TIDY_ATTR_ADD_DATE |
TIDY_ATTR_ALIGN |
TIDY_ATTR_ALINK |
TIDY_ATTR_ALT |
TIDY_ATTR_ARCHIVE |
TIDY_ATTR_AXIS |
TIDY_ATTR_BACKGROUND |
TIDY_ATTR_BGCOLOR |
TIDY_ATTR_BGPROPERTIES |
TIDY_ATTR_BORDER |
TIDY_ATTR_BORDERCOLOR |
TIDY_ATTR_BOTTOMMARGIN |
TIDY_ATTR_CELLPADDING |
TIDY_ATTR_CELLSPACING |
TIDY_ATTR_CHAR |
TIDY_ATTR_CHAROFF |
TIDY_ATTR_CHARSET |
TIDY_ATTR_CHECKED |
TIDY_ATTR_CITE |
TIDY_ATTR_CLASS |
TIDY_ATTR_CLASSID |
TIDY_ATTR_CLEAR |
TIDY_ATTR_CODE |
TIDY_ATTR_CODEBASE |
TIDY_ATTR_CODETYPE |
TIDY_ATTR_COLOR |
TIDY_ATTR_COLS |
TIDY_ATTR_COLSPAN |
TIDY_ATTR_COMPACT |
TIDY_ATTR_CONTENT |
TIDY_ATTR_COORDS |
TIDY_ATTR_DATA |
TIDY_ATTR_DATAFLD |
TIDY_ATTR_DATAPAGESIZE |
TIDY_ATTR_DATASRC |
TIDY_ATTR_DATETIME |
TIDY_ATTR_DECLARE |
TIDY_ATTR_DEFER |
TIDY_ATTR_DIR |
TIDY_ATTR_DISABLED |
TIDY_ATTR_ENCODING |
TIDY_ATTR_ENCTYPE |
TIDY_ATTR_FACE |
TIDY_ATTR_FOR |
TIDY_ATTR_FRAME |
TIDY_ATTR_FRAMEBORDER |
TIDY_ATTR_FRAMESPACING |
TIDY_ATTR_GRIDX |
TIDY_ATTR_GRIDY |
TIDY_ATTR_HEADERS |
TIDY_ATTR_HEIGHT |
TIDY_ATTR_HREF |
TIDY_ATTR_HREFLANG |
TIDY_ATTR_HSPACE |
TIDY_ATTR_HTTP_EQUIV |
TIDY_ATTR_ID |
TIDY_ATTR_ISMAP |
TIDY_ATTR_LABEL |
TIDY_ATTR_LANG |
TIDY_ATTR_LANGUAGE |
TIDY_ATTR_LAST_MODIFIED |
TIDY_ATTR_LAST_VISIT |
TIDY_ATTR_LEFTMARGIN |
TIDY_ATTR_LINK |
TIDY_ATTR_LONGDESC |
TIDY_ATTR_LOWSRC |
TIDY_ATTR_MARGINHEIGHT |
TIDY_ATTR_MARGINWIDTH |
TIDY_ATTR_MAXLENGTH |
TIDY_ATTR_MEDIA |
TIDY_ATTR_METHOD |
TIDY_ATTR_MULTIPLE |
TIDY_ATTR_NAME |
TIDY_ATTR_NOHREF |
TIDY_ATTR_NORESIZE |
TIDY_ATTR_NOSHADE |
TIDY_ATTR_NOWRAP |
TIDY_ATTR_OBJECT |
TIDY_ATTR_OnAFTERUPDATE |
TIDY_ATTR_OnBEFOREUNLOAD |
TIDY_ATTR_OnBEFOREUPDATE |
TIDY_ATTR_OnBLUR |
TIDY_ATTR_OnCHANGE |
TIDY_ATTR_OnCLICK |
TIDY_ATTR_OnDATAAVAILABLE |
TIDY_ATTR_OnDATASETCHANGED |
TIDY_ATTR_OnDATASETCOMPLETE |
TIDY_ATTR_OnDBLCLICK |
TIDY_ATTR_OnERRORUPDATE |
TIDY_ATTR_OnFOCUS |
TIDY_ATTR_OnKEYDOWN |
TIDY_ATTR_OnKEYPRESS |
TIDY_ATTR_OnKEYUP |
TIDY_ATTR_OnLOAD |
TIDY_ATTR_OnMOUSEDOWN |
TIDY_ATTR_OnMOUSEMOVE |
TIDY_ATTR_OnMOUSEOUT |
TIDY_ATTR_OnMOUSEOVER |
TIDY_ATTR_OnMOUSEUP |
TIDY_ATTR_OnRESET |
TIDY_ATTR_OnROWENTER |
TIDY_ATTR_OnROWEXIT |
TIDY_ATTR_OnSELECT |
TIDY_ATTR_OnSUBMIT |
TIDY_ATTR_OnUNLOAD |
TIDY_ATTR_PROFILE |
TIDY_ATTR_PROMPT |
TIDY_ATTR_RBSPAN |
TIDY_ATTR_READONLY |
TIDY_ATTR_REL |
TIDY_ATTR_REV |
TIDY_ATTR_RIGHTMARGIN |
TIDY_ATTR_ROWS |
TIDY_ATTR_ROWSPAN |
TIDY_ATTR_RULES |
TIDY_ATTR_SCHEME |
TIDY_ATTR_SCOPE |
TIDY_ATTR_SCROLLING |
TIDY_ATTR_SELECTED |
TIDY_ATTR_SHAPE |
TIDY_ATTR_SHOWGRID |
TIDY_ATTR_SHOWGRIDX |
TIDY_ATTR_SHOWGRIDY |
TIDY_ATTR_SIZE |
TIDY_ATTR_SPAN |
TIDY_ATTR_SRC |
TIDY_ATTR_STANDBY |
TIDY_ATTR_START |
TIDY_ATTR_STYLE |
TIDY_ATTR_SUMMARY |
TIDY_ATTR_TABINDEX |
TIDY_ATTR_TARGET |
TIDY_ATTR_TEXT |
TIDY_ATTR_TITLE |
TIDY_ATTR_TOPMARGIN |
TIDY_ATTR_TYPE |
TIDY_ATTR_USEMAP |
TIDY_ATTR_VALIGN |
TIDY_ATTR_VALUE |
TIDY_ATTR_VALUETYPE |
TIDY_ATTR_VERSION |
TIDY_ATTR_VLINK |
TIDY_ATTR_VSPACE |
TIDY_ATTR_WIDTH |
TIDY_ATTR_WRAP |
TIDY_ATTR_XML_LANG |
TIDY_ATTR_XML_SPACE |
TIDY_ATTR_XMLNS |

Tabela 4. tidy nodetype constants

constant | description
TIDY_NODETYPE_ROOT |
TIDY_NODETYPE_DOCTYPE |
TIDY_NODETYPE_COMMENT |
TIDY_NODETYPE_PROCINS |
TIDY_NODETYPE_TEXT |
TIDY_NODETYPE_START |
TIDY_NODETYPE_END |
TIDY_NODETYPE_STARTEND |
TIDY_NODETYPE_CDATA |
TIDY_NODETYPE_SECTION |
TIDY_NODETYPE_ASP |
TIDY_NODETYPE_JSTE |
TIDY_NODETYPE_PHP |
TIDY_NODETYPE_XMLDECL |

Índice
ob_tidyhandler -- ob_start callback function to repair the buffer
tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.
tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup
tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.
tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.
tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.
tidy_get_body -- Returns a TidyNode Object starting from the <body> tag of the tidy parse tree
tidy_get_config -- Get current Tidy configuration
tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document
tidy_get_head -- Returns a TidyNode Object starting from the <head> tag of the tidy parse tree
tidy_get_html_ver -- Get the Detected HTML version for the specified document.
tidy_get_html -- Returns a TidyNode Object starting from the <html> tag of the tidy parse tree
tidy_get_output -- Return a string representing the parsed tidy markup
tidy_get_release -- Get release date (version) for Tidy library
tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree
tidy_get_status -- Get status of specified document.
tidy_getopt -- Returns the value of the specified configuration option for the tidy document.
tidy_is_xhtml -- Indicates if the document is a XHTML document.
tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document.
tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding
tidy_node->attributes -- Returns an array of attribute objects for node
tidy_node->children -- Returns an array of child nodes
tidy_node->get_attr -- Return the attribute with the provided attribute id
tidy_node->get_nodes -- Return an array of nodes under this node with the specified id
tidy_node->hasChildren -- Returns true if this node has children
tidy_node->hasSiblings -- Returns true if this node has siblings
tidy_node->isAsp -- Returns true if this node is ASP
tidy_node->isComment -- Returns true if this node represents a comment
tidy_node->isHtml -- Returns true if this node is part of a HTML document
tidy_node->isJste -- Returns true if this node is JSTE
tidy_node->isPhp -- Returns true if this node is PHP
tidy_node->isText -- Returns true if this node represents text (no markup)
tidy_node->isXhtml -- Returns true if this node is part of a XHTML document
tidy_node->isXml -- Returns true if this node is part of a XML document
tidy_node->next -- Returns the next sibling to this node
tidy_node->prev -- Returns the previous sibling to this node
tidy_node->tidy_node -- Constructor.
tidy_parse_file -- Parse markup in file or URI
tidy_parse_string -- Parse a document stored in a string
tidy_repair_file -- Repair a file and return it as a string
tidy_repair_string -- Repair a string using an optionally provided configuration file
tidy_reset_config -- Restore Tidy configuration to default values
tidy_save_config -- Save current settings to named file. Only non-default values are written.
tidy_set_encoding -- Set the input/output character encoding for parsing markup.
tidy_setopt -- Updates the configuration settings for the specified tidy document.
tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Anterior | Principal | Próxima
tcpwrap_check | Acima | ob_tidyhandler


ob_tidyhandler

(PHP 5)

ob_tidyhandler -- ob_start callback function to repair the buffer

Description

string ob_tidyhandler ( string input [, int mode])

ob_tidyhandler() is intended to be used as a callback function for ob_start() to repair the buffer.

Exemplo 1. ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also ob_start().

Anterior | Principal | Próxima
Tidy Functions | Acima | tidy_access_count


tidy_access_count

(PHP 5)

tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.

Description

int tidy_access_count ( resource tidy)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
ob_tidyhandler | Acima | tidy_clean_repair


tidy_clean_repair

(PHP 5)

tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup

Description

bool tidy_clean_repair ( resource tidy)

This function cleans and repairs the given tidy resource.

Exemplo 1. tidy_clean_repair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
tidy_clean_repair($tidy);

echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also tidy_repair_file() and tidy_repair_string().

Anterior | Principal | Próxima
tidy_access_count | Acima | tidy_config_count


tidy_config_count

(PHP 5)

tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.

Description

int tidy_config_count ( resource tidy)

tidy_config_count() returns the number of errors encountered in the given configuration.

Exemplo 1. tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('foo' => 'bar');

$tidy = tidy_parse_string($html, $config);

echo tidy_config_count($tidy); //1
?>

Anterior | Principal | Próxima
tidy_clean_repair | Acima | tidy_diagnose


tidy_diagnose

(PHP 5)

tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.

Description

bool tidy_diagnose ( resource tidy)

tidy_diagnose() runs diagnostic tests on the given resource.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
tidy_config_count | Acima | tidy_error_count


tidy_error_count

(PHP 5)

tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.

Description

int tidy_error_count ( resource tidy)

tidy_error_count() returns the number of Tidy errors encountered for the specified document.

Exemplo 1. tidy_error_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->error_buf;
?>

The above example will output:

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count() and tidy_warning_count().

Anterior | Principal | Próxima
tidy_diagnose | Acima | tidy_get_body


tidy_get_body

(PHP 5)

tidy_get_body -- Returns a TidyNode Object starting from the <body> tag of the tidy parse tree

Description

object tidy_get_body ( resource tidy)

This function returns a TidyNode object starting from the <body> tag of the tidy parse tree.

Exemplo 1. tidy_get_body() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = tidy_get_body($tidy);
echo $body->value;
?>

The above example will output:

<body>
<p>paragraph</p>
</body>

Nota: Esta função somente está disponível com a Zend Engine 2, ou seja, o PHP >= 5.0.0.

See also tidy_get_head() and tidy_get_html().

Anterior | Principal | Próxima
tidy_error_count | Acima | tidy_get_config


tidy_get_config

(PHP 5)

tidy_get_config -- Get current Tidy configuration

Description

array tidy_get_config ( resource tidy)

tidy_get_config() returns an array with the configuration options in use by the given resource.

For a explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.

Exemplo 1. tidy_get_config() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap', 200);

$tidy = tidy_parse_string($html, $config);

print_r(tidy_get_config($tidy));
?>

The above example will output:

Array
(
    [indent-spaces] => 2
    [wrap] => 68
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
)

See also tidy_reset_config() and tidy_save_config().

Anterior | Principal | Próxima
tidy_get_body | Acima | tidy_get_error_buffer


tidy_get_error_buffer

(PHP 5)

tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document

Description

string tidy_get_error_buffer ( resource tidy)

tidy_get_error_buffer() returns warnings and errors which occurred parsing the specified document.

Exemplo 1. tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);
echo tidy_get_error_buffer($tidy);
?>

The above example will output:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count(),
tidy_error_count() and
tidy_warning_count().

Anterior | Principal | Próxima
tidy_get_config | Acima | tidy_get_head


tidy_get_head

(PHP 5)

tidy_get_head -- Returns a TidyNode Object starting from the <head> tag of the tidy parse tree

Description

object tidy_get_head ( resource tidy)

This function returns a TidyNode object starting from the <head> tag of the tidy parse tree.

Exemplo 1. tidy_get_head() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = tidy_get_head($tidy);
echo $head->value;
?>

The above example will output:

<head>
<title>test</title>
</head>

Nota: Esta função somente está disponível com a Zend Engine 2, ou seja, o PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_html().

Anterior | Principal | Próxima
tidy_get_error_buffer | Acima | tidy_get_html_ver


tidy_get_html_ver

(PHP 5)

tidy_get_html_ver -- Get the Detected HTML version for the specified document.

Description

int tidy_get_html_ver ( resource tidy)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_get_head | Acima | tidy_get_html


tidy_get_html

(PHP 5)

tidy_get_html -- Returns a TidyNode Object starting from the <html> tag of the tidy parse tree

Description

object tidy_get_html ( resource tidy)

This function returns a TidyNode object starting from the <html> tag of the tidy parse tree.

Exemplo 1. tidy_get_html() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = tidy_get_html($tidy);
echo $html->value;
?>

The above example will output:

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Nota: Esta função somente está disponível com a Zend Engine 2, ou seja, o PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_head().

Anterior | Principal | Próxima
tidy_get_html_ver | Acima | tidy_get_output


tidy_get_output

(PHP 5)

tidy_get_output -- Return a string representing the parsed tidy markup

Description

string tidy_get_output ( resource tidy)

tidy_get_output() returns a string with the repaired html.

Exemplo 1. tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->CleanRepair();

echo tidy_get_output($tidy);
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Anterior | Principal | Próxima
tidy_get_html | Acima | tidy_get_release


tidy_get_release

(PHP 5)

tidy_get_release -- Get release date (version) for Tidy library

Description

string tidy_get_release ( void )

This function returns a string with the release date of the Tidy library.

Anterior | Principal | Próxima
tidy_get_output | Acima | tidy_get_root


tidy_get_root

(PHP 5)

tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree

Description

object tidy_get_root ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Esta função somente está disponível com a Zend Engine 2, ou seja, o PHP >= 5.0.0.

Anterior | Principal | Próxima
tidy_get_release | Acima | tidy_get_status


tidy_get_status

(PHP 5)

tidy_get_status -- Get status of specified document.

Description

int tidy_get_status ( resource tidy)

tidy_get_status() returns the status for the specified tidy resource. It returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Exemplo 1. tidy_get_status() example

<?php
$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$html2 = '<bogus>test</bogus>';
$tidy2 = tidy_parse_string($html2);

echo tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>

Anterior | Principal | Próxima
tidy_get_root | Acima | tidy_getopt


tidy_getopt

(PHP 5)

tidy_getopt -- Returns the value of the specified configuration option for the tidy document.

Description

mixed tidy_getopt ( string option)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_get_status | Acima | tidy_is_xhtml


tidy_is_xhtml

(PHP 5)

tidy_is_xhtml -- Indicates if the document is a XHTML document.

Description

bool tidy_is_xhtml ( resource tidy)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_getopt | Acima | tidy_is_xml


tidy_is_xml

(PHP 5)

tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document.

Description

bool tidy_is_xml ( resource tidy)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_is_xhtml | Acima | tidy_load_config


tidy_load_config

(no version information, might be only in CVS)

tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding

Description

void tidy_load_config ( string filename, string encoding)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Esta função somente estava disponível com o Tidy 1.0. Ela se tornou obsoleta com o Tidy 2.0 e por isso foi removida.

Anterior | Principal | Próxima
tidy_is_xml | Acima | tidy_node->attributes


tidy_node->attributes

(no version information, might be only in CVS)

tidy_node->attributes -- Returns an array of attribute objects for node

Description

array tidy_node->attributes ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_load_config | Acima | tidy_node->children


tidy_node->children

(no version information, might be only in CVS)

tidy_node->children -- Returns an array of child nodes

Description

array tidy_node->children ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_node->attributes | Acima | tidy_node->get_attr


tidy_node->get_attr

(no version information, might be only in CVS)

tidy_node->get_attr -- Return the attribute with the provided attribute id

Description

tidy_attr tidy_node->get_attr ( int attrib_id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_node->children | Acima | tidy_node->get_nodes


tidy_node->get_nodes

(no version information, might be only in CVS)

tidy_node->get_nodes -- Return an array of nodes under this node with the specified id

Description

array tidy_node->get_nodes ( int node_id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_node->get_attr | Acima | tidy_node->hasChildren


tidy_node->hasChildren

(no version information, might be only in CVS)

tidy_node->hasChildren -- Returns true if this node has children

Description

bool tidy_node->hasChildren ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->has_children() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->get_nodes | Acima | tidy_node->hasSiblings


tidy_node->hasSiblings

(no version information, might be only in CVS)

tidy_node->hasSiblings -- Returns true if this node has siblings

Description

bool tidy_node->hasSiblings ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->has_siblings() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->hasChildren | Acima | tidy_node->isAsp


tidy_node->isAsp

(no version information, might be only in CVS)

tidy_node->isAsp -- Returns true if this node is ASP

Description

bool tidy_node->isAsp ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_asp() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->hasSiblings | Acima | tidy_node->isComment


tidy_node->isComment

(no version information, might be only in CVS)

tidy_node->isComment -- Returns true if this node represents a comment

Description

bool tidy_node->isComment ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_comment() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isAsp | Acima | tidy_node->isHtml


tidy_node->isHtml

(no version information, might be only in CVS)

tidy_node->isHtml -- Returns true if this node is part of a HTML document

Description

bool tidy_node->isHtml ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_html() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isComment | Acima | tidy_node->isJste


tidy_node->isJste

(no version information, might be only in CVS)

tidy_node->isJste -- Returns true if this node is JSTE

Description

bool tidy_node->isJste ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_jste() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isHtml | Acima | tidy_node->isPhp


tidy_node->isPhp

(no version information, might be only in CVS)

tidy_node->isPhp -- Returns true if this node is PHP

Description

bool tidy_node->isPhp ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_php() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isJste | Acima | tidy_node->isText


tidy_node->isText

(no version information, might be only in CVS)

tidy_node->isText -- Returns true if this node represents text (no markup)

Description

bool tidy_node->isText ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_text() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isPhp | Acima | tidy_node->isXhtml


tidy_node->isXhtml

(no version information, might be only in CVS)

tidy_node->isXhtml -- Returns true if this node is part of a XHTML document

Description

bool tidy_node->isXhtml ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_xhtml() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isText | Acima | tidy_node->isXml


tidy_node->isXml

(no version information, might be only in CVS)

tidy_node->isXml -- Returns true if this node is part of a XML document

Description

bool tidy_node->isXml ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: This functions was named tidy_node->is_xml() in PHP 4/Tidy 1.

Anterior | Principal | Próxima
tidy_node->isXhtml | Acima | tidy_node->next


tidy_node->next

(no version information, might be only in CVS)

tidy_node->next -- Returns the next sibling to this node

Description

tidy_node tidy_node->next ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_node->isXml | Acima | tidy_node->prev


tidy_node->prev

(no version information, might be only in CVS)

tidy_node->prev -- Returns the previous sibling to this node

Description

tidy_node tidy_node->prev ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_node->next | Acima | tidy_node->tidy_node


tidy_node->tidy_node

(no version information, might be only in CVS)

tidy_node->tidy_node -- Constructor.

Description

void tidy_node->tidy_node ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
tidy_node->prev | Acima | tidy_parse_file


tidy_parse_file

(PHP 5)

tidy_parse_file -- Parse markup in file or URI

Description

resource tidy_parse_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]])

This function parses the given file.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Exemplo 1. tidy_parse_file() example

<?php
$tidy = tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty($tidy->error_buf)) {
    echo "The following errors or warnings occured:\n";
    echo $tidy->error_buf;
}
?>

Nota: Os parâmetros opcionais config_options e encoding foram acrescentados no Tidy 2.0.

See also tidy_parse_string(),
tidy_parse_string() and
tidy_repair_string().

Anterior | Principal | Próxima
tidy_node->tidy_node | Acima | tidy_parse_string


tidy_parse_string

(PHP 5)

tidy_parse_string -- Parse a document stored in a string

Description

resource tidy_parse_string ( string input [, mixed config [, string encoding]])

tidy_parse_string() parses a document stored in a string.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Exemplo 1. tidy_parse_string() example

<?php
ob_start();
?>

<html>
  <head>
   <title>test</title>
  </head>
  <body>
   <p>error<br>another line</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap', 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      test
    </title>
  </head>
  <body>
    <p>
      error<br />
      another line
    </p>
  </body>
</html>

Nota: Os parâmetros opcionais config_options e encoding foram acrescentados no Tidy 2.0.

See also tidy_parse_file(),
tidy_repair_file() and
tidy_repair_string().

Anterior | Principal | Próxima
tidy_parse_file | Acima | tidy_repair_file


tidy_repair_file

(PHP 5)

tidy_repair_file -- Repair a file and return it as a string

Description

string tidy_repair_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]])

This function repairs the given file and returns it as a string.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Exemplo 1. tidy_repair_file() example

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Nota: Os parâmetros opcionais config_options e encoding foram acrescentados no Tidy 2.0.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_string().

Anterior | Principal | Próxima
tidy_parse_string | Acima | tidy_repair_string


tidy_repair_string

(PHP 5)

tidy_repair_string -- Repair a string using an optionally provided configuration file

Description

string tidy_repair_string ( string data [, mixed config [, string encoding]])

This function repairs the given string.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Exemplo 1. tidy_repair_string() example

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);

echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Nota: Os parâmetros opcionais config_options e encoding foram acrescentados no Tidy 2.0.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_file().

Anterior | Principal | Próxima
tidy_repair_file | Acima | tidy_reset_config


tidy_reset_config

(no version information, might be only in CVS)

tidy_reset_config -- Restore Tidy configuration to default values

Description

bool tidy_reset_config ( void )

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Esta função somente estava disponível com o Tidy 1.0. Ela se tornou obsoleta com o Tidy 2.0 e por isso foi removida.

Anterior | Principal | Próxima
tidy_repair_string | Acima | tidy_save_config


tidy_save_config

(no version information, might be only in CVS)

tidy_save_config -- Save current settings to named file. Only non-default values are written.

Description

bool tidy_save_config ( string filename)

tidy_save_config() saves current settings to the specified file. Only non-default values are written.

See also tidy_get_config(),
tidy_getopt(),
tidy_reset_config() and
tidy_setopt().

Nota: Esta função somente estava disponível com o Tidy 1.0. Ela se tornou obsoleta com o Tidy 2.0 e por isso foi removida.

Anterior | Principal | Próxima
tidy_reset_config | Acima | tidy_set_encoding


tidy_set_encoding

(no version information, might be only in CVS)

tidy_set_encoding -- Set the input/output character encoding for parsing markup.

Description

bool tidy_set_encoding ( string encoding)

Sets the encoding for input/output documents. Retorna TRUE em caso de sucesso ou FALSE em falhas. Possible values for encoding are ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Nota: Esta função somente estava disponível com o Tidy 1.0. Ela se tornou obsoleta com o Tidy 2.0 e por isso foi removida.

Anterior | Principal | Próxima
tidy_save_config | Acima | tidy_setopt


tidy_setopt

(no version information, might be only in CVS)

tidy_setopt -- Updates the configuration settings for the specified tidy document.

Description

bool tidy_setopt ( string option, mixed value)

tidy_setopt() updates the specified option with a new value.

Exemplo 1. tidy_setopt() example

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

See also tidy_getopt(),
tidy_get_config(),
tidy_reset_config() and
tidy_save_config().

Nota: Esta função somente estava disponível com o Tidy 1.0. Ela se tornou obsoleta com o Tidy 2.0 e por isso foi removida.

Anterior | Principal | Próxima
tidy_set_encoding | Acima | tidy_warning_count


tidy_warning_count

(PHP 5)

tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Description

int tidy_warning_count ( resource tidy)

tidy_warning_count() returns the number of Tidy warnings encountered for the specified document.

Exemplo 1. tidy_warning_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

See also tidy_access_count() and tidy_error_count().

Anterior | Principal | Próxima
tidy_setopt | Acima | Tokenizer Functions


Tokenizer Functions

Manual do PHP
Anterior Próxima

CX. Tokenizer Functions

Introdução

The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level.

See also the appendix about tokens.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Beginning with PHP 4.3.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-tokenizer. You can disable tokenizer support with --disable-tokenizer.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Nota: Builtin support for tokenizer is available with PHP 4.3.0.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

T_INCLUDE (integer)

T_INCLUDE_ONCE (integer)

T_EVAL (integer)

T_REQUIRE (integer)

T_REQUIRE_ONCE (integer)

T_LOGICAL_OR (integer)

T_LOGICAL_XOR (integer)

T_LOGICAL_AND (integer)

T_PRINT (integer)

T_PLUS_EQUAL (integer)

T_MINUS_EQUAL (integer)

T_MUL_EQUAL (integer)

T_DIV_EQUAL (integer)

T_CONCAT_EQUAL (integer)

T_MOD_EQUAL (integer)

T_AND_EQUAL (integer)

T_OR_EQUAL (integer)

T_XOR_EQUAL (integer)

T_SL_EQUAL (integer)

T_SR_EQUAL (integer)

T_BOOLEAN_OR (integer)

T_BOOLEAN_AND (integer)

T_IS_EQUAL (integer)

T_IS_NOT_EQUAL (integer)

T_IS_IDENTICAL (integer)

T_IS_NOT_IDENTICAL (integer)

T_IS_SMALLER_OR_EQUAL (integer)

T_IS_GREATER_OR_EQUAL (integer)

T_SL (integer)

T_SR (integer)

T_INC (integer)

T_DEC (integer)

T_INT_CAST (integer)

T_DOUBLE_CAST (integer)

T_STRING_CAST (integer)

T_ARRAY_CAST (integer)

T_OBJECT_CAST (integer)

T_BOOL_CAST (integer)

T_UNSET_CAST (integer)

T_NEW (integer)

T_EXIT (integer)

T_IF (integer)

T_ELSEIF (integer)

T_ELSE (integer)

T_ENDIF (integer)

T_LNUMBER (integer)

T_DNUMBER (integer)

T_STRING (integer)

T_STRING_VARNAME (integer)

T_VARIABLE (integer)

T_NUM_STRING (integer)

T_INLINE_HTML (integer)

T_CHARACTER (integer)

T_BAD_CHARACTER (integer)

T_ENCAPSED_AND_WHITESPACE (integer)

T_CONSTANT_ENCAPSED_STRING (integer)

T_ECHO (integer)

T_DO (integer)

T_WHILE (integer)

T_ENDWHILE (integer)

T_FOR (integer)

T_ENDFOR (integer)

T_FOREACH (integer)

T_ENDFOREACH (integer)

T_DECLARE (integer)

T_ENDDECLARE (integer)

T_AS (integer)

T_SWITCH (integer)

T_ENDSWITCH (integer)

T_CASE (integer)

T_DEFAULT (integer)

T_BREAK (integer)

T_CONTINUE (integer)

T_OLD_FUNCTION (integer)

T_FUNCTION (integer)

T_CONST (integer)

T_RETURN (integer)

T_USE (integer)

T_GLOBAL (integer)

T_STATIC (integer)

T_VAR (integer)

T_UNSET (integer)

T_ISSET (integer)

T_EMPTY (integer)

T_CLASS (integer)

T_EXTENDS (integer)

T_OBJECT_OPERATOR (integer)

T_DOUBLE_ARROW (integer)

T_LIST (integer)

T_ARRAY (integer)

T_LINE (integer)

T_FILE (integer)

T_COMMENT (integer)

T_ML_COMMENT (integer)

Nota: T_ML_COMMENT is not defined in PHP 5. All comments in PHP 5 are of token T_COMMENT.

T_DOC_COMMENT (integer)

Nota: T_DOC_COMMENT was introduced in PHP 5.

T_OPEN_TAG (integer)

T_OPEN_TAG_WITH_ECHO (integer)

T_CLOSE_TAG (integer)

T_WHITESPACE (integer)

T_START_HEREDOC (integer)

T_END_HEREDOC (integer)

T_DOLLAR_OPEN_CURLY_BRACES (integer)

T_CURLY_OPEN (integer)

T_PAAMAYIM_NEKUDOTAYIM (integer)

T_DOUBLE_COLON (integer)

Exemplos

Here is a simple example PHP scripts using the tokenizer that will read in a PHP file, strip all comments from the source and print the pure code only.

Exemplo 1. Strip comments with the tokenizer

<?php
  $source = file_get_contents("somefile.php");
  $tokens = token_get_all($source);
  /* T_ML_COMMENT does not exist in PHP 5.
   * The following three lines define it in order to
   * preserve backwards compatibility.
   *
   * The next two lines define the PHP 5-only T_DOC_COMMENT,
   * which we will mask as T_ML_COMMENT for PHP 4.
   */
  if (!defined('T_ML_COMMENT')) {
    define('T_ML_COMMENT', T_COMMENT);
  } else {
    define('T_DOC_COMMENT', T_ML_COMMENT);
  }
  foreach ($tokens as $token) {
    if (is_string($token)) {
      // simple 1-character token
      echo $token;
    } else {
      // token array
      list($id, $text) = $token;
      switch ($id) {
        case T_COMMENT:
        case T_ML_COMMENT: // we've defined this
        case T_DOC_COMMENT: // and this
          // no action on comments
          break;
        default:
          // anything else -> output "as is"
          echo $text;
          break;
      }
    }
  }
?>
Índice
token_get_all -- Split given source into PHP tokens
token_name -- Get the symbolic name of a given PHP token

Anterior | Principal | Próxima
tidy_warning_count | Acima | token_get_all


token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_all -- Split given source into PHP tokens

Description

array token_get_all ( string source)

token_get_all() parses the given source string into PHP language tokens using the Zend engine's lexical scanner. The function returns an array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a two element array containing the token index in element 0, and the string content of the original token in element 1.

For a list of parser tokens, see Apêndice N, or use token_name() to translate a token value into its string representation.

Exemplo 1. token_get_all() examples

<?php
  $tokens = token_get_all('<?php'); // => array(array(T_OPEN_TAG, '<?'));
  $tokens = token_get_all('<?php echo; ?>'); /* => array(
                                                    array(T_OPEN_TAG, '<?php'),
                                                    array(T_ECHO, 'echo'),
                                                    ';',
                                                    array(T_CLOSE_TAG, '?>') ); */

/* Note in the following example that the string is parsed as T_INLINE_HTML
   rather than the otherwise expected T_COMMENT (T_ML_COMMENT in PHP <5).
   This is because no open/close tags were used in the "code" provided.
   This would be equivalent to putting a comment outside of <?php ?> tags in a normal file. */
  $tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Anterior | Principal | Próxima
Tokenizer Functions | Acima | token_name


token_name

(PHP 4 >= 4.2.0, PHP 5)

token_name -- Get the symbolic name of a given PHP token

Description

string token_name ( int token)

token_name() returns the symbolic name for a PHP token value. The symbolic name returned matches the name of the matching token constant.

Exemplo 1. token_name() example

<?php
  // 260 is the token value for the T_REQUIRE token
  echo token_name(260);        // -> "T_REQUIRE"

  // a token constant maps to its own name
  echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Anterior | Principal | Próxima
token_get_all | Acima | URL


URL

Manual do PHP
Anterior Próxima

CXI. URL

Introdução

Lidando com URLs: codificando, decodificando e interpretando.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
base64_decode -- Decodifica dados codificados com MIME base64
base64_encode -- Codifica dados com MIME base64
get_headers -- Fetches all the headers sent by the server in response to a HTTP request
get_meta_tags -- Extrai as informações das tag meta de um arquivo e retorna como uma matriz
http_build_query -- Generate URL-encoded query string
parse_url -- Interpreta uma URL e retorna os seus componentes
rawurldecode -- Decodifica uma URL
rawurlencode -- Codifica uma URL de acordo com RFC 1738
urldecode -- Decodifica uma URL codificada
urlencode -- Codifica uma URL

Anterior | Principal | Próxima
token_name | Acima | base64_decode


base64_decode

(PHP 3, PHP 4 , PHP 5)

base64_decode -- Decodifica dados codificados com MIME base64

Descrição

string base64_decode ( string encoded_data)

base64_decode() decodifica encoded_data e retorna o dado original. O retorno pode ser binário.

Exemplo 1. base64_decode() example

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

Este exemplo irá mostrar:

This is an encoded string

Veja também base64_encode() e RFC 2045 seção 6.8.

Anterior | Principal | Próxima
URL | Acima | base64_encode


base64_encode

(PHP 3, PHP 4 , PHP 5)

base64_encode -- Codifica dados com MIME base64

Descrição

string base64_encode ( string dados)

base64_encode() returns Dado codificado com base64. Esta codificação é designada para que dados binários durem no transporte sobre camadas de transorte que não são 8-bit clean, como mensagens de e-mail.

Dados codificados na Base-64 tem aproximadamente 33% mais espaço que dos dados originais.

Exemplo 1. Exemplo base64_encode()

<?php
  $str = 'This is an encoded string';
  echo base64_encode($str);
?>

Este exemplo irá mostrar:

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

Veja também base64_decode(), chunk_split() e RFC-2045 seção 6.8.

Anterior | Principal | Próxima
base64_decode | Acima | get_headers


get_headers

(PHP 5)

get_headers -- Fetches all the headers sent by the server in response to a HTTP request

Description

array get_headers ( string url)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
base64_encode | Acima | get_meta_tags


get_meta_tags

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

get_meta_tags -- Extrai as informações das tag meta de um arquivo e retorna como uma matriz

Descrição

array get_meta_tags ( string filename [, int use_include_path])

Abre filename e interpreta linha a linha procurando por tags <meta> no arquivo. Este pode ser um arquivo local ou uma URL. A interpretação termina em </head>.

Estabelecendo use_include_path em 1 fará com que o PHP tente abrir o arquivo dentro do include path como na diretiva include_path. Isto é usado para arquivos locais, não URLs.

Exemplo 1. O que get_meta_tags() interpreta

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- parsing stops here -->
(preste atenção aos finais de linha - PHP usa uma função nativa para interpretar, então um arquivo do Mac não irá funcionar).

O valor da propriedade name se torna a chave, o valor da propriedade content se torna o valor na matriz retornada, então você pode facilmente usar as funções de matriz para trabalhar com os valores. Caracteres especiais na propriedade name são substituidos por "_", o resto é convertido para minúsculas. Se duas tags meta tiverem o mesmo nome, apenas a ultima é retornada.

Exemplo 2. O que get_meta_tags() retorna

<?php
// Assumindo que as tags acima estão em www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Veja que todas as chaves estão agora em minúsculas, e
// que agora o . foi substituido por _ na chave.
print $tags['author'];       // name
print $tags['keywords'];     // php documentation
print $tags['description'];  // a php manual
print $tags['geo_position']; // 49.33;-86.59
?>

Nota: Apartir do PHP 4.0.5, get_meta_tags() suporta atributos HTML que não estejam entre aspas.

Veja também htmlentities() e urlencode().

Anterior | Principal | Próxima
get_headers | Acima | http_build_query


http_build_query

(PHP 5)

http_build_query -- Generate URL-encoded query string

Description

string http_build_query ( array formdata [, string numeric_prefix])

Generates a URL-encoded query string from the associative (or indexed) array provided. formdata may be an array or object containing properties. A formdata array may be a simple one-dimensional structure, or an array of arrays (who in turn may contain other arrays). If numeric indices are used in the base array and a numeric_prefix is provided, it will be prepended to the numeric index for elements in the base array only. This is to allow for legal variable names when the data is decoded by PHP or another CGI application later on.

Exemplo 1. Simple usage of http_build_query()

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>

Exemplo 2. http_build_query() with numerically index elements.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);
/* Outputs:
      0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
 */

echo http_build_query($data, 'myvar_');
/* Outputs:
      myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
 */
?>

Exemplo 3. http_build_query() with complex arrays

<?php
$data = array('user'=>array('name'=>'Bob Smith',
                            'age'=>47,
                            'sex'=>'M',
                            'dob'=>'5/12/1956'),
              'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
              'children'=>array('bobby'=>array('age'=>12,
                                               'sex'=>'M'),
                                'sally'=>array('age'=>8,
                                               'sex'=>'F')),
              'CEO');

echo http_build_query($data, 'flags_');
?>

this will output : (word wrapped for readability)

user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO

Nota: Only the numerically indexed element in the base array "CEO" received a prefix. The other numeric indices, found under pastimes, do not require a string prefix to be legal variable names.

Exemplo 4. Using http_build_query() with an object

<?php
class myClass {
  var $foo;
  var $baz;

  function myClass()
  {
    $this->foo = 'bar';
    $this->baz = 'boom';
  }
}

$data = new myClass();

echo http_build_query($data); // foo=bar&baz=boom

?>

See also:
parse_str(),
parse_url(),
urlencode(), and
array_walk()

Anterior | Principal | Próxima
get_meta_tags | Acima | parse_url


parse_url

(PHP 3, PHP 4 , PHP 5)

parse_url -- Interpreta uma URL e retorna os seus componentes

Descrição

array parse_url ( string url)

Esta função retorna uma matriz associativa retornando os vários componentes que estão presentes em uma url. Se um dos elementos não estiver presente, não será criada uma entrada para ele. Os componemtes são:

  • scheme - ex. http

  • host

  • port

  • user

  • pass

  • path

  • query - após a interogação ?

  • fragment - após a cancela #

Esta função não é um meio para validar a URL indicada, ela somente quebra nas partes listadas. URLs parciais também são aceitas, parse_url() tenta o melhor para interpreta-las corretamente.

Nota: Esta função não funciona com URLs relativas.

Exemplo 1. Exemplo parse_url()

$ php -r 'print_r( parse_url("http://username:password@hostname/path?arg=value#anchor"));'
Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

$ php -r 'print_r( parse_url("http://invalid_host..name/"));'
Array
(
    [scheme] => http
    [host] => invalid_host..name
    [path] => /
)

Veja também pathinfo(), parse_str(), dirname(), e basename().

Anterior | Principal | Próxima
http_build_query | Acima | rawurldecode


rawurldecode

(PHP 3, PHP 4 , PHP 5)

rawurldecode -- Decodifica uma URL

Descrição

string rawurldecode ( string str)

Retorna uma string em que as sequencias com o sinal porcento (%) seguida por dois digitos hexadecimais são substituidas pelos caracteres correspondentes.

Exemplo 1. Exemplo rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Nota: rawurldecode() não decodifica os sinais de adição ('+') em espaços. A função urldecode() faz isto.

Veja também rawurlencode(),
urldecode(),
urlencode().

Anterior | Principal | Próxima
parse_url | Acima | rawurlencode


rawurlencode

(PHP 3, PHP 4 , PHP 5)

rawurlencode -- Codifica uma URL de acordo com RFC 1738

Descrição

string rawurlencode ( string str)

Retorna uma string na qual todos os caracteres alfa-numericos com exceção de -_. foram substituidos com um sinal de porcento (%) seguido de dois digitos hexadecimais. Esta codificação esta descrita na RFC 1738 para proteger caracteres de serem interpretados como delimitadores de URL, e para proteger URLs de serem embaralhadas por transmissão em meios com conversões de caracteres (como alguns sistemas de emaail). Por exemplo, se você quiser incluir uma senha de FTP em uma URL:

Exemplo 1. Exemplo 1 de rawurlencode()

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.my.com/x.txt">';
?>

Ou, se você quiser passar informação no componente PATH_INFO se uma URL:

Exemplo 2. Exemplo 2 de rawurlencode()

<?php
echo '<a href="http://x.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

Veja também rawurldecode(),
urldecode(),
urlencode() e
RFC 1738.

Anterior | Principal | Próxima
rawurldecode | Acima | urldecode


urldecode

(PHP 3, PHP 4 , PHP 5)

urldecode -- Decodifica uma URL codificada

Descrição

string urldecode ( string str)

Decodifica qualquer %## codificado na string. A string decodificada é o valor de retorno.

Exemplo 1. urldecode() exemplo

<?php
$a = split ('&amp;', $querystring);
$i = 0;
while ($i &lt; count ($a)) {
    $b = split ('=', $a [$i]);
    echo 'Value for parameter ', htmlspecialchars (urldecode ($b [0])),
         ' is ', htmlspecialchars (urldecode ($b [1])), "&lt;BR>";
    $i++;
}
?>

Veja também urlencode(),
rawurlencode() e
rawurldecode().

Anterior | Principal | Próxima
rawurlencode | Acima | urlencode


urlencode

(PHP 3, PHP 4 , PHP 5)

urlencode -- Codifica uma URL

Descrição

string urlencode ( string str)

Retorna uma string em que todos os caracteres não-alfanuméricos com exceção de -_. são substituidos com um sinal de porcento (%) siguido por dois digitos hexadecimais e espaços codificados como um sinal de (+). É codificada do mesmo jeito que dados vindos de um formulário WWW é codificado, isto é, da mesma maneira que application/x-www-form-urlencoded. Isto é diferente da codificação RFC1738 (veja rawurlencode()) nesta por razões historicas, espaços são codificados como sinais de mais(+). Esta função é conveniente para codificar uma string que será passada como parte de uma URL, como um meio de passar variáveis para a próxima pagina:

Exemplo 1. Exemplo urlencode()

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Nota: Seja cuidadoso com variaveis que sejam iguais a entidades HTML. Coisas como &amp, &copy e &pound são interpretados pelo browser e a entidade atual é usada ao invés do nome de variavel desejado. Isto é um problema obvio que o W3C vem falando a todos a anos. A referrência esta aqui: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. O PHP suporta que se mude o separador de argumentos para o ponto e vírgula sugerido pelo W3C através da diretiva de configuração arg_separator. Infelizmente a maior parte dos aplicativos não envia os dados neste formato. Um meio mais portável é usar &amp; ao invés de & como separador. Você não precisa mudar arg_separator para isto. Deixe como &, mas simplesmente codifique as suar URLs usando htmlentities(urlencode($data)).

Exemplo 2. Exemplo urlencode() e htmlentities()

<?php
echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">';
?>

Veja também urldecode(),
htmlentities(),
rawurldecode() e
rawurlencode().

Anterior | Principal | Próxima
urldecode | Acima | Variáveis, Funções


Variáveis, Funções

Manual do PHP
Anterior Próxima

CXII. Variáveis, Funções

Introdução

Para maiores informações do comportamento de variáveis veja Variavéis localizada na seção do manual Referências da Linguagem.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Variables Configuration Options

Name | Default | Changeable
unserialize_callback_func | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Breve descrição das diretivas de configuração.

unserialize_callback_func string

The unserialize callback function will called (with the undefined class' name as parameter), if the unserializer finds an undefined class which should be instanciated. A warning appears if the specified function is not defined, or if the function doesn't include/implement the missing class. So only set this entry, if you really want to implement such a callback-function.

See also unserialize().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
doubleval -- Sinônimo de floatval()
empty -- Informa se a variável é vazia
floatval -- Retorna o valor float da variável
get_defined_vars -- Retorna o array com todas variáveis definidas
get_resource_type -- Retorna o tipo de resource
gettype -- Retorna o tipo da variável
import_request_variables -- Import GET/POST/Cookie variables into the global scope
intval -- Retorna o valor integer da variável
is_array -- Verifica se a variável é um array
is_bool -- Verifica se a variável é um boleano
is_callable -- Verify that the contents of a variable can be called as a function
is_double -- Sinônimo parais_float()
is_float -- Informa se a variável é um float
is_int -- Informa se a variável é um inteiro
is_integer -- Sinônimo de is_int()
is_long -- Sinônimo de is_int()
is_null -- Informa se a variável é NULL
is_numeric -- Informa se a variável é um número ou uma string numérica
is_object -- Informa se a variável é um objeto
is_real -- Função sinônima de is_float()
is_resource -- Informa se a variável é um resource
is_scalar -- Informa se é uma váriavel escalar
is_string -- Informa se a variável é uma string
isset -- Informa se a variável foi iniciada
print_r -- Prints human-readable information about a variable
serialize -- Generates a storable representation of a value
settype -- Atribui um tipo para a variável
strval -- Retorna o valor string de uma variável
unserialize -- Creates a PHP value from a stored representation
unset -- Destrói a variável especificada
var_dump -- Mostra informações sobre a variável
var_export -- Mostra ou retorna uma representação estruturada de uma variável

Anterior | Principal | Próxima
urlencode | Acima | doubleval


doubleval

doubleval -- Sinônimo de floatval()

Descrição

Esta é uma função sinônima (alias) para floatval().

Nota: A floatval() é esta função renomeada. Em versões antigas do PHP você precisará usar essa função sinonima de floatval() porque floatval() não existia em versões antigas.

Anterior | Principal | Próxima
Variáveis, Funções | Acima | empty


empty

(PHP 3, PHP 4, PHP 5 )

empty -- Informa se a variável é vazia

Descrição

bool empty ( mixed var)

empty() Retorna FALSE se var é um valor não nulo ou não zero. Em outras palavras, "", 0, "0", NULL, FALSE, array(), var $var;, e objetos sem propriedades são considerados como valores vazios. TRUE será retornado se var é vazio.

empty() é o oposto de (boolean) var, com exceção de não gerar um alerta (warning) se a variável não existir. Veja Convertendo Booleanos para maiores informações.

Exemplo 1. Uma simples comparação entre as funções empty() / isset().

<?php
$var = 0;

// Será interpretado como true, porque $var é um valor vazio
if (empty($var)) {
    echo '$var é um dos valores: 0, empty ou uma variável inexistente';
}

// Será interpretado como true porque $var está 'setado'
if (isset($var)) {
    echo '$var está "setado" apesar de vazio';
}
?>

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Nota: empty() serve somente para conferir variáveis em outros casos resultará em um erro de sintaxe (parse error). Em outras palavras, o seguinte não funcionará: empty(addslashes($name)).

Veja mais em isset(),
unset(),
array_key_exists(),
count(),
strlen() e a
Tabela de comparação de tipos.

Anterior | Principal | Próxima
doubleval | Acima | floatval


floatval

(PHP 4 >= 4.2.0, PHP 5)

floatval -- Retorna o valor float da variável

Descrição

float floatval ( mixed var)

Retorna o valor float de var.

Var somente para parâmetros escalares. Nunca use floatval() para arrays ou objetos.

<?php
$variavel = '122.34343The';
$valor_float = floatval ($variavel);
print $valor_float; // mostra 122.34343
?>

Veja mais em intval(), strval(), settype() e Manipulação de tipos.

Anterior | Principal | Próxima
empty | Acima | get_defined_vars


get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars -- Retorna o array com todas variáveis definidas

Descrição

array get_defined_vars ( void )

Essa função retorna uma array multimensional contendo uma lista de todas as variáveis definidas, incluindo variáveis de ambiente, servidor ou variáveis definidas pelo usuário.

<?php
$b = array(1,1,2,3,5,8);

$arr = get_defined_vars();

// mostra $b
print_r($arr["b"]);

/* mostra o caminho do interpretador do PHP (se for usado como CGI)
 * por exemplo /usr/local/bin/php */
echo $arr["_"];

// mostra os parâmetros da linha de comando se for usado
print_r($arr["argv"]);

// mostra todas variáveis de servidor
print_r($arr["_SERVER"]);

// mostra todos os indíces possíveis para a matriz de variáveis
print_r(array_keys(get_defined_vars()));
?>

Veja mais em get_defined_functions() e get_defined_constants().

Anterior | Principal | Próxima
floatval | Acima | get_resource_type


get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type -- Retorna o tipo de resource

Descrição

string get_resource_type ( resource handle)

Essa função retorna uma string que representa o tipo resource. Se o parâmetro não for um resource válido um erro será retornado.

<?php
// mosta: mysql link
$c = mysql_connect();
echo get_resource_type($c)."\n";

// mostra: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp)."\n";

// mostra: domxml document
$doc = new xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
?>

Anterior | Principal | Próxima
get_defined_vars | Acima | gettype


gettype

(PHP 3, PHP 4 , PHP 5)

gettype -- Retorna o tipo da variável

Descrição

string gettype ( mixed var)

Retorna o tipo da variável no PHP var.

Atenção

Nunca use gettype() para testar um certo tipo, a string devolvida poderá sofrer alterações em uma versão futura. Essa função é mais lenta que outras formas de comparação.

Ao invés use as funçõesis_*.

Os possíveis valores retornados pela função são:

  • "boolean" (a partir do PHP 4)

  • "integer"

  • "double" (por razões históricas "double" é é retornado no caso de float, e não simplesmente "float")

  • "string"

  • "array"

  • "object"

  • "resource" (a partir do PHP 4)

  • "NULL" (a partir do PHP 4)

  • "user function" (PHP 3 somente, depreciado)

  • "unknown type"

Para o PHP 4 é aconselhável usar function_exists() e method_exists() ao invés da função gettype().

Veja mais em
settype(),
is_array(),
is_bool(),
is_float(),
is_integer(),
is_null(),
is_numeric(),
is_object(),
is_resource(),
is_scalar() e
is_string().

Anterior | Principal | Próxima
get_resource_type | Acima | import_request_variables


import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables -- Import GET/POST/Cookie variables into the global scope

Description

bool import_request_variables ( string types [, string prefix])

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals, but would like to see some variables in the global scope.

Using the types parameter, you can specify which request variables to import. You can use 'G', 'P' and 'C' characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of 'g', 'p' and 'c'. POST includes the POST uploaded file information. Note that the order of the letters matters, as when using "gp", the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

The prefix parameter is used as a variable name prefix, prepended before all variable's name imported into the global scope. So if you have a GET value named "userid", and provide a prefix "pref_", then you'll get a global variable named $pref_userid.

If you're interested in importing other variables into the global scope, such as SERVER, consider using extract().

Nota: Although the prefix parameter is optional, you will get an E_NOTICE level error if you specify no prefix, or specify an empty string as a prefix. This is a possible security hazard. Notice level errors are not displayed using the default error reporting level.

<?php
// This will import GET and POST vars
// with an "rvar_" prefix
import_request_variables("gP", "rvar_");

echo $rvar_foo;
?>

See also $_REQUEST, register_globals, Predefined Variables, and extract().

Anterior | Principal | Próxima
gettype | Acima | intval


intval

(PHP 3, PHP 4 , PHP 5)

intval -- Retorna o valor integer da variável

Descrição

int intval ( mixed var [, int base])

Retorna o valor integer de var, usando a base especificada para a conversão (o padrão é a base 10).

var somente para tipos escalares. Nunca use intval() para arrays ou objects.

Nota: O parâmetro base de intval() só funcionará se var for uma string.

Veja mais em floatval(), strval(), settype() e Manipulação de tipos.

Anterior | Principal | Próxima
import_request_variables | Acima | is_array


is_array

(PHP 3, PHP 4 , PHP 5)

is_array -- Verifica se a variável é um array

Descrição

bool is_array ( mixed var)

Retorna TRUE se var é um array, FALSE senão.

Veja mais em
is_float(),
is_int(),
is_integer(),
is_string() e
is_object().

Anterior | Principal | Próxima
intval | Acima | is_bool


is_bool

(PHP 4 , PHP 5)

is_bool -- Verifica se a variável é um boleano

Descrição

bool is_bool ( mixed var)

Retorna TRUE se var é um boolean.

Exemplo 1. Exemplo is_bool()

<?php
$a = false;
$b = 0;

// Verifica se $a é boolean, retorna true
if (is_bool($a)) {
    echo 'A variável $a é um valor booleano';
}

// Verifica se $b é boolean, retorna false
if (is_bool($b)) {
    echo 'A variável $b é um valor booleano';
}
?>

Veja mais em
is_array(),
is_float(),
is_int(),
is_integer(),
is_string() e
is_object().

Anterior | Principal | Próxima
is_array | Acima | is_callable


is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable -- Verify that the contents of a variable can be called as a function

Description

bool is_callable ( mixed var [, bool syntax_only [, string callable_name]])

Verify that the contents of a variable can be called as a function. This can check that a simple variable contains the name of a valid function, or that an array contains a properly encoded object and function name.

The var parameter can be either the name of a function stored in a string variable, or an object and the name of a method within the object, like this:
array($SomeObject, 'MethodName')

If the syntax_only argument is TRUE the function only verifies that var might be a function or method. It will only reject simple variables that are not strings, or an array that does not have a valid structure to be used as a callback. The valid ones are supposed to have only 2 entries, the first of which is an object or a string, and the second a string.

The callable_name argument receives the "callable name". In the example below it's "someClass:someMethod". Note, however, that despite the implication that someClass::SomeMethod() is a callable static method, this is not the case.

<?php
//  How to check a variable to see if it can be called
//  as a function.

//
//  Simple variable containing a function
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array containing a method
//

class someClass {

  function someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass:someMethod

?>

Anterior | Principal | Próxima
is_bool | Acima | is_double


is_double

is_double -- Sinônimo parais_float()

Descrição

Esta é uma função sinônima (alias) para is_float().

Anterior | Principal | Próxima
is_callable | Acima | is_float


is_float

(PHP 3, PHP 4 , PHP 5)

is_float -- Informa se a variável é um float

Descrição

bool is_float ( mixed var)

Retorna TRUE se var é um float, FALSE senão.

Nota: Para verificar se a variável é um número ou uma string numérica (campos de formulários sempre são strings númericas), use is_numeric().

Veja mais em
is_bool(),
is_int(),
is_integer(),
is_numeric(),
is_string(),
is_array() e
is_object().

Anterior | Principal | Próxima
is_double | Acima | is_int


is_int

(PHP 3, PHP 4 , PHP 5)

is_int -- Informa se a variável é um inteiro

Descrição

bool is_int ( mixed var)

Retorna TRUE se var é um integer FALSE senão.

Nota: Para verificar se a variável é um número ou uma string numérica (campos de formulários sempre são strings numéricas), use is_numeric().

Veja mais em is_bool(),
is_float(),
is_integer(),
is_numeric(),
is_string(),
is_array() e
is_object().

Anterior | Principal | Próxima
is_float | Acima | is_integer


is_integer

is_integer -- Sinônimo de is_int()

Descrição

Esta é uma função sinônima (alias) para is_int().

Anterior | Principal | Próxima
is_int | Acima | is_long


is_long

is_long -- Sinônimo de is_int()

Descrição

Esta é uma função sinônima (alias) para is_int().

Anterior | Principal | Próxima
is_integer | Acima | is_null


is_null

(PHP 4 >= 4.0.4, PHP 5)

is_null -- Informa se a variável é NULL

Descrição

bool is_null ( mixed var)

Retorna TRUE se var é null, FALSE senão.

Veja o tipo NULL para saber quando a variável é considerada NULL e quando não.

Veja mais em NULL,
is_bool(),
is_numeric(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array(),
is_integer() e
is_real().

Anterior | Principal | Próxima
is_long | Acima | is_numeric


is_numeric

(PHP 4 , PHP 5)

is_numeric -- Informa se a variável é um número ou uma string numérica

Descrição

bool is_numeric ( mixed var)

Retorna TRUE se var é um número ou uma string numérica, FALSE senão.

Veja mais em is_bool(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array() e
is_integer().

Anterior | Principal | Próxima
is_null | Acima | is_object


is_object

(PHP 3, PHP 4 , PHP 5)

is_object -- Informa se a variável é um objeto

Descrição

bool is_object ( mixed var)

Retorna TRUE se var é um object, FALSE senão.

Veja mais em is_bool(),
is_int(),
is_integer(),
is_float(),
is_string() e
is_array().

Anterior | Principal | Próxima
is_numeric | Acima | is_real


is_real

is_real -- Função sinônima de is_float()

Descrição

Esta é uma função sinônima (alias) para is_float().

Anterior | Principal | Próxima
is_object | Acima | is_resource


is_resource

(PHP 4 , PHP 5)

is_resource -- Informa se a variável é um resource

Descrição

bool is_resource ( mixed var)

is_resource() Retorna TRUE se a variável var é do tipo resource, FALSE senão.

Exemplo 1. Usando is_resource()

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Can\'t connect : ' . mysql_error());
}

?>

Veja a documentação sobre o tipo resourcepara maiores informações.

Anterior | Principal | Próxima
is_real | Acima | is_scalar


is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar -- Informa se é uma váriavel escalar

Descrição

bool is_scalar ( mixed var)

is_scalar() retorna TRUE se a variável var for escalar, FALSE senão.

Variáveis escalares são as que contém integer, float, string ou boolean. os tipos array, object e resource não são escalares.

<?php
function show_var($var) {
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
// prints: 3.1416

show_var($proteins)
// prints:
// array(3) {
//   [0]=>
//   string(10) "hemoglobin"
//   [1]=>
//   string(20) "cytochrome c oxidase"
//   [2]=>
//   string(10) "ferredoxin"
// }
?>

Nota: is_scalar() não considera o tipo resource como um valor escalar, apesar de tipos resouce ser uma abstração de dados, atualmente baseados em inteiros. Esse detalhe de implementação poderá ser modificado futuramente.

Veja mais em is_bool(),
is_numeric(),
is_float(),
is_int(),
is_real(),
is_string(),
is_object(),
is_array() e
is_integer().

Anterior | Principal | Próxima
is_resource | Acima | is_string


is_string

(PHP 3, PHP 4 , PHP 5)

is_string -- Informa se a variável é uma string

Descrição

bool is_string ( mixed var)

Retorna TRUE se var é string, FALSE senão.

Veja mais em
is_bool(),
is_int(),
is_integer(),
is_float(),
is_real(),
is_object() e
is_array().

Anterior | Principal | Próxima
is_scalar | Acima | isset


isset

(PHP 3, PHP 4, PHP 5 )

isset -- Informa se a variável foi iniciada

Descrição

bool isset ( mixed var [, mixed var [, ...]])

Retorna TRUE se var existir; FALSE senão.

Se a variável for destruída com unset(), ela não existirá mais. isset() retornará FALSE se for usada em uma variável com o valor NULL. Lembrando que no PHP um byte NULL ("\0") é diferente da constante NULL.

Alerta: isset() só trabalha com variáveis, qualquer outra coisa passada como parâmetro resultará em um erro de sintaxe (parse error). Para testar constants você deverá usar a função defined().

<?php

$var = '';

// Será interpretado como &true; imprimindo o texto.
if (isset($var)) {
    print "Essa variável existe.";
}

// No próximo exemplo será usado var_dump para mostrar
// o valor de retorno de isset().

$a = "teste";
$b = "outrotest";

var_dump( isset($a) );      // TRUE
var_dump( isset ($a, $b) ); // TRUE

unset ($a);

var_dump( isset ($a) );     // FALSE
var_dump( isset ($a, $b) ); // FALSE

$foo = NULL;
var_dump( isset ($foo) );   // FALSE

?>

Isto também serve para chaves associativas de matrizes:

<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump( isset ($a['test']) );            // TRUE
var_dump( isset ($a['foo']) );             // FALSE
var_dump( isset ($a['hello']) );           // FALSE

// A chave 'hello' é igual a NULL sendo considerada como inexistente
// Se quiser verificar o valor NULL da chave tente:
var_dump( array_key_exists('hello', $a) ); // TRUE

?>

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Veja mais em empty(), unset(), defined(), Tabela de comparação de tipos, array_key_exists(), e controle o operador de controle erro @.

Anterior | Principal | Próxima
is_string | Acima | print_r


print_r

(PHP 4 , PHP 5)

print_r -- Prints human-readable information about a variable

Description

bool print_r ( mixed expression [, bool return])

Nota: The return parameter was added in PHP 4.3.0

print_r() displays information about a variable in a way that's readable by humans. If given a string, integer or float, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects. print_r() and var_export() will also show protected and private properties of objects with PHP 5, on the contrary to var_dump().

Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginning.

<pre>
<?php
    $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
    print_r ($a);
?>
</pre>

Which will output:

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

If you would like to capture the output of print_r(), use the return parameter. If this parameter is set to TRUE, print_r() will return its output, instead of printing it (which it does by default).

Exemplo 1. return parameter example

<?php
    $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
    $results = print_r($b, true); //$results now contains output from print_r
?>

Nota: If you need to capture the output of print_r() with a version of PHP prior to 4.3.0, use the output-control functions.

Nota: Prior to PHP 4.0.4, print_r() will continue forever if given an array or object that contains a direct or indirect reference to itself. An example is print_r($GLOBALS) because $GLOBALS is itself a global variable that contains a reference to itself.

See also ob_start(),
var_dump() and
var_export().

Anterior | Principal | Próxima
isset | Acima | serialize


serialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

serialize -- Generates a storable representation of a value

Description

string serialize ( mixed value)

serialize() returns a string containing a byte-stream representation of value that can be stored anywhere.

This is useful for storing or passing PHP values around without losing their type and structure.

To make the serialized string into a PHP value again, use unserialize(). serialize() handles all types, except the resource-type. You can even serialize() arrays that contain references to itself. References inside the array/object you are serialize()ing will also be stored.

When serializing objects, PHP will attempt to call the member function __sleep() prior to serialization. This is to allow the object to do any last minute clean-up, etc. prior to being serialized. Likewise, when the object is restored using unserialize() the __wakeup() member function is called.

Nota: In PHP 3, object properties will be serialized, but methods are lost. PHP 4 removes that limitation and restores both properties and methods. Please see the Serializing Objects section of Classes and Objects for more information.

Exemplo 1. serialize() example

<?php
// $session_data contains a multi-dimensional array with session
// information for the current user.  We use serialize() to store
// it in a database at the end of the request.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
        /* Something went wrong.. */
    }
}
?>

See Also: unserialize().

Anterior | Principal | Próxima
print_r | Acima | settype


settype

(PHP 3, PHP 4 , PHP 5)

settype -- Atribui um tipo para a variável

Descrição

bool settype ( mixed var, string type)

Atribui um tipo para a variável var baseado no type.

Os valores possíveis para type são:

  • "boolean" (ou, a partir do PHP 4.2.0, "bool")

  • "integer" (ou, a partir do PHP 4.2.0, "int")

  • "float" (somente para versões acima do PHP 4.2.0, para versões antigas use a variação depreciada "double")

  • "string"

  • "array"

  • "object"

  • "null" (a partir do PHP 4.2.0)

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplo 1. Exemplo da função settype()

<?php
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo é agora 5   (integer)
settype($bar, "string");  // $bar é agora "1" (string)
?>

Veja mais em gettype(), Moldando Tipos e Manipulação de tipos.

Anterior | Principal | Próxima
serialize | Acima | strval


strval

(PHP 3, PHP 4 , PHP 5)

strval -- Retorna o valor string de uma variável

Descrição

string strval ( mixed var)

Retorna o valor string da variável var. Veja a documentação sobre string para maiores informações de conversão de strings.

var somente para valores escalares. Nunca use strval() com arrays ou objetos.

Veja mais em floatval(), intval(), settype() e Manipulação de tipos.

Anterior | Principal | Próxima
settype | Acima | unserialize


unserialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

unserialize -- Creates a PHP value from a stored representation

Description

mixed unserialize ( string str)

unserialize() takes a single serialized variable (see serialize()) and converts it back into a PHP value. The converted value is returned, and can be an integer, float, string, array or object. In case the passed string is not unserializeable, FALSE is returned.

unserialize_callback_func directive: It's possible to set a callback-function which will be called, if an undefined class should be instantiated during unserializing. (to prevent getting an incomplete object "__PHP_Incomplete_Class".) Use your php.ini, ini_set() or .htaccess to define 'unserialize_callback_func'. Everytime an undefined class should be instantiated, it'll be called. To disable this feature just empty this setting. Also note that the directive unserialize_callback_func directive became available in PHP 4.2.0.

If the variable being unserialized is an object, after successfully reconstructing the object PHP will automatically attempt to call the __wakeup() member function (if it exists).

Exemplo 1. unserialize_callback_func example

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func directive available as of PHP 4.2.0
ini_set('unserialize_callback_func', 'mycallback'); // set your callback_function

function mycallback($classname)
{
    // just include a file containing your classdefinition
    // you get $classname to figure out which classdefinition is required
}
?>

Nota: In PHP 3, methods are not preserved when unserializing a serialized object. PHP 4 removes that limitation and restores both properties and methods. Please see the Serializing Objects section of Classes and Objects or more information.

Exemplo 2. unserialize() example

<?php
// Here, we use unserialize() to load session data to the
// $session_data array from the string selected from a database.
// This example complements the one described with serialize().

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
    // if the execute or fetch fails, initialize to empty array
    $session_data = array();
} else {
    // we should now have the serialized data in $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // something went wrong, initialize to empty array
        $session_data = array();
    }
}
?>

See also serialize().

Anterior | Principal | Próxima
strval | Acima | unset


unset

(PHP 3, PHP 4, PHP 5 )

unset -- Destrói a variável especificada

Descrição

void unset ( mixed var [, mixed var [, ...]])

unset() destrói a variável especificada. Lembrando que no PHP 3, unset() sempre retornará TRUE (atualmente, o valor inteiro 1). No PHP 4, porém, unset() não é uma função verdadeira: agora é um construtor da linguagem. Como tal, nenhum valor é retornado, se tentar pegar o valor de unset() um erro de sintaxe (parse error) irá acontecer.

Exemplo 1. Exemplo de unset()

<?php
// destrói uma única variável
unset ($foo);

// destrói um único elemento de uma matriz
unset ($bar['quux']);

// destrói mais de uma variável
unset ($foo1, $foo2, $foo3);
?>

O comportamento de unset() pode variar dentro de uma função dependendo do tipo de variável que você está tentando destruir.

Se utilizar unset() em uma variável global dentro de uma função, somente a variável local será destruída. A variável no ambiente que foi chamada terá o mesmo valor como antes da execução de unset().

<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

O exemplo acima deve mostrar:

bar

Se a variável for passada por referencia e a função unset() estiver dentro de uma função, apenas a variável local será destruída. A variável no ambiente que chamou a função onde esta unset() irá manter o mesmo valor de antes da utilização de unset().

<?php
function foo(&$bar) {
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

O exemplo acima deve mostrar:

something
something

Se for utilizado unset() com uma variável estática dentro de uma função, unset() destrói a variável e todas as suas referencias.

<?php
function foo() {
    static $a;
    $a++;
    echo "$a\n";
    unset($a);
}

foo();
foo();
foo();
?>

O exemplo acima deve mostrar:

1
2
3

Se você quiser usar a função unset() com uma variável global dentro de uma função, você poderá usar a matriz $GLOBALS para faze-lo:

<?php
function foo() {
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Veja mais em isset(),
empty() e
array_splice().

Anterior | Principal | Próxima
unserialize | Acima | var_dump


var_dump

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

var_dump -- Mostra informações sobre a variável

Descrição

void var_dump ( mixed expression [, mixed expression [, ...]])

Esta função mostrará uma representação estruturada sobre uma ou mais expressões, incluindo o tipo e o valor. Matrizes são exploradas recursivamente com valores identados na estrutura mostrada.

Dica: Como toda saída é normalmente enviada direto para o browser, você pode usar as Funções de Controle de Output para capturar o resultado e guardá-lo em uma string (por exemplo).

Compare var_dump() com print_r().

Exemplo 1. Exemplo da função var_dump()

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);

/* mostrará:
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

*/

$b = 3.1;
$c = TRUE;
var_dump($b,$c);

/* mostrará:
float(3.1)
bool(true)

*/
?>
</pre>

Anterior | Principal | Próxima
unset | Acima | var_export


var_export

(PHP 4 >= 4.2.0, PHP 5)

var_export -- Mostra ou retorna uma representação estruturada de uma variável

Descrição

mixed var_export ( mixed expression [, bool return])

Esta função retorna uma representação estruturada sobre a variável passada como parâmetro. É semelhante a função var_dump() com exceção que a representação retornada é um código PHP válido.

Você poderá retornar a representação para uma variável usando TRUE no segundo parâmetro da função.

Compare var_export() com var_dump().

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export ($a);

/* mostrará:
array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
*/

$b = 3.1;
$v = var_export($b, TRUE);
echo $v;

/* mostrará:
3.1
*/
?>
</pre>

Anterior | Principal | Próxima
var_dump | Acima | vpopmail Functions


vpopmail Functions

Manual do PHP
Anterior Próxima

CXIII. vpopmail Functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

This extension has been moved from PHP as of PHP 4.3.0 and now vpopmail lives in PECL.

Instalação

In PHP 4, these functions are only available if PHP was configured with --with-vpopmail[=DIR].

Índice
vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain
vpopmail_add_alias_domain -- Add an alias for a virtual domain
vpopmail_add_domain_ex -- Add a new virtual domain
vpopmail_add_domain -- Add a new virtual domain
vpopmail_add_user -- Add a new user to the specified virtual domain
vpopmail_alias_add -- insert a virtual alias
vpopmail_alias_del_domain -- deletes all virtual aliases of a domain
vpopmail_alias_del -- deletes all virtual aliases of a user
vpopmail_alias_get_all -- get all lines of an alias for a domain
vpopmail_alias_get -- get all lines of an alias for a domain
vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false
vpopmail_del_domain_ex -- Delete a virtual domain
vpopmail_del_domain -- Delete a virtual domain
vpopmail_del_user -- Delete a user from a virtual domain
vpopmail_error -- Get text message for last vpopmail error. Returns string
vpopmail_passwd -- Change a virtual user's password
vpopmail_set_user_quota -- Sets a virtual user's quota

Anterior | Principal | Próxima
var_export | Acima | vpopmail_add_alias_domain_ex


vpopmail_add_alias_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain

Description

bool vpopmail_add_alias_domain_ex ( string olddomain, string newdomain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail Functions | Acima | vpopmail_add_alias_domain


vpopmail_add_alias_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain -- Add an alias for a virtual domain

Description

bool vpopmail_add_alias_domain ( string domain, string aliasdomain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_add_alias_domain_ex | Acima | vpopmail_add_domain_ex


vpopmail_add_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_domain_ex -- Add a new virtual domain

Description

bool vpopmail_add_domain_ex ( string domain, string passwd [, string quota [, string bounce [, bool apop]]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_add_alias_domain | Acima | vpopmail_add_domain


vpopmail_add_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_domain -- Add a new virtual domain

Description

bool vpopmail_add_domain ( string domain, string dir, int uid, int gid)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_add_domain_ex | Acima | vpopmail_add_user


vpopmail_add_user

(4.0.5 - 4.2.3 only)

vpopmail_add_user -- Add a new user to the specified virtual domain

Description

bool vpopmail_add_user ( string user, string domain, string password [, string gecos [, bool apop]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_add_domain | Acima | vpopmail_alias_add


vpopmail_alias_add

(4.1.0 - 4.2.3 only)

vpopmail_alias_add -- insert a virtual alias

Description

bool vpopmail_alias_add ( string user, string domain, string alias)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_add_user | Acima | vpopmail_alias_del_domain


vpopmail_alias_del_domain

(4.1.0 - 4.2.3 only)

vpopmail_alias_del_domain -- deletes all virtual aliases of a domain

Description

bool vpopmail_alias_del_domain ( string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_alias_add | Acima | vpopmail_alias_del


vpopmail_alias_del

(4.1.0 - 4.2.3 only)

vpopmail_alias_del -- deletes all virtual aliases of a user

Description

bool vpopmail_alias_del ( string user, string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_alias_del_domain | Acima | vpopmail_alias_get_all


vpopmail_alias_get_all

(4.1.0 - 4.2.3 only)

vpopmail_alias_get_all -- get all lines of an alias for a domain

Description

array vpopmail_alias_get_all ( string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_alias_del | Acima | vpopmail_alias_get


vpopmail_alias_get

(4.1.0 - 4.2.3 only)

vpopmail_alias_get -- get all lines of an alias for a domain

Description

array vpopmail_alias_get ( string alias, string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_alias_get_all | Acima | vpopmail_auth_user


vpopmail_auth_user

(4.0.5 - 4.2.3 only)

vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false

Description

bool vpopmail_auth_user ( string user, string domain, string password [, string apop])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_alias_get | Acima | vpopmail_del_domain_ex


vpopmail_del_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_del_domain_ex -- Delete a virtual domain

Description

bool vpopmail_del_domain_ex ( string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_auth_user | Acima | vpopmail_del_domain


vpopmail_del_domain

(4.0.5 - 4.2.3 only)

vpopmail_del_domain -- Delete a virtual domain

Description

bool vpopmail_del_domain ( string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_del_domain_ex | Acima | vpopmail_del_user


vpopmail_del_user

(4.0.5 - 4.2.3 only)

vpopmail_del_user -- Delete a user from a virtual domain

Description

bool vpopmail_del_user ( string user, string domain)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_del_domain | Acima | vpopmail_error


vpopmail_error

(4.0.5 - 4.2.3 only)

vpopmail_error -- Get text message for last vpopmail error. Returns string

Description

string vpopmail_error ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_del_user | Acima | vpopmail_passwd


vpopmail_passwd

(4.0.5 - 4.2.3 only)

vpopmail_passwd -- Change a virtual user's password

Description

bool vpopmail_passwd ( string user, string domain, string password)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_error | Acima | vpopmail_set_user_quota


vpopmail_set_user_quota

(4.0.5 - 4.2.3 only)

vpopmail_set_user_quota -- Sets a virtual user's quota

Description

bool vpopmail_set_user_quota ( string user, string domain, string quota)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
vpopmail_passwd | Acima | W32api Functions


W32api Functions

Manual do PHP
Anterior Próxima

CXIV. W32api Functions

Introdução

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Requisitos

This extension will only work on Windows systems.

Instalação

Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

DC_MICROSOFT (integer)

DC_BORLAND (integer)

DC_CALL_CDECL (integer)

DC_CALL_STD (integer)

DC_RETVAL_MATH4 (integer)

DC_RETVAL_MATH8 (integer)

DC_CALL_STD_BO (integer)

DC_CALL_STD_MS (integer)

DC_CALL_STD_M8 (integer)

DC_FLAG_ARGPTR (integer)

Exemplos

This example gets the amount of time the system has been running and displays it in a message box.

Exemplo 1. Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                "\r\n %d Milliseconds, or \r\n %d Seconds" .
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
Índice
w32api_deftype -- Defines a type for use with other w32api_functions
w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed
w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name
w32api_register_function -- Registers function function_name from library with PHP
w32api_set_call_method -- Sets the calling method used

Anterior | Principal | Próxima
vpopmail_set_user_quota | Acima | w32api_deftype


w32api_deftype

(4.2.0 - 4.2.3 only)

w32api_deftype -- Defines a type for use with other w32api_functions

Description

bool w32api_deftype ( string typename, string member1_type, string member1_name [, string ... [, string ...]])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

If you would like to define a type for a w32api call, you need to call w32api_deftype(). This function takes 2n+1 arguments, where n is the number of members the type has. The first argument is the name of the type. After that is the type of the member followed by the members name (in pairs). A member type can be a user defined type. All the type names are case sensitive. Built in type names should be provided in lowercase. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
W32api Functions | Acima | w32api_init_dtype


w32api_init_dtype

(4.2.0 - 4.2.3 only)

w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed

Description

resource w32api_init_dtype ( string typename, mixed value [, mixed ...])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function creates an instance of the data type named typename, filling in the values of the data type. The typename parameter is case sensitive. You should give the values in the same order as you defined the data type with w32api_deftype(). The type of the resource returned is dynaparm.

Anterior | Principal | Próxima
w32api_deftype | Acima | w32api_invoke_function


w32api_invoke_function

(4.2.0 - 4.2.3 only)

w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name

Description

mixed w32api_invoke_function ( string funcname, mixed argument [, mixed ...])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

w32api_invoke_function() tries to find the previously registered function, named funcname, passing the parameters you provided. The return type is the one you set when you registered the function, the value is the one returned by the function itself. Any of the arguments can be of any PHP type or w32api_deftype() defined type, as needed.

Anterior | Principal | Próxima
w32api_init_dtype | Acima | w32api_register_function


w32api_register_function

(4.2.0 - 4.2.3 only)

w32api_register_function -- Registers function function_name from library with PHP

Description

bool w32api_register_function ( string library, string function_name, string return_type)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function tries to find the function_name function in libary, and tries to import it into PHP. The function will be registered with the given return_type. This type can be a generic PHP type, or a type defined with w32api_deftype(). All type names are case sensitive. Built in type names should be provided in lowercase. Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
w32api_invoke_function | Acima | w32api_set_call_method


w32api_set_call_method

(4.2.0 - 4.2.3 only)

w32api_set_call_method -- Sets the calling method used

Description

void w32api_set_call_method ( int method)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

This function sets the method call type. The parameter can be one of the constants DC_CALL_CDECL or DC_CALL_STD. The extension default is DC_CALL_STD.

Anterior | Principal | Próxima
w32api_register_function | Acima | WDDX Functions


WDDX Functions

Manual do PHP
Anterior Próxima

CXV. WDDX Functions

Introdução

These functions are intended for work with WDDX.

Requisitos

In order to use WDDX, you will need to install the expat library (which comes with Apache 1.3.7 or higher).

Instalação

After installing expat compile PHP with --enable-wddx.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

All the functions that serialize variables use the first element of an array to determine whether the array is to be serialized into an array or structure. If the first element has string key, then it is serialized into a structure, otherwise, into an array.

Exemplo 1. Serializing a single value with WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Exemplo 2. Using incremental packets with WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Nota: If you want to serialize non-ASCII characters you have to set the appropriate locale before doing so (see setlocale()).

Índice
wddx_add_vars -- Add variables to a WDDX packet with the specified ID
wddx_deserialize -- Deserializes a WDDX packet
wddx_packet_end -- Ends a WDDX packet with the specified ID
wddx_packet_start -- Starts a new WDDX packet with structure inside it
wddx_serialize_value -- Serialize a single value into a WDDX packet
wddx_serialize_vars -- Serialize variables into a WDDX packet

Anterior | Principal | Próxima
w32api_set_call_method | Acima | wddx_add_vars


wddx_add_vars

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_add_vars -- Add variables to a WDDX packet with the specified ID

Description

bool wddx_add_vars ( int packet_id, mixed name_var [, mixed ...])

wddx_add_vars() is used to serialize passed variables and add the result to the packet specified by the packet_id. The variables to be serialized are specified in exactly the same way as wddx_serialize_vars().

Anterior | Principal | Próxima
WDDX Functions | Acima | wddx_deserialize


wddx_deserialize

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_deserialize -- Deserializes a WDDX packet

Description

mixed wddx_deserialize ( string packet)

wddx_deserialize() takes a packet string and deserializes it. It returns the result which can be string, number, or array. Note that structures are deserialized into associative arrays.

Anterior | Principal | Próxima
wddx_add_vars | Acima | wddx_packet_end


wddx_packet_end

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_packet_end -- Ends a WDDX packet with the specified ID

Description

string wddx_packet_end ( int packet_id)

wddx_packet_end() ends the WDDX packet specified by the packet_id and returns the string with the packet.

Anterior | Principal | Próxima
wddx_deserialize | Acima | wddx_packet_start


wddx_packet_start

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_packet_start -- Starts a new WDDX packet with structure inside it

Description

int wddx_packet_start ( [string comment])

Use wddx_packet_start() to start a new WDDX packet for incremental addition of variables. It takes an optional comment string and returns a packet ID for use in later functions. It automatically creates a structure definition inside the packet to contain the variables.

Anterior | Principal | Próxima
wddx_packet_end | Acima | wddx_serialize_value


wddx_serialize_value

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_serialize_value -- Serialize a single value into a WDDX packet

Description

string wddx_serialize_value ( mixed var [, string comment])

wddx_serialize_value() is used to create a WDDX packet from a single given value. It takes the value contained in var, and an optional comment string that appears in the packet header, and returns the WDDX packet.

Anterior | Principal | Próxima
wddx_packet_start | Acima | wddx_serialize_vars


wddx_serialize_vars

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_serialize_vars -- Serialize variables into a WDDX packet

Description

string wddx_serialize_vars ( mixed var_name [, mixed ...])

wddx_serialize_vars() is used to create a WDDX packet with a structure that contains the serialized representation of the passed variables.

wddx_serialize_vars() takes a variable number of arguments, each of which can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

Exemplo 1. wddx_serialize_vars() example

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

The above example will produce:
<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>

Anterior | Principal | Próxima
wddx_serialize_value | Acima | XML, Analisadores


XML, Analisadores

Manual do PHP
Anterior Próxima

CXVI. XML, Analisadores

Introdução

XML (eXtensible Markup Language) é um formato de dados para intercâmbio de documentos na Web. Ele é um padrão definido pela The World Wide Web consortium (W3C). Informações sobre XML e tecnologias relacionadas pode, ser encontradas em http://www.w3.org/XML/.

Esta extensão do PHP implementa suporte para o James Clark's expat no PHP. Esta ferramenta permite que você analise, mas não valide, documentos XML. Ele suporta três source character encodings também fornecido pelo PHP: US-ASCII, ISO-8859-1 e UTF-8. UTF-16 não é suportado.

Esta extensão te permite criar analisadores XML e então definir manipuladores (handlers) para diferentes eventos XML. Cada analisador XML também tem alguns parâmetros que você pode ajustar.

Requisitos

Esta extensão utiliza o expat, que pode ser encontrado em http://www.jclark.com/xml/expat.html. O makefile que vem com o expat, por definição não constrói uma biblioteca, você pode usar as regras de 'make' para isso:
libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Um pacote dos fontes RPM do expat podem ser encontrados em http://sourceforge.net/projects/expat/.

Instalação

Estas funções estão por definição habilitadas, usando o pacote expat library. Você pode desabilitar o suporte a XML com --disable-xml. Se você compilou o PHP como um módulo do Apache 1.3.9 ou mais novo, o PHP automaticamente utilizará o pacote expat library do Apache. Regularmente você não quer utilizar a configuração do pacote expat library do PHP --with-expat-dir=DIR, onde DIR apontaria para o diretório base de instalação do expat.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

xml

O recurso xml enquanto retornado por xml_parser_create() e xml_parser_create_ns() refere-se a uma instância do analisador xml para ser usada coms as funções fornecidas por esta extensão.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

XML_ERROR_NONE (integer)

XML_ERROR_NO_MEMORY (integer)

XML_ERROR_SYNTAX (integer)

XML_ERROR_NO_ELEMENTS (integer)

XML_ERROR_INVALID_TOKEN (integer)

XML_ERROR_UNCLOSED_TOKEN (integer)

XML_ERROR_PARTIAL_CHAR (integer)

XML_ERROR_TAG_MISMATCH (integer)

XML_ERROR_DUPLICATE_ATTRIBUTE (integer)

XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)

XML_ERROR_PARAM_ENTITY_REF (integer)

XML_ERROR_UNDEFINED_ENTITY (integer)

XML_ERROR_RECURSIVE_ENTITY_REF (integer)

XML_ERROR_ASYNC_ENTITY (integer)

XML_ERROR_BAD_CHAR_REF (integer)

XML_ERROR_BINARY_ENTITY_REF (integer)

XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)

XML_ERROR_MISPLACED_XML_PI (integer)

XML_ERROR_UNKNOWN_ENCODING (integer)

XML_ERROR_INCORRECT_ENCODING (integer)

XML_ERROR_UNCLOSED_CDATA_SECTION (integer)

XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)

XML_OPTION_CASE_FOLDING (integer)

XML_OPTION_TARGET_ENCODING (integer)

XML_OPTION_SKIP_TAGSTART (integer)

XML_OPTION_SKIP_WHITE (integer)

Manipuladores (handlers) de Evento

Os manipuladores (handlers) de eventos de XML definidos são:

Tabela 1. Manipuladores XML Suportados

função do PHP para definir o manipulador(handler) | Descrição do evento
xml_set_element_handler() | Eventos elementares são emitidos toda vez que o analisador XML o início ou o fim das tags. Há manipuladores (handlers) separadores para tags de início e tags de fim.
xml_set_character_data_handler() | Dados de caractere são aproximadamente todo o conteúdo de documentos XML, incluindo espaços em branco entre as tags. Note que o analisador XML não adiciona ou remove qualquer espaço em branco, ele está pronto para a aplicação se você decidir que espaços em branco são significativos.
xml_set_processing_instruction_handler() | Programadores de PHP já estariam familiarizados com instruções de processo (PIs). <?php ?> é uma instrução de processo, onde php é chamada de o "PI target". O tratamento destes são application-specific, exceto que todos os PI targets iniciados com "XML" estão reservados.
xml_set_default_handler() | O que não vai para outro manipulador vai para o manipulador padrão. Você conseguirá coisas como o XML e declarações do tipo de documento no manipulador padrão.
xml_set_unparsed_entity_decl_handler() | Este manipulador será chamado por uma declaração de um entity não analisada (NDATA).
xml_set_notation_decl_handler() | Este manipulador é chamado pela declaração de uma nota.
xml_set_external_entity_ref_handler() | Este manipulador é chamado quando o analisador XML encontra uma referência para uma entity geral analizada externamente. Isto pode ser uma referência para um arquivo ou URL, por examplo. Veja Um exemplo de entity externa para uma demonstração.

Case Folding

As funções de elementos do manipulador podem conseguir os nomes dos elementos case-folded. Case-folding é definida pelo padrão XML como "um processo aplicado para uma sequência de caracateres, em que aqueles identificados como minúsculos são substituidos pelos seus maiúsculos equivalentes". Em outras palavras, quando vai pro XML, case-folding simplesmente significa mudar pra maiúsculas.

Por definição, todos os nomes de elementos que são passados para as funções de manipulador são case-folded. Este comportamento pode ser perguntado e controlado pelo analisador XML com o xml_parser_get_option() e as funções xml_parser_set_option(), respectivamente.

Error Codes

As seguintes constantes são definidas para erros no código XML (conforme retornado por xml_parse()):

XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING

Codificação de Caracter

A Extensão XML do PHP suporta o caracter Unicode definido por character encodings (codificação de caracteres) diferentes. Há dois tipos de codificação de caracteres, source encoding e target encoding. A apresentação interna do PHP do documento é sempre codificada com UTF-8.

Source encoding é feita quando um documento XML é analisado. Em criando um analisador XML, um source encoding pode ser especificado (Esta codificação não poderá ser mudada após o tempo de vida do analisador XML). As codificações suportadas são ISO-8859-1, US-ASCII e UTF-8. O segundo são codificações single-byte, que significa que cada caractere é representado por um byte simples. UTF-8 pode codificar caracteres compostos por um número de bits variável (acima de 21) em um de seus 4 bytes. O source encoding padrão utilizado pelo PHP é ISO-8859-1.

Target encoding é feito quando o PHP passa dados para as funções do analisador XML. Quando um analisador XML é criado, o target encoding é definido igual ao source encoding, mas este pode ser mudado em qualquer ponto. O target encoding afetará dados de caracter tão bem como nome de tags e processando alvos da instrução.

Se o analisador XML encontra caracteres de fora da linha que seu source encoding é capaz de detalhar, ele retornará um erro.

Se PHP encontra caracteres no documento XML analisado que não podem ser detalhados selecionados com target encoding, os caracteres com problema serão "demoted". Atualmente, isto significa que tais caracteres serão substituidos por um sinal de interrogação.

Exemplos

Aqui estão alguns exemplos de scripts PHP analisando documentos XML.

Exemplo estruturado de elementos XML

Este primeiro exemplo mostra a estrutura de elementos iniciais num documento com distanciamento da margem.

Exemplo 1. Mostra estrutura do elemento XML

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs) {
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name) {
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

Exemplo arrumação de Tag XML

Exemplo 2. Arrumar XML to HTML

Este exemplo arruma tags do documento XML diretamente para tags HTML. Elementos não encontrados no "array de arrumação" são ignorados. É claro, este exemplo trabalhará apenas com um tipo de documento XML específico.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs) {
    global $map_array;
    if ($htmltag == $map_array[$name]) {
        echo "<$htmltag>";
    }
}

function endElement($parser, $name) {
    global $map_array;
    if ($htmltag == $map_array[$name]) {
        echo "</$htmltag>";
    }
}

function characterData($parser, $data) {
    echo $data;
}

$xml_parser = xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

Exemplo XML de Entity externa

Este exemplo destaca o código XML. Ele ilusta como utilizar um analisador de referência a uma entity externa para incluir e analisar outros documentos, tão bem como PIs (instruções de processo) podem ser processadas, e uma forma de determinar "trust" para PIs contendo códigos.

Documentos XML que podem ser utilizados para este exemplo são encontrados abaixo do exemplo (xmltest.xml e xmltest2.xml.)

Exemplo 3. Exemplo de Entity externa

<?php
$file = "xmltest.xml";

function trustedFile($file) {
    // only trust local files owned by ourselves
    if (!eregi("^([a-z]+)://", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs) {
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (sizeof($attribs)) {
        while (list($k, $v) = each($attribs)) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name) {
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data) {
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data) {
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // If the parsed document is "trusted", we say it is safe
            // to execute PHP code inside it.  If not, display the code
            // instead.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data) {
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file) {
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Exemplo 4. xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Título &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>Sobre este documento</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version '.phpversion(); ?>
  </para>
 </section>
</chapter>

Este arquivo está incluido de xmltest.xml:

Exemplo 5. xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php print "This is some more PHP code being executed."; ?>
</foo>

Índice
utf8_decode -- Converte uma string com caracteres ISO-8859-1 codificadas com UTF-8 para single-byte ISO-8859-1.
utf8_encode -- Codifica um string ISO-8859-1 para UTF-8
xml_error_string -- Obtém uma string de erro do analisador XML
xml_get_current_byte_index -- Obtém o índice do byte atual para um analisador XML
xml_get_current_column_number -- Obtém o número da coluna atual para um analisador XML
xml_get_current_line_number -- Obtém o número da linha para um analisador XML
xml_get_error_code -- Obtém um código de erro do analisador XML
xml_parse_into_struct -- Analisa dados XML dentro de uma estrutura de array
xml_parse -- Inicia a análise em um documento XML
xml_parser_create_ns -- Cria um analisador XML com suporte a namespace (uma estrutura do XML)
xml_parser_create -- cria um analisador XML
xml_parser_free -- Free an XML parser
xml_parser_get_option -- Get options from an XML parser
xml_parser_set_option -- Set options in an XML parser
xml_set_character_data_handler -- Set up character data handler
xml_set_default_handler -- Set up default handler
xml_set_element_handler -- Set up start and end element handlers
xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler
xml_set_external_entity_ref_handler -- Set up external entity reference handler
xml_set_notation_decl_handler -- Set up notation declaration handler
xml_set_object -- Use XML Parser within an object
xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler
xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler
xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Anterior | Principal | Próxima
wddx_serialize_vars | Acima | utf8_decode


utf8_decode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

utf8_decode -- Converte uma string com caracteres ISO-8859-1 codificadas com UTF-8 para single-byte ISO-8859-1.

Descrição

string utf8_decode ( string data)

Esta função decodifica data, assumido ser codificada em UTF-8, para ISO-8859-1.

Veja também utf8_encode() para uma explicação da codificação UTF-8.

Anterior | Principal | Próxima
XML, Analisadores | Acima | utf8_encode


utf8_encode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

utf8_encode -- Codifica um string ISO-8859-1 para UTF-8

Descrição

string utf8_encode ( string data)

Esta função codifica uma string data para UTF-8, e retorna uma versão codificada. UTF-8 é o mecanismo padrão usado pela Unicode para codificação de valores amplos de caractere dentro de um byte stream. UTF-8 é transparente para caracteres simplesASCII, é auto-sincronizado (quer dizer que isso é possível para um programa compreender onde nos caracteres bytestream começar) e pode ser usado funções de comparção de strings normais para seleção e semelhança. PHP codifica caracteres UTF-8 em até quatro bytes, desse jeito:

Tabela 1. UTF-8 encoding

bytes | bits | representation
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Cada b representa um bit que pode ser usado para guardar dados de caracter.

Anterior | Principal | Próxima
utf8_decode | Acima | xml_error_string


xml_error_string

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_error_string -- Obtém uma string de erro do analisador XML

Descrição

string xml_error_string ( int code)

code

Um código de erro de xml_get_error_code().

Retorna uma string com uma descrição textual do código de erro code, ou FALSE se nenhuma descrição for encontrada.

Anterior | Principal | Próxima
utf8_encode | Acima | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_byte_index -- Obtém o índice do byte atual para um analisador XML

Descrição

int xml_get_current_byte_index ( resource parser)

parser

Uma referência ao analisador XML para conseguir o índice do byte.

Esta função retorna FALSE Se parser não se refere a um analisador válido, senão ele retorna qual o índice do byte o analisador está atualmente em seu registro de dados (buffer data) (começando do 0).

Anterior | Principal | Próxima
xml_error_string | Acima | xml_get_current_column_number


xml_get_current_column_number

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_column_number -- Obtém o número da coluna atual para um analisador XML

Descrição

int xml_get_current_column_number ( resource parser)

parser

Uma referência ao analisador XML obter o número da coluna.

Esta função retorna FALSE se parser não se refere a um analisador válido, senão ele retorna qual coluna na linha atual (como dado por xml_get_current_line_number()) o analisador está atualmente.

Anterior | Principal | Próxima
xml_get_current_byte_index | Acima | xml_get_current_line_number


xml_get_current_line_number

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_line_number -- Obtém o número da linha para um analisador XML

Descrição

int xml_get_current_line_number ( resource parser)

parser

Uma referência ao analisador XML obter o número da linha.

Esta função retorna FALSE se parser não se refere a um analisador válido, senão ele retorna qual linha o analisador está atualmente em seu registro de dados (data buffer).

Anterior | Principal | Próxima
xml_get_current_column_number | Acima | xml_get_error_code


xml_get_error_code

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_error_code -- Obtém um código de erro do analisador XML

Descrição

int xml_get_error_code ( resource parser)

parser

Uma referência para o analisador XML obter código de erro.

Esta função retorna FALSE se parser não se refere a um analisadore válido, senão ele retorna um dos códigos de erro listados na seção código de erros section.

Anterior | Principal | Próxima
xml_get_current_line_number | Acima | xml_parse_into_struct


xml_parse_into_struct

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

xml_parse_into_struct -- Analisa dados XML dentro de uma estrutura de array

Descrição

int xml_parse_into_struct ( resource parser, string data, array &values [, array &index])

Esta função analisa uma arquivo XML dentro de 2 estruturas de array paralelas, um (index) contendo indicadores para a localização dos valores apropriados nos values do array. Estes dois últimos parâmetros deve ser passados por referência.

Abaixo tem um exemplo que ilustra a estrutura interna dos arrays sendo gerados pela função. Nós usamos uma simples note tag imbutida dentro da para tag, e quando nós analisamos isto exibe as estruturas geredas:

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

Quando nós executarmos o código, a saída será:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Análise dirigida por eventos (Event-driven parsing) (baseada nabiblioteca do expat) pode complicado quando você tem um documento XML que é complexo. Esta função não produz um objeto no estilo DOM, mas gera estruturas cômodas de serem organizadas em uma forma de árvore. Assim, nós podemos criar objetos representando os dados nos arquivos facilmente. Vamos considerar o seguinte arquivo representando um pequeno banco de dados de informações de aminoácidos:

Exemplo 1. moldb.xml - pequeno banco de dados de informações moleculares

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>
E alguns códigos para analisar o documento e gerar os obejetos apropriados:

Exemplo 2. parsemoldb.php - analisa moldb.xml e cria o array dos objetos moleculares

<?php

class AminoAcid {
    var $name;  // aa name
    var $symbol;    // three letter symbol
    var $code;  // one letter code
    var $type;  // hydrophobic, charged or neutral

    function AminoAcid ($aa) {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // lê o banco de dados XML de aminoácidos
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                    $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i=0; $i < count($mvalues); $i++)
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);

?>
After executing parsemoldb.php, a variável $db contém um array dos objetos de AminoAcid, e a saída do script confirma isso:

** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Anterior | Principal | Próxima
xml_get_error_code | Acima | xml_parse


xml_parse

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parse -- Inicia a análise em um documento XML

Descrição

bool xml_parse ( resource parser, string data [, bool is_final])

parser

Uma referência ao analisador XML a ser usado.

data

Pedaço dos dados para análise. Um documento pode ser análisado em partes pelo chamado de xml_parse() várias vezes com novos dados, tão longos quanto o parâmetro is_final está definido e TRUE quando os últimos dados são analisados.

is_final (opcional)

Se definido e TRUE, data é a última parte dos dados enviados nesta análise.

Quando o documento XML é analisado, os manipuladores (handlers) para os eventos configurados são chamados tantas vezes quanto necessário, depois que esta função retorna TRUE ou FALSE.

  TRUE é retornado se a análise foi bem sucedida, FALSE se ela não foi,
ou se o parser não se refere a um analisador
 válido. Em análises mal sucedidas, informação de erro pode ser retomada
  com xml_get_error_code(),
  xml_error_string(),
  xml_get_current_line_number(),
  xml_get_current_column_number() e
  xml_get_current_byte_index().

Anterior | Principal | Próxima
xml_parse_into_struct | Acima | xml_parser_create_ns


xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_ns -- Cria um analisador XML com suporte a namespace (uma estrutura do XML)

Descrição

resource xml_parser_create_ns ( [string encoding [, string separator]])

xml_parser_create_ns() cria um novo analisador XML com suporte namespace do XML e retorna um resource handle fazendo referência para ele ser usado por outras funções XML.

Com um analisador ciente de namespace (uma estrutura do XML) parâmetros de tags passados para várias funções de manipuladores consistirão de namespace e nome da tag separados pela string especificada em seperator ou ':' por definição.

O parâmetro opcional encoding (codificação) especifíca a codificação de caractere da entrada XML a ser analisada. Codificações suportadas são "ISO-8859-1", que é também a padrão se nenhuma encoding estiver especificada, "UTF-8" e "US-ASCII".

Veja també xml_parser_create(), e xml_parser_free().

Anterior | Principal | Próxima
xml_parse | Acima | xml_parser_create


xml_parser_create

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_create -- cria um analisador XML

Descrição

resource xml_parser_create ( [string encoding])

xml_parser_create() cria um novo analisador XML e retorna um resource handle fazendo referência a ele para ser usado por outras funções XML.

O parâmetro opcional encoding (codificação) especifíca a codificação do caractere da entrada XML a ser analisada. Codificações suportadas são "ISO-8859-1", que é também a padrão se nenhum encoding é especificado, "UTF-8" e "US-ASCII".

Veja também xml_parser_create_ns() e xml_parser_free().

Anterior | Principal | Próxima
xml_parser_create_ns | Acima | xml_parser_free


xml_parser_free

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_free -- Free an XML parser

Descrição

bool xml_parser_free ( resource parser)

parser

Uma referência para o analisador XML (to free) esgotar .

Esta função retorna FALSE se parser (analisador) não se refere a um analisador válido, senão ele (frees) esgota o analisador e retorna TRUE.

Anterior | Principal | Próxima
xml_parser_create | Acima | xml_parser_get_option


xml_parser_get_option

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_get_option -- Get options from an XML parser

Description

mixed xml_parser_get_option ( resource parser, int option)

parser

A reference to the XML parser to get an option from.

option

Which option to fetch. See xml_parser_set_option() for a list of options.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option's value is returned.

See xml_parser_set_option() for the list of options.

Anterior | Principal | Próxima
xml_parser_free | Acima | xml_parser_set_option


xml_parser_set_option

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_set_option -- Set options in an XML parser

Description

bool xml_parser_set_option ( resource parser, int option, mixed value)

parser

A reference to the XML parser to set an option in.

option

Which option to set. See below.

value

The option's new value.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option is set and TRUE is returned.

The following options are available:

Tabela 1. XML parser options

Option constant | Data type | Description
XML_OPTION_CASE_FOLDING | integer | Controls whether case-folding is enabled for this XML parser. Enabled by default.
XML_OPTION_TARGET_ENCODING | string | Sets which target encoding to use in this XML parser. By default, it is set to the same as the source encoding used by xml_parser_create(). Supported target encodings are ISO-8859-1, US-ASCII and UTF-8.

Anterior | Principal | Próxima
xml_parser_get_option | Acima | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_character_data_handler -- Set up character data handler

Description

bool xml_set_character_data_handler ( resource parser, callback handler)

Sets the character data handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data as a string.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_parser_set_option | Acima | xml_set_default_handler


xml_set_default_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_default_handler -- Set up default handler

Description

bool xml_set_default_handler ( resource parser, callback handler)

Sets the default handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data. This may be the XML declaration, document type declaration, entities or other data for which no other handler exists.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_character_data_handler | Acima | xml_set_element_handler


xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_element_handler -- Set up start and end element handlers

Description

bool xml_set_element_handler ( resource parser, callback start_element_handler, callback end_element_handler)

Sets the element handler functions for the XML parser parser. start_element_handler and end_element_handler are strings containing the names of functions that must exist when xml_parse() is called for parser.

The function named by start_element_handler must accept three parameters: start_element_handler ( resource parser, string name, array attribs)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

attribs

The third parameter, attribs, contains an associative array with the element's attributes (if any). The keys of this array are the attribute names, the values are the attribute values. Attribute names are case-folded on the same criteria as element names. Attribute values are not case-folded.

The original order of the attributes can be retrieved by walking through attribs the normal way, using each(). The first key in the array was the first attribute, and so on.

The function named by end_element_handler must accept two parameters: end_element_handler ( resource parser, string name)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handlers are set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_default_handler | Acima | xml_set_end_namespace_decl_handler


xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler

Description

bool xml_set_end_namespace_decl_handler ( resource parser, callback handler)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_element_handler | Acima | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_external_entity_ref_handler -- Set up external entity reference handler

Description

bool xml_set_external_entity_ref_handler ( resource parser, callback handler)

Sets the external entity reference handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept five parameters, and should return an integer value. If the value returned from the handler is FALSE (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING. handler ( resource parser, string open_entity_names, string base, string system_id, string public_id)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

open_entity_names

The second parameter, open_entity_names, is a space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).

base

This is the base for resolving the system identifier (system_id) of the external entity. Currently this parameter will always be set to an empty string.

system_id

The fourth parameter, system_id, is the system identifier as specified in the entity declaration.

public_id

The fifth parameter, public_id, is the public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_end_namespace_decl_handler | Acima | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_notation_decl_handler -- Set up notation declaration handler

Description

bool xml_set_notation_decl_handler ( resource parser, callback handler)

Sets the notation declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A notation declaration is part of the document's DTD and has the following format:
<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
See section 4.7 of the XML 1.0 spec for the definition of notation declarations.

The function named by handler must accept five parameters: handler ( resource parser, string notation_name, string base, string system_id, string public_id)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

notation_name

This is the notation's name, as per the notation format described above.

base

This is the base for resolving the system identifier (system_id) of the notation declaration. Currently this parameter will always be set to an empty string.

system_id

System identifier of the external notation declaration.

public_id

Public identifier of the external notation declaration.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_external_entity_ref_handler | Acima | xml_set_object


xml_set_object

(PHP 4 , PHP 5)

xml_set_object -- Use XML Parser within an object

Description

void xml_set_object ( resource parser, object object)

This function allows to use parser inside object. All callback functions could be set with xml_set_element_handler() etc and assumed to be methods of object.

Exemplo 1. xml_set_object() example

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // end of class xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Anterior | Principal | Próxima
xml_set_notation_decl_handler | Acima | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler

Description

bool xml_set_processing_instruction_handler ( resource parser, callback handler)

Sets the processing instruction (PI) handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A processing instruction has the following format:

<?
       target
       data?>

You can put PHP code into such a tag, but be aware of one limitation: in an XML PI, the PI end tag (?>) can not be quoted, so this character sequence should not appear in the PHP code you embed with PIs in XML documents. If it does, the rest of the PHP code, as well as the "real" PI end tag, will be treated as character data.

The function named by handler must accept three parameters: handler ( resource parser, string target, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

target

The second parameter, target, contains the PI target.

data

The third parameter, data, contains the PI data.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_object | Acima | xml_set_start_namespace_decl_handler


xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler

Description

bool xml_set_start_namespace_decl_handler ( resource parser, callback handler)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_processing_instruction_handler | Acima | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Description

bool xml_set_unparsed_entity_decl_handler ( resource parser, callback handler)

Sets the unparsed entity declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

This handler will be called if the XML parser encounters an external entity declaration with an NDATA declaration, like the following:
<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

See section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

The function named by handler must accept six parameters: handler ( resource parser, string entity_name, string base, string system_id, string public_id, string notation_name)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

entity_name

The name of the entity that is about to be defined.

base

This is the base for resolving the system identifier (systemId) of the external entity. Currently this parameter will always be set to an empty string.

system_id

System identifier for the external entity.

public_id

Public identifier for the external entity.

notation_name

Name of the notation of this entity (see xml_set_notation_decl_handler()).

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Nota: Ao invés de um nome de função, um array contendo uma referência de objeto e ao nome de método também pode ser fornecidos.

Anterior | Principal | Próxima
xml_set_start_namespace_decl_handler | Acima | XML-RPC Functions


XML-RPC Functions

Manual do PHP
Anterior Próxima

CXVII. XML-RPC Functions

Introdução

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at http://www.xmlrpc.com/, and more documentation on this extension and its functions at http://xmlrpc-epi.sourceforge.net/.

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Requisitos

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Instalação

XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. XML-RPC configuration options

Name | Default | Changeable
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Índice
xmlrpc_decode_request -- Decodes XML into native PHP types
xmlrpc_decode -- Decodes XML into native PHP types
xmlrpc_encode_request -- Generates XML for a method request
xmlrpc_encode -- Generates XML for a PHP value
xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings
xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions
xmlrpc_server_add_introspection_data -- Adds introspection documentation
xmlrpc_server_call_method -- Parses XML requests and call methods
xmlrpc_server_create -- Creates an xmlrpc server
xmlrpc_server_destroy -- Destroys server resources
xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation
xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name
xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Anterior | Principal | Próxima
xml_set_unparsed_entity_decl_handler | Acima | xmlrpc_decode_request


xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_request -- Decodes XML into native PHP types

Description

array xmlrpc_decode_request ( string xml, string &method [, string encoding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
XML-RPC Functions | Acima | xmlrpc_decode


xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode -- Decodes XML into native PHP types

Description

array xmlrpc_decode ( string xml [, string encoding])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_decode_request | Acima | xmlrpc_encode_request


xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_request -- Generates XML for a method request

Description

string xmlrpc_encode_request ( string method, mixed params)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_decode | Acima | xmlrpc_encode


xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode -- Generates XML for a PHP value

Description

string xmlrpc_encode ( mixed value)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_encode_request | Acima | xmlrpc_get_type


xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings

Description

string xmlrpc_get_type ( mixed value)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_encode | Acima | xmlrpc_parse_method_descriptions


xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions

Description

array xmlrpc_parse_method_descriptions ( string xml)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_get_type | Acima | xmlrpc_server_add_introspection_data


xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_data -- Adds introspection documentation

Description

int xmlrpc_server_add_introspection_data ( resource server, array desc)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_parse_method_descriptions | Acima | xmlrpc_server_call_method


xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_method -- Parses XML requests and call methods

Description

mixed xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options])

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_server_add_introspection_data | Acima | xmlrpc_server_create


xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_create -- Creates an xmlrpc server

Description

resource xmlrpc_server_create ( void )

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_server_call_method | Acima | xmlrpc_server_destroy


xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroy -- Destroys server resources

Description

int xmlrpc_server_destroy ( resource server)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_server_create | Acima | xmlrpc_server_register_introspection_callback


xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource server, string function)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_server_destroy | Acima | xmlrpc_server_register_method


xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name

Description

bool xmlrpc_server_register_method ( resource server, string method_name, string function)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_server_register_introspection_callback | Acima | xmlrpc_set_type


xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Description

bool xmlrpc_set_type ( string value, string type)

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xmlrpc_server_register_method | Acima | xdiff Functions


xdiff Functions

Manual do PHP
Anterior Próxima

CXVIII. xdiff Functions

Introdução

xdiff extension creates and applies patches to both text and binary files.

Requisitos

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage http://www.xmailserver.org/xdiff-lib.html.

Instalação

xdiff is currently available through PECL http://pecl.php.net/package/xdiff.

If PEAR is available on your *nix-like system you can use the pear installer to install the xdiff extension, by the following command: pear -v install xdiff.

You can always download the tar.gz package and install xdiff by hand:

Exemplo 1. xdiff install by hand

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

XDIFF_PATCH_NORMAL (integer)

XDIFF_PATCH_REVERSE (integer)

Índice
xdiff_file_diff_binary -- Make binary diff of two files.
xdiff_file_diff -- Make unified diff of two files.
xdiff_file_merge3 -- Merge 3 files into one.
xdiff_file_patch_binary -- Patch a file with a binary diff.
xdiff_file_patch -- Patch a file with an unified diff.
xdiff_string_diff_binary -- Make binary diff of two strings.
xdiff_string_diff -- Make unified diff of two strings.
xdiff_string_merge3 -- Merge 3 strings into one.
xdiff_string_patch_binary -- Patch a string with a binary diff.
xdiff_string_patch -- Patch a string with an unified diff.

Anterior | Principal | Próxima
xmlrpc_set_type | Acima | xdiff_file_diff_binary


xdiff_file_diff_binary

(no version information, might be only in CVS)

xdiff_file_diff_binary -- Make binary diff of two files.

Description

bool xdiff_file_diff_binary ( string file1, string file2, string dest)

xdiff_file_diff_binary() makes binary diff of files file1 and file2 and stores result in file dest.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also xdiff_string_diff_binary().

Anterior | Principal | Próxima
xdiff Functions | Acima | xdiff_file_diff


xdiff_file_diff

(no version information, might be only in CVS)

xdiff_file_diff -- Make unified diff of two files.

Description

bool xdiff_file_diff ( string file1, string file2, string dest [, int context [, bool minimal]])

xdiff_file_diff() makes unified diff of files file1 and file2 and stores result in file dest. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also xdiff_string_diff().

Anterior | Principal | Próxima
xdiff_file_diff_binary | Acima | xdiff_file_merge3


xdiff_file_merge3

(no version information, might be only in CVS)

xdiff_file_merge3 -- Merge 3 files into one.

Description

mixed xdiff_file_merge3 ( string file1, string file2, string file3, string dest)

xdiff_file_merge3() merges files file1, file2 and file3 into one and stores result in file dest.

Returns TRUE if merge was successful, string with rejected chunks if it was not or FALSE if an internal error happened.

See also xdiff_string_merge3().

Anterior | Principal | Próxima
xdiff_file_diff | Acima | xdiff_file_patch_binary


xdiff_file_patch_binary

(no version information, might be only in CVS)

xdiff_file_patch_binary -- Patch a file with a binary diff.

Description

bool xdiff_file_patch_binary ( string file, string patch, string dest)

xdiff_file_patch_binary() patches file file with binary patch in file patch and stores result in file dest.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

See also xdiff_string_patch_binary().

Anterior | Principal | Próxima
xdiff_file_merge3 | Acima | xdiff_file_patch


xdiff_file_patch

(no version information, might be only in CVS)

xdiff_file_patch -- Patch a file with an unified diff.

Description

mixed xdiff_file_patch ( string file, string patch, string dest [, int flags])

xdiff_file_patch() patches file file with unified patch in file patch and stores result in file dest.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Returns FALSE if an internal error happened, string with rejected chunks of patch or TRUE if patch has been successfully applied.

See also xdiff_string_patch().

Anterior | Principal | Próxima
xdiff_file_patch_binary | Acima | xdiff_string_diff_binary


xdiff_string_diff_binary

(no version information, might be only in CVS)

xdiff_string_diff_binary -- Make binary diff of two strings.

Description

mixed xdiff_string_diff_binary ( string str1, string str2)

xdiff_string_diff_binary() makes binary diff of strings str1 and str2.

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff_binary().

Anterior | Principal | Próxima
xdiff_file_patch | Acima | xdiff_string_diff


xdiff_string_diff

(no version information, might be only in CVS)

xdiff_string_diff -- Make unified diff of two strings.

Description

mixed xdiff_string_diff ( string str1, string str2 [, int context [, bool minimal]])

xdiff_string_diff() makes unified diff of strings str1 and str2. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff().

Anterior | Principal | Próxima
xdiff_string_diff_binary | Acima | xdiff_string_merge3


xdiff_string_merge3

(no version information, might be only in CVS)

xdiff_string_merge3 -- Merge 3 strings into one.

Description

string xdiff_string_merge3 ( string str1, string str2, string str3 [, string & error])

xdiff_string_merge3() merges strings str1, str2 and str3 into one.

If error is passed then rejected parts are stored inside this variable.

Returns merged string or FALSE if an internal error happened.

See also xdiff_file_merge3().

Anterior | Principal | Próxima
xdiff_string_diff | Acima | xdiff_string_patch_binary


xdiff_string_patch_binary

(no version information, might be only in CVS)

xdiff_string_patch_binary -- Patch a string with a binary diff.

Description

string xdiff_string_patch_binary ( string str, string patch)

xdiff_string_patch_binary() patches string str with binary patch in string patch.

Returns a patched string.

See also xdiff_file_patch_binary().

Anterior | Principal | Próxima
xdiff_string_merge3 | Acima | xdiff_string_patch


xdiff_string_patch

(no version information, might be only in CVS)

xdiff_string_patch -- Patch a string with an unified diff.

Description

string xdiff_string_patch ( string str, string patch [, int flags [, string & error]])

xdiff_string_patch() patches string str with unified patch in string patch.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

If error is passed then rejected parts are stored inside this variable.

Returns a patched string.

See also xdiff_file_patch().

Anterior | Principal | Próxima
xdiff_string_patch_binary | Acima | XSL functions


XSL functions

Manual do PHP
Anterior Próxima

CXIX. XSL functions

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library.

Instalação

PHP 5 includes the XSL extension by default and it can be enabled by adding the argument --with-xsl[=DIR] to your configure line. DIR is the libxslt installation directory. libxslt version 1.0.18 or greater is required.

Exemplos

In this small tutorial we will learn how to transform an XML document into HTML.

Exemplo 1. A simple XSL tree

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to my sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/></h2>
  <h3> - <xsl:value-of select="year"/></h3>
 </xsl:template>
</xsl:stylesheet>

Exemplo 2. Corresponding XML tree

<collection>
 <cd>
  <title>PHP Rock</title>
  <artist>Joe Coder</artist>
  <year>2003</year>
 </cd>
 <cd>
  <title>Squashing Typos on a Winter's Eve</title>
  <artist>kennyt</artist>
  <year>2004</year>
 </cd>
</collection>

Exemplo 3. Making XML into HTML

The following PHP code uses the XML and XSL extensions to transform XML into presentable HTML.

<?php
/* Load the two XML sources */
$xml = new DomDocument; // from /ext/dom
$xml->load('example.xml');

$xsl = new DomDocument;
$xsl->load('example.xsl');

/* Configure the transformer */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml); // actual transformation
?>

This should produce an HTML fragment similar to the following:

Hey! Welcome to my sweet CD collection!

<h1>PHP Rock</h1>
<h2>by Joe Coder</h2>
<h3> - 2003</h3>

<h1>Squashing Typos on a Winter's Eve</h1>
<h2> by kennyt</h2>
<h3> - 2004</h3>

Índice
xsl_xsltprocessor_get_parameter --
xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support
xsl_xsltprocessor_import_stylesheet --
xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions
xsl_xsltprocessor_remove_parameter --
xsl_xsltprocessor_set_parameter --
xsl_xsltprocessor_transform_to_doc --
xsl_xsltprocessor_transform_to_uri --
xsl_xsltprocessor_transform_to_xml --

Anterior | Principal | Próxima
xdiff_string_patch | Acima | xsl_xsltprocessor_get_parameter


xsl_xsltprocessor_get_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_get_parameter --

Description

Procedural style

bool xsl_xsltprocessor_get_parameter ( string namespace, string name)

Object oriented style (method)

class xsltprocessor {

xsl_xsltdocucument getParameter ( string namespace, string name)

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
XSL functions | Acima | xsl_xsltprocessor_has_exslt_support


xsl_xsltprocessor_has_exslt_support

(no version information, might be only in CVS)

xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support

Description

Procedural style

bool xsl_xsltprocessor_has_exslt_support ( void )

Object oriented style (method)

class xsltprocessor {

bool hasExsltSupport ( void )

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

xsl_xsltprocessor_has_exslt_support() returns TRUE if PHP was built with the EXSLT library , FALSE otherwise.

Anterior | Principal | Próxima
xsl_xsltprocessor_get_parameter | Acima | xsl_xsltprocessor_import_stylesheet


xsl_xsltprocessor_import_stylesheet

(no version information, might be only in CVS)

xsl_xsltprocessor_import_stylesheet --

Description

Procedural style

bool xsl_xsltprocessor_import_stylesheet ( node index)

Object oriented style (method)

class xsltprocessor {

bool importStylesheet ( node index)

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xsl_xsltprocessor_has_exslt_support | Acima | xsl_xsltprocessor_register_php_functions


xsl_xsltprocessor_register_php_functions

(no version information, might be only in CVS)

xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions

Description

Procedural style

void xsl_xsltprocessor_register_php_functions ( void )

Object oriented style (method)

class xsltprocessor {

void registerPHPFunctions ( void )

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

xsl_xsltprocessor_register_php_functions() enables the ability to use PHP functions as XSLT functions within XSL stylesheets.

Anterior | Principal | Próxima
xsl_xsltprocessor_import_stylesheet | Acima | xsl_xsltprocessor_remove_parameter


xsl_xsltprocessor_remove_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_remove_parameter --

Description

Procedural style

bool xsl_xsltprocessor_remove_parameter ( string namespace, string name)

Object oriented style (method)

class xsltprocessor {

bool removeParameter ( string namespace, string name)

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xsl_xsltprocessor_register_php_functions | Acima | xsl_xsltprocessor_set_parameter


xsl_xsltprocessor_set_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_set_parameter --

Description

Procedural style

bool xsl_xsltprocessor_set_parameter ( string namespace, string name, string value)

Object oriented style (method)

class xsltprocessor {

bool setParameter ( string namespace, string name, string value)

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xsl_xsltprocessor_remove_parameter | Acima | xsl_xsltprocessor_transform_to_doc


xsl_xsltprocessor_transform_to_doc

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_doc --

Description

Procedural style

bool >xsl_xsltprocessor_transform_to_doc ( node doc [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToDoc ( node doc [, bool clone])

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xsl_xsltprocessor_set_parameter | Acima | xsl_xsltprocessor_transform_to_uri


xsl_xsltprocessor_transform_to_uri

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_uri --

Description

Procedural style

bool xsl_xsltprocessor_transform_to_uri ( node doc, string uri [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToUri ( node doc, string uri [, bool clone])

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xsl_xsltprocessor_transform_to_doc | Acima | xsl_xsltprocessor_transform_to_xml


xsl_xsltprocessor_transform_to_xml

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_xml --

Description

Procedural style

bool xsl_xsltprocessor_transform_to_xml ( node doc [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToXml ( node doc [, bool clone])

}

Atenção

Esta função é EXPERIMENTAL. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xsl_xsltprocessor_transform_to_uri | Acima | XSLT Functions


XSLT Functions

Manual do PHP
Anterior Próxima

CXX. XSLT Functions

Introdução

This PHP extension provides a processor independent API to XSLT transformations. Currently this extension only supports the Sablotron library from the Ginger Alliance. Support is planned for other libraries, such as the Xalan library or the libxslt library.

XSLT (Extensible Stylesheet Language (XSL) Transformations) is a language for transforming XML documents into other XML documents. It is a standard defined by The World Wide Web Consortium (W3C). Information about XSLT and related technologies can be found at http://www.w3.org/TR/xslt.

Nota: This extension is different than the sablotron extension distributed with versions of PHP prior to PHP 4.1, currently only the new XSLT extension in PHP 4.1 is supported. If you need support for the old extension, please ask your questions on the PHP mailing lists.

Nota: Esta extensão foi movida a partir do PHP 5 para o repositório PECL.

Requisitos

This extension uses Sablotron and expat, which can both be found at http://www.gingerall.com/. Binaries are provided as well as source.

Instalação

On Unix, run configure with the --enable-xslt --with-xslt-sablot options. The Sablotron library should be installed somewhere your compiler can find it.

Make sure you have the same libraries linked to the Sablotron library as those, which are linked with PHP. The configuration options: --with-expat-dir=DIR --with-iconv-dir=DIR are there to help you specify them. When asking for support, always mention these directives, and whether there are other versions of those libraries installed on your system somewhere. Naturally, provide all the version numbers.

Cuidado

Be sure your Sablot library is linked to -lstdc++ as otherwise your configure will fail, or PHP will fail to run or load.

JavaScript E-XSLT support: If you compiled Sablotron with JavaScript support, you must specify the option: --with-sablot-js=DIR.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP <= 4.2.0 copy sablot.dll and expat.dll to your SYSTEM32 folder. For PHP >= 4.2.1 copy sablot.dll, expat.dll and iconv.dll to your SYSTEM32 folder.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

XSLT_OPT_SILENT (integer)

Drop all logging and error reporting. This is a generic option for all backends that may be added in the future.

XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (integer)

Tell Sablotron to parse public entities. By default this has been turned off.

XSLT_SABOPT_DISABLE_ADDING_META (integer)

Do not add the meta tag "Content-Type" for HTML output. The default is set during compilation of Sablotron.

XSLT_SABOPT_DISABLE_STRIPPING (integer)

Suppress the whitespace stripping (on data files only).

XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (integer)

Consider unresolved documents (the document() function) non-lethal.

XSLT_ERR_UNSUPPORTED_SCHEME (integer)

Error return code, for scheme handlers.

Índice
xslt_create -- Create a new XSLT processor
xslt_errno -- Returns an error number
xslt_error -- Returns an error string
xslt_free -- Free XSLT processor
xslt_process -- Perform an XSLT transformation
xslt_set_base -- Set the base URI for all XSLT transformations
xslt_set_encoding -- Set the encoding for the parsing of XML documents
xslt_set_error_handler -- Set an error handler for a XSLT processor
xslt_set_log -- Set the log file to write log messages to
xslt_set_sax_handler -- Set SAX handlers for a XSLT processor
xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed
xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor
xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Anterior | Principal | Próxima
xsl_xsltprocessor_transform_to_xml | Acima | xslt_create


xslt_create

(PHP 4 >= 4.0.3)

xslt_create -- Create a new XSLT processor

Description

resource xslt_create ( void )

Create and return a new XSLT processor resource for manipulation by the other XSLT functions.

Exemplo 1. xslt_create() example

<?php
function xml2html($xmldata, $xsl)
{
    /* $xmldata -> your XML */
    /* $xsl -> XSLT file */

    $path = 'include';
    $arguments = array('/_xml' => $xmldata);
    $xsltproc = xslt_create();
    xslt_set_encoding($xsltproc, 'ISO-8859-1');
    $html =
        xslt_process($xsltproc, 'arg:/_xml', "$path/$xsl", NULL, $arguments);

    if (empty($html)) {
       die('XSLT processing error: '. xslt_error($xsltproc));
    }
    xslt_free($xsltproc);
    return $html;
}
?>

See also xslt_free().

Anterior | Principal | Próxima
XSLT Functions | Acima | xslt_errno


xslt_errno

(PHP 4 >= 4.0.3)

xslt_errno -- Returns an error number

Description

int xslt_errno ( resource xh)

Returns an error code describing the last error that occurred on the passed XSLT processor.

Anterior | Principal | Próxima
xslt_create | Acima | xslt_error


xslt_error

(PHP 4 >= 4.0.3)

xslt_error -- Returns an error string

Description

mixed xslt_error ( resource xh)

Returns a string describing the last error that occurred on the passed XSLT processor.

Exemplo 1. Handling errors using the xslt_error() and xslt_errno() functions.

<?php

$xh = xslt_create();
$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
if (!$result) {
    die(sprintf("Cannot process XSLT document [%d]: %s",
                xslt_errno($xh), xslt_error($xh)));
}

echo $result;

xslt_free($xh);
?>

Anterior | Principal | Próxima
xslt_errno | Acima | xslt_free


xslt_free

(PHP 4 >= 4.0.3)

xslt_free -- Free XSLT processor

Description

void xslt_free ( resource xh)

Free the XSLT processor identified by the given handle.

See also xslt_create()

Anterior | Principal | Próxima
xslt_error | Acima | xslt_process


xslt_process

(PHP 4 >= 4.0.3)

xslt_process -- Perform an XSLT transformation

Description

mixed xslt_process ( resource xh, string xmlcontainer, string xslcontainer [, string resultcontainer [, array arguments [, array parameters]]])

The xslt_process() function is the crux of the new XSLT extension. It allows you to perform an XSLT transformation using almost any type of input source - the containers. This is accomplished through the use of argument buffers -- a concept taken from the Sablotron XSLT processor (currently the only XSLT processor this extension supports). The input containers default to a filename 'containing' the document to be processed. The result container defaults to a filename for the transformed document. If the result container is not specified - i.e. NULL - than the result is returned.

Atenção

This function has changed its arguments, sinceversion 4.0.6. Do NOT provide the actual XML or XSL content as 2nd and 3rd argument, as this will create a segmentation fault, in Sablotron versions up to and including 0.95.

Containers can also be set via the $arguments array (see below).

The simplest type of transformation with the xslt_process() function is the transformation of an XML file with an XSLT file, placing the result in a third file containing the new XML (or HTML) document. Doing this with sablotron is really quite easy...

Exemplo 1. Using the xslt_process() to transform an XML file and a XSL file to a new XML file

<?php

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
    echo ", result.xml has the following contents\n<br />\n";
    echo "<pre>\n";
    readfile('result.xml');
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  result.xml the reason is that " . xslt_error($xh) . " and the ";
    echo "error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

While this functionality is great, many times, especially in a web environment, you want to be able to print out your results directly. Therefore, if you omit the third argument to the xslt_process() function (or provide a NULL value for the argument), it will automatically return the value of the XSLT transformation, instead of writing it to a file...

Exemplo 2. Using the xslt_process() to transform an XML file and a XSL file to a variable containing the resulting XML data

<?php

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document, returning the result into the $result variable
$result = xslt_process($xh, 'sample.xml', 'sample.xsl');
if ($result) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo " variable, the \$result variable has the following contents\n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  the \$result variable the reason is that " . xslt_error($xh);
    echo " and the error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

The above two cases are the two simplest cases there are when it comes to XSLT transformation and I'd dare say that they are the most common cases, however, sometimes you get your XML and XSLT code from external sources, such as a database or a socket. In these cases you'll have the XML and/or XSLT data in a variable -- and in production applications the overhead of dumping these to file may be too much. This is where XSLT's "argument" syntax, comes to the rescue. Instead of files as the XML and XSLT arguments to the xslt_process() function, you can specify "argument place holders" which are then substituted by values given in the arguments array (5th parameter to the xslt_process() function). The following is an example of processing XML and XSLT into a result variable without the use of files at all.

Exemplo 3. Using the xslt_process() to transform a variable containing XML data and a variable containing XSL data into a variable containing the resulting XML data

<?php
// $xml and $xsl contain the XML and XSL data

$arguments = array(
     '/_xml' => $xml,
     '/_xsl' => $xsl
);

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
if ($result) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo " variable, the \$result variable has the following contents\n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  the \$result variable the reason is that " . xslt_error($xh) .
    echo " and the error code is " . xslt_errno($xh);
}
xslt_free($xh);
?>

Finally, the last argument to the xslt_process() function represents an array for any top-level parameters that you want to pass to the XSLT document. These parameters can then be accessed within your XSL files using the <xsl:param name="parameter_name"> instruction. The parameters must be UTF-8 encoded and their values will be interpreted as strings by the Sablotron processor. In other words - you cannot pass node-sets as parameters to the XSLT document.

Nota: Please note that file:// is needed in front of path if you use Windows.

Anterior | Principal | Próxima
xslt_free | Acima | xslt_set_base


xslt_set_base

(PHP 4 >= 4.0.5)

xslt_set_base -- Set the base URI for all XSLT transformations

Description

void xslt_set_base ( resource xh, string uri)

Sets the base URI for all XSLT transformations, the base URI is used with Xpath instructions to resolve document() and other commands which access external resources. It is also used to resolve URIs for the <xsl:include> and <xsl:import> elements.

As of 4.3, the default base URI is the directory of the executing script. In effect, it is the directory name value of the __FILE__ constant. Prior to 4.3, the default base URI was less predictable.

Nota: Please note that file:// is needed in front of path if you use Windows.

Anterior | Principal | Próxima
xslt_process | Acima | xslt_set_encoding


xslt_set_encoding

(PHP 4 >= 4.0.5)

xslt_set_encoding -- Set the encoding for the parsing of XML documents

Description

void xslt_set_encoding ( resource xh, string encoding)

Set the output encoding for the XSLT transformations. When using the Sablotron backend this option is only available when you compile Sablotron with encoding support.

Anterior | Principal | Próxima
xslt_set_base | Acima | xslt_set_error_handler


xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handler -- Set an error handler for a XSLT processor

Description

void xslt_set_error_handler ( resource xh, mixed handler)

Set an error handler function for the XSLT processor given by xh, this function will be called whenever an error occurs in the XSLT transformation (this function is also called for notices).

Anterior | Principal | Próxima
xslt_set_encoding | Acima | xslt_set_log


xslt_set_log

(PHP 4 >= 4.0.6)

xslt_set_log -- Set the log file to write log messages to

Description

void xslt_set_log ( resource xh, mixed log)

xh

A reference to the XSLT parser.

log

This parameter is either a boolean value which toggles logging on and off, or a string containing the logfile in which log errors too.

This function allows you to set the file in which you want XSLT log messages to, XSLT log messages are different than error messages, in that log messages are not actually error messages but rather messages related to the state of the XSLT processor. They are useful for debugging XSLT, when something goes wrong.

By default logging is disabled, in order to enable logging you must first call xslt_set_log() with a boolean parameter which enables logging, then if you want to set the log file to debug to, you must then pass it a string containing the filename:

Exemplo 1. Using the XSLT Logging features

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . '/myfile.log');

$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
echo $result;

xslt_free($xh);
?>

Nota: Please note that file:// is needed in front of path if you use Windows.

Anterior | Principal | Próxima
xslt_set_error_handler | Acima | xslt_set_sax_handler


xslt_set_sax_handler

(4.0.3 - 4.0.6 only)

xslt_set_sax_handler -- Set SAX handlers for a XSLT processor

Description

void xslt_set_sax_handler ( resource xh, array handlers)

Set SAX handlers on the resource handle given by xh. SAX handlers should be a two dimensional array with the format (all top level elements are optional):

array(
[document] =>
    array(
        start document handler,
        end document handler
    ),
[element] =>
    array(
        start element handler,
        end element handler
    ),
[namespace] =>
    array(
        start namespace handler,
        end namespace handler
    ),
[comment] => comment handler,
[pi] => processing instruction handler,
[character] => character data handler
)

Anterior | Principal | Próxima
xslt_set_log | Acima | xslt_set_sax_handlers


xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed

Description

void xslt_set_sax_handlers ( resource processor, array handlers)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xslt_set_sax_handler | Acima | xslt_set_scheme_handler


xslt_set_scheme_handler

(4.0.5 - 4.0.6 only)

xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor

Description

void xslt_set_scheme_handler ( resource xh, array handlers)

Set Scheme handlers on the resource handle given by xh. Scheme handlers should be an array with the format (all elements are optional):

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Anterior | Principal | Próxima
xslt_set_sax_handlers | Acima | xslt_set_scheme_handlers


xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Description

void xslt_set_scheme_handlers ( resource processor, array handlers)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
xslt_set_scheme_handler | Acima | YAZ Functions


YAZ Functions

Manual do PHP
Anterior Próxima

CXXI. YAZ Functions

Introdução

This extension offers a PHP interface to the YAZ toolkit that implements the Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared among users, thus saving the connect and initialize phase steps in most cases.

YAZ is available at http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at http://www.indexdata.dk/phpyaz/.

Instalação

Compile YAZ (ANSI/NISO Z39.50 support) and install it. Build PHP with your favourite modules and add option --with-yaz[=DIR]. Your task is roughly the following:

Exemplo 1. YAZ compilation

gunzip -c php-4.3.X.tar.gz|tar xf -
gunzip -c yaz-2.0.tar.gz|tar xf -
cd yaz-2.0
./configure --prefix=/usr
make
make install
cd ../php-4.3.X.
./configure --with-yaz=/usr/bin
make
make install

If you are using YAZ as a shared extension, add (or uncomment) the following line in php.ini on Unix:
extension=php_yaz.so
And for Windows:
extension=php_yaz.dll

On Windows, php_yaz.dll depend on yaz.dll. You'll find yaz.dll in sub directory dlls in the Win32 zip archive. Copy yaz.dll to a directory in your PATH environment (c:\winnt\system32 or c:\windows\system32).

Atenção

A extensão IMAP não pode ser utilizada em conjunto com as extensões recode ou YAZ. Isto ocorre pelo fato de ambas compartilham os mesmos símbolos internos.

Nota: The above problem is solved in version 2.0 of YAZ.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. YAZ configuration options

Name | Default | Changeable
yaz.max_links | "100" | PHP_INI_ALL
yaz.log_file | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target.

The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host.

Exemplo 2. Parallel searching using Yaz

<?php
$num_hosts = count($host);
if (empty($term) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="term" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($term) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $term);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>

Índice
yaz_addinfo -- Returns additional error information
yaz_ccl_conf -- Configure CCL parser
yaz_ccl_parse -- Invoke CCL Parser
yaz_close -- Close YAZ connection
yaz_connect -- Prepares for a connection to a Z39.50 server.
yaz_database -- Specifies the databases within a session
yaz_element -- Specifies Element-Set Name for retrieval
yaz_errno -- Returns error number
yaz_error -- Returns error description
yaz_es_result -- Inspects Extended Services Result
yaz_get_option -- Returns value of option for connection
yaz_hits -- Returns number of hits for last search
yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package
yaz_present -- Prepares for retrieval (Z39.50 present).
yaz_range -- Specifies the maximum number of records to retrieve
yaz_record -- Returns a record
yaz_scan_result -- Returns Scan Response result
yaz_scan -- Prepares for a scan
yaz_schema -- Specifies schema for retrieval.
yaz_search -- Prepares for a search
yaz_set_option -- Sets one or more options for connection
yaz_sort -- Sets sorting criteria
yaz_syntax -- Specifies the preferred record syntax for retrieval.
yaz_wait -- Wait for Z39.50 requests to complete

Anterior | Principal | Próxima
xslt_set_scheme_handlers | Acima | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1, PHP 5)

yaz_addinfo -- Returns additional error information

Description

string yaz_addinfo ( resource id)

Returns additional error message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful or if no additional information was provided by the server.

See also yaz_error().

Anterior | Principal | Próxima
YAZ Functions | Acima | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_conf -- Configure CCL parser

Description

int yaz_ccl_conf ( resource id, array config)

This function configures the CCL query parser for a server with definitions of access points (CCL qualifiers) and their mapping to RPN. To map a specific CCL query to RPN afterwards call the yaz_ccl_parse() function. Each index of the array config is the name of a CCL field and the corresponding value holds a string that specifies a mapping to RPN. The mapping is a sequence of attribute-type, attribute-value pairs. Attribute-type and attribute-value is separated by an equal sign (=). Each pair is separated by white space.

Exemplo 1. CCL configuration

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

<?php
$fields["ti"] = "1=4";
$fields["au"] = "1=1";
$fields["isbn"] = "1=7";
yaz_ccl_conf($id, $fields);
?>

Anterior | Principal | Próxima
yaz_addinfo | Acima | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_parse -- Invoke CCL Parser

Description

bool yaz_ccl_parse ( resource id, string query, array & result)

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search. To define a set of valid CCL fields call yaz_ccl_conf() prior to this function. If the supplied query was successfully converted to RPN, this function returns TRUE, and the index rpn of the supplied array result holds a valid RPN query. If the query could not be converted (because of invalid syntax, unknown field, etc.) this function returns FALSE and three indexes are set in the resulting array to indicate the cause of failure: errorcode CCL error code (integer), errorstring CCL error string, and errorpos approximate position in query of failure (integer is character position).

Exemplo 1. CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php
yaz_ccl_conf($id, $fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>

Anterior | Principal | Próxima
yaz_ccl_conf | Acima | yaz_close


yaz_close

(PHP 4 >= 4.0.1, PHP 5)

yaz_close -- Close YAZ connection

Description

bool yaz_close ( resource id)

Closes the connection given by parameter id. The id is a connection resource as returned by a previous call to yaz_connect().

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
yaz_ccl_parse | Acima | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1, PHP 5)

yaz_connect -- Prepares for a connection to a Z39.50 server.

Description

resource yaz_connect ( string zurl [, mixed options])

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. The zurl argument takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used. This function is non-blocking and does not attempt to establish a connection - it merely prepares a connect to be performed later when yaz_wait() is called.

If the second argument, options, is given as a string it is treated as the Z39.50 V2 authentication string (OpenAuth).

If options is given as an array the contents of the array serves as options. Note that array options are only supported for PHP 4.1.0 and later.

yaz_connect() options

user

Username for authentication.

group

Group for authentication.

password

Password for authentication.

cookie

Cookie for session (YAZ proxy).

proxy

Proxy for connection (YAZ proxy).

persistent

A boolean. If TRUE the connection is persistent; If FALSE the connection is not persistent. By default connections are persistent.

piggyback

A boolean. If TRUE piggyback is enabled for searches; If FALSE piggyback is disabled. By default piggyback is enabled. Enabling piggyback is more efficient and usually saves a network-round-trip for first time fetches of records. However, a few Z39.50 servers do not support piggyback or they ignore element set names. For those, piggyback should be disabled.

charset

A string that specifies character set to be used in Z39.50 language and character set negotiation. Use strings such as: ISO-8859-1, UTF-8, UTF-16.

Most Z39.50 servers do not support this feature (and thus, this is ignored). Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC records are not affected by this setting.

Nota: The use of a proxy often improves performance. A Z39.50 proxy is part of the free YAZ++ package.

Anterior | Principal | Próxima
yaz_close | Acima | yaz_database


yaz_database

(PHP 4 >= 4.0.6, PHP 5)

yaz_database -- Specifies the databases within a session

Description

bool yaz_database ( resource id, string databases)

This function specifies one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect(). Multiple databases are separated by a plus sign +.

This function allows you to use different sets of databases within a session.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
yaz_connect | Acima | yaz_element


yaz_element

(PHP 4 >= 4.0.1, PHP 5)

yaz_element -- Specifies Element-Set Name for retrieval

Description

bool yaz_element ( resource id, string elementset)

This function sets the element set name for retrieval. Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved. Most servers support F (for full records) and B (for brief records).

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
yaz_database | Acima | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1, PHP 5)

yaz_errno -- Returns error number

Description

int yaz_errno ( resource id)

Returns an errornumber for the server (last request) identified by id. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search). To get a text description of the error, call yaz_error().

Anterior | Principal | Próxima
yaz_element | Acima | yaz_error


yaz_error

(PHP 4 >= 4.0.1, PHP 5)

yaz_error -- Returns error description

Description

string yaz_error ( resource id)

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Anterior | Principal | Próxima
yaz_errno | Acima | yaz_es_result


yaz_es_result

(PHP 4 >= 4.2.0, PHP 5)

yaz_es_result -- Inspects Extended Services Result

Description

array yaz_es_result ( resource id)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
yaz_error | Acima | yaz_get_option


yaz_get_option

(PHP 5)

yaz_get_option -- Returns value of option for connection

Description

string yaz_get_option ( resource id, string name)

Returns the value of the option specified with name. If an option is not set, an empty string is returned.

See the description of yaz_set_option() for available options.

Anterior | Principal | Próxima
yaz_es_result | Acima | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1, PHP 5)

yaz_hits -- Returns number of hits for last search

Description

int yaz_hits ( resource id)

yaz_hits() returns the number of hits for the last search.

Anterior | Principal | Próxima
yaz_get_option | Acima | yaz_itemorder


yaz_itemorder

(PHP 4 >= 4.0.5, PHP 5)

yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package

Description

int yaz_itemorder ( resource id, array args)

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See this and the specification. The args parameter must be a hash array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Anterior | Principal | Próxima
yaz_hits | Acima | yaz_present


yaz_present

(PHP 4 >= 4.0.5, PHP 5)

yaz_present -- Prepares for retrieval (Z39.50 present).

Description

bool yaz_present ( resource id)

This function prepares for retrieval of records after a successful search. The yaz_range() should be called prior to this function to specify the range of records to be retrieved.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
yaz_itemorder | Acima | yaz_range


yaz_range

(PHP 4 >= 4.0.1, PHP 5)

yaz_range -- Specifies the maximum number of records to retrieve

Description

bool yaz_range ( resource id, int start, int number)

This function should be called before either yaz_search() or yaz_present() to specify a range of records to be retrieved. The parameter start specifies the position of the first record to be retrieved and parameter number is the number of records. Records in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Anterior | Principal | Próxima
yaz_present | Acima | yaz_record


yaz_record

(PHP 4 >= 4.0.1, PHP 5)

yaz_record -- Returns a record

Description

string yaz_record ( resource id, int pos, string type)

Returns the record at position pos or an empty string if no record exists at the given position.

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos. If no database record exists at the given position an empty string is returned.

Record positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

The type specifies the form of the returned record.

string

The record is returned as a string for simple display. In this mode, all MARC records are converted to a line-by-line format since ISO2709 is hardly readable. XML records and SUTRS are returned in their original format. GRS-1 are returned in a (ugly) line-by-line format.

This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.

xml

The record is returned as an XML string if possible. In this mode, all MARC records are converted to MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.

This format is similar to string except that MARC records are converted to MARCXML

This format is suitable if records are processed by an XML parser or XSLT processor afterwareds.

raw

The record is returned as a string in its original form. This type is suitable for MARC, XML and SUTRS. It does not work for GRS-1.

MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.

syntax

The syntax of the record is returned as a string, i.e. USmarc, GRS-1, XML, etc.

database

The name of database associated with record at the position is returned as a string.

array

The record is returned as an array that reflects the GRS-1 structure. This type is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual record is XML or SUTRS an empty string will be returned.

The array returned consists of a list corresponding to each leaf/internal node of GRS-1. Each list item consists a sub list with first element path and data (if data is available).

The path which is a string holds a list of each tree component (of the structured GRS-1 record) from root to leaf. Each component is a tag type, tag value pair of the form (type, value

String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).

Nota: It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).

Besides conversion of the transfer record to a string/array, PHP/YAZ it is also possible to perform a character set conversion of the record. Especially for USMARC/MARC21 that is recommended since these are typically returned in the character set MARC-8 that is not supported by browsers, etc. To specify a conversion, add ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).

Exemplo 1. Array for GRS-1 record

Consider GRS-1 record
(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
This record has two nodes at root level. First element at root level is (4,52) [tag type 4, tag value 52], and has data Robert M. Pirsig. Second element at root level (4,70) has a subtree with a single element (4,90). (4,90) has yet another sub tree (2,7) with data Transworld Publishers, ltd..

If this record is present at position $p, then
$ar = yaz_record($id, $p, "array");
print_r($ar);
produces
Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Exemplo 2. Working with MARCXML

The following PHP snippet returns a MARC21/USMARC record as MARCXML. The original record is returned in marc-8 (unknown to most XML parsers), so we convert it to UTF-8 (which all XML parsers must support).
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");

The record $rec can be processed with the Sablotron XSLT processor as follows:

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
print $res;

For PHP5 the XSL extension can be used instead of Sablotron XSLT.

Anterior | Principal | Próxima
yaz_range | Acima | yaz_scan_result


yaz_scan_result

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan_result -- Returns Scan Response result

Description

array yaz_scan_result ( resource id [, array & result])

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan(). This function returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count. If the optional parameter result is given it will be modified to hold additional information taken from the Scan Response: number (number of entries returned), stepsize (Step-size), position (position of term), status (Scan Status).

Anterior | Principal | Próxima
yaz_record | Acima | yaz_scan


yaz_scan

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan -- Prepares for a scan

Description

int yaz_scan ( resource id, string type, string startterm [, array flags])

This function prepares for a Z39.50 Scan Request, where parameter id specifies connection. Starting term point for the scan is given by startterm. The form in which the starting term is specified is given by parameter type. Currently only type rpn is supported. The optional parameter flags specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size). To actually transfer the Scan Request to the server and receive the Scan Response, yaz_wait() must be called. Upon completion of yaz_wait() call yaz_error() and yaz_scan_result() to handle the response.

The syntax of startterm is similar to the RPN query as described in yaz_search(). The startterm consists of zero or more @attr-operator specifications, then followed by exactly one token.

Exemplo 1. PHP function that scans titles

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, &$options);
    echo 'Scan ok; ';
    while (list($key, $val) = each($options)) {
      echo "$key = $val &nbsp;";
    }
    echo '<br /><table>';
    while (list($key, list($k, $term, $tcount)) = each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Scan failed. Error: " . yaz_error($id) . "<br />";
  }
}
?>

Anterior | Principal | Próxima
yaz_scan_result | Acima | yaz_schema


yaz_schema

(PHP 4 >= 4.2.0, PHP 5)

yaz_schema -- Specifies schema for retrieval.

Description

int yaz_schema ( resource id, string schema)

The schema must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ... This function should be called before yaz_search() or yaz_present().

Anterior | Principal | Próxima
yaz_scan | Acima | yaz_search


yaz_search

(PHP 4 >= 4.0.1, PHP 5)

yaz_search -- Prepares for a search

Description

int yaz_search ( resource id, string type, string query)

yaz_search() prepares for a search on the connection given by parameter id. The parameter type represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation. Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

The RPN query

The RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operater precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (@) are considered operators, otherwise they are treated as search terms.

Tabela 1. RPN Operators

Construct | Description
@and query1 query2 | intersection of query1 and query2
@or query1 query2 | union of query1 and query2
@not query1 query2 | query1 and not query2
@set name | result set reference
@attrset set query | specifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query
@attr [set] type=value query | applies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set.

Exemplo 1. Query Examples

You can search for simple terms, like this
computer
which matches documents where "computer" occur. No attributes are specified.

The Query
"knuth donald"
matches documents where "knuth donald" occur (provided that the server supports phrase search).

This query applies two attributes for the same phrase.
@attr 1=1003 @attr 4=1 "knuth donald"
First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.

This query
@and @or a b @not @or c d e
would in infix notation look like (a or b) and ((c or d) not e).

Another, more complex, one:
@attrset gils @and @attr 1=4 art @attr 1=2000 company
The query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).

You can find information about attributes at the Z39.50 Maintenance Agency site.

Nota: If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

Anterior | Principal | Próxima
yaz_schema | Acima | yaz_set_option


yaz_set_option

(PHP 5)

yaz_set_option -- Sets one or more options for connection

Description

string yaz_set_option ( resource id, string name, string value)

Sets option name to value.

Tabela 1. PYP/YAZ Connection Options

Name | Description
implementationName | implementation name of server
implementationVersion | implementation version of server
implementationId | implementation ID of server
schema | schema for retrieval. By default, no schema is used. Setting this option is equivalent to using function yaz_schema()
preferredRecordSyntax | record syntax for retrieval. By default, no syntax is used. Setting this option is equivalent to using function yaz_syntax()
start | offset for first record to be retrieved via yaz_search() or yaz_present(). First record is numbered has a start value of 0. Second record has start value 1. Setting this option in combination with option count has the same effect as calling yaz_range() except that records are numbered from 1 in yaz_range()
count | maximum number of records to be retrieved via yaz_search() or yaz_present().
elementSetName | element-set-name for retrieval. Setting this option is equivalent to calling yaz_element().

Anterior | Principal | Próxima
yaz_search | Acima | yaz_sort


yaz_sort

(PHP 4 >= 4.1.0, PHP 5)

yaz_sort -- Sets sorting criteria

Description

int yaz_sort ( resource id, string criteria)

This function sets sorting criteria and enables Z39.50 Sort. Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present(). The parameter criteria takes the form

field1 flags1 field2 flags2 ...

where field1 specifies the primary attributes for sort, field2 seconds, etc.. The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a sequence of the following characters which may not be separated by any white space.

Sort Flags

a

Sort ascending

d

Sort descending

i

Case insensitive sorting

s

Case sensitive sorting

Exemplo 1. Sort Criterias

To sort on Bib1 attribute title, case insensitive, and ascending you would use the following sort criteria:
1=4 ia

If the secondary sorting criteria should be author, case sensitive and ascending you would use:
1=4 ia 1=1003 sa

Anterior | Principal | Próxima
yaz_set_option | Acima | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1, PHP 5)

yaz_syntax -- Specifies the preferred record syntax for retrieval.

Description

int yaz_syntax ( resource id, string syntax)

The syntax must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.5.10) or as one of the known registered record syntaxes (sutrs, usmarc, grs1, xml, etc.). This function should be called before yaz_search() or yaz_present().

Anterior | Principal | Próxima
yaz_sort | Acima | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1, PHP 5)

yaz_wait -- Wait for Z39.50 requests to complete

Description

int yaz_wait ( [array options])

This function carries out networked (blocked) activity for outstanding requests which have been prepared by the functions yaz_connect(), yaz_search(), yaz_present(), yaz_scan() and yaz_itemorder(). yaz_wait() returns when all servers have either completed all requests or aborted (in case of errors).

If the options array is given that holds options that change the behaviour of yaz_wait().

timeout

Sets timeout in seconds. If a server has not responded within the timeout it is considered dead and yaz_wait() returns. The default value for timeout is 15 seconds.

Anterior | Principal | Próxima
yaz_syntax | Acima | YP/NIS Functions


YP/NIS Functions

Manual do PHP
Anterior Próxima

CXXII. YP/NIS Functions

Introdução

NIS (formerly called Yellow Pages) allows network management of important administrative files (e.g. the password file). For more information refer to the NIS manpage and The Linux NIS(YP)/NYS/NIS+ HOWTO. There is also a book called Managing NFS and NIS by Hal Stern.

Nota: Esta extensão não está disponível na plataforma Windows.

Requisitos

None besides functions from standard Unix libraries which are always available (either libc or libnsl, configure will detect which one to use).

Instalação

To get these functions to work, you have to configure PHP with --enable-yp.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

YPERR_BADARGS (integer)

YPERR_BADDB (integer)

YPERR_BUSY (integer)

YPERR_DOMAIN (integer)

YPERR_KEY (integer)

YPERR_MAP (integer)

YPERR_NODOM (integer)

YPERR_NOMORE (integer)

YPERR_PMAP (integer)

YPERR_RESRC (integer)

YPERR_RPC (integer)

YPERR_YPBIND (integer)

YPERR_YPERR (integer)

YPERR_YPSERV (integer)

YPERR_VERS (integer)

Índice
yp_all -- Traverse the map and call a function on each entry
yp_cat -- Return an array containing the entire map
yp_err_string -- Returns the error string associated with the given error code
yp_errno -- Returns the error code of the previous operation
yp_first -- Returns the first key-value pair from the named map
yp_get_default_domain -- Fetches the machine's default NIS domain
yp_master -- Returns the machine name of the master NIS server for a map
yp_match -- Returns the matched line
yp_next -- Returns the next key-value pair in the named map.
yp_order -- Returns the order number for a map

Anterior | Principal | Próxima
yaz_wait | Acima | yp_all


yp_all

(PHP 4 >= 4.0.6, PHP 5)

yp_all -- Traverse the map and call a function on each entry

Description

void yp_all ( string domain, string map, string callback)

Atenção

Esta função não está documentada, somente a lista de argumentos está disponível.

Anterior | Principal | Próxima
YP/NIS Functions | Acima | yp_cat


yp_cat

(PHP 4 >= 4.0.6, PHP 5)

yp_cat -- Return an array containing the entire map

Description

array yp_cat ( string domain, string map)

yp_cat() returns all map entries as an array with the maps key values as array indices and the maps entries as array data.

Anterior | Principal | Próxima
yp_all | Acima | yp_err_string


yp_err_string

(PHP 4 >= 4.0.6, PHP 5)

yp_err_string -- Returns the error string associated with the given error code

Description

string yp_err_string ( int errorcode)

yp_err_string() returns the error message associated with the given error code. Useful to indicate what exactly went wrong.

Exemplo 1. Example for NIS errors

<?php
    echo "Error: " . yp_err_string(yp_errno());
?>

See also yp_errno().

Anterior | Principal | Próxima
yp_cat | Acima | yp_errno


yp_errno

(PHP 4 >= 4.0.6, PHP 5)

yp_errno -- Returns the error code of the previous operation

Description

int yp_errno ( void )

yp_errno() returns the error code of the previous operation.

Possible errors are:

1 args to function are bad
2 RPC failure - domain has been unbound
3 can't bind to server on this domain
4 no such map in server's domain
5 no such key in map
6 internal yp server or client error
7 resource allocation failure
8 no more records in map database
9 can't communicate with portmapper
10 can't communicate with ypbind
11 can't communicate with ypserv
12 local domain name not set
13 yp database is bad
14 yp version mismatch
15 access violation
16 database busy

See also yp_err_string().

Anterior | Principal | Próxima
yp_err_string | Acima | yp_first


yp_first

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_first -- Returns the first key-value pair from the named map

Description

array yp_first ( string domain, string map)

yp_first() returns the first key-value pair from the named map in the named domain, otherwise FALSE.

Exemplo 1. Example for the NIS first

<?php
$entry = yp_first($domain, "passwd.byname");

$key = key($entry);
$value = $entry [$key];

echo "First entry in this map has key " . $key . " and value " . $value;
?>

See also yp_next() and yp_get_default_domain().

Anterior | Principal | Próxima
yp_errno | Acima | yp_get_default_domain


yp_get_default_domain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_get_default_domain -- Fetches the machine's default NIS domain

Description

int yp_get_default_domain ( void )

yp_get_default_domain() returns the default domain of the node or FALSE. Can be used as the domain parameter for successive NIS calls.

A NIS domain can be described a group of NIS maps. Every host that needs to look up information binds itself to a certain domain. Refer to the documents mentioned at the beginning for more detailed information.

Exemplo 1. Example for the default domain

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>

Anterior | Principal | Próxima
yp_first | Acima | yp_master


yp_master

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_master -- Returns the machine name of the master NIS server for a map

Description

string yp_master ( string domain, string map)

yp_master() returns the machine name of the master NIS server for a map.

Exemplo 1. Example for the NIS master

<?php
$number = yp_master($domain, $mapname);
echo "Master for this map is: " . $master;
?>

See also yp_get_default_domain().

Anterior | Principal | Próxima
yp_get_default_domain | Acima | yp_match


yp_match

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_match -- Returns the matched line

Description

string yp_match ( string domain, string map, string key)

yp_match() returns the value associated with the passed key out of the specified map or FALSE. This key must be exact.

Exemplo 1. Example for NIS match

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

The above code will produce :

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

See also yp_get_default_domain().

Anterior | Principal | Próxima
yp_master | Acima | yp_next


yp_next

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_next -- Returns the next key-value pair in the named map.

Description

array yp_next ( string domain, string map, string key)

yp_next() returns the next key-value pair in the named map after the specified key or FALSE.

Exemplo 1. Example for NIS next

<?php
$entry = yp_next($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "No more entries found\n";
    echo "<!--" . yp_errno() . ": " . yp_err_string() . "-->";
}

$key = key($entry);

echo "The next entry after joe has key " . $key
      . " and value " . $entry[$key];
?>

See also yp_first() and yp_get_default_domain().

Anterior | Principal | Próxima
yp_match | Acima | yp_order


yp_order

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_order -- Returns the order number for a map

Description

int yp_order ( string domain, string map)

yp_order() returns the order number for a map or FALSE.

Exemplo 1. Example for the NIS order

<?php
    $number = yp_order($domain, $mapname);
    echo "Order number for this map is: " . $number;
?>

See also yp_get_default_domain().

Anterior | Principal | Próxima
yp_next | Acima | Zip File Functions (Read Only Access)


Zip File Functions (Read Only Access)

Manual do PHP
Anterior Próxima

CXXIII. Zip File Functions (Read Only Access)

Introdução

This module enables you to transparently read ZIP compressed archives and the files inside them.

Requisitos

This module uses the functions of the ZZIPlib library by Guido Draheim. You need ZZIPlib version >= 0.10.6.

Note that ZZIPlib only provides a subset of functions provided in a full implementation of the ZIP compression algorithm and can only read ZIP file archives. A normal ZIP utility is needed to create the ZIP file archives read by this library.

Instalação

Zip support in PHP is not enabled by default. You will need to use the --with-zip[=DIR] configuration option when compiling PHP to enable zip support.

Nota: Zip support before PHP 4.1.0 is experimental. This section reflects the Zip extension as it exists in PHP 4.1.0 and later.

Configuração durante execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

Esta extensão não possui nenhuma constante.

Exemplos

This example opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.

Exemplo 1. Zip Usage Example

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {

    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}

?>
Índice
zip_close -- Close a Zip File Archive
zip_entry_close -- Close a Directory Entry
zip_entry_compressedsize -- Retrieve the Compressed Size of a Directory Entry
zip_entry_compressionmethod -- Retrieve the Compression Method of a Directory Entry
zip_entry_filesize -- Retrieve the Actual File Size of a Directory Entry
zip_entry_name -- Retrieve the Name of a Directory Entry
zip_entry_open -- Open a Directory Entry for Reading
zip_entry_read -- Read From an Open Directory Entry
zip_open -- Open a Zip File Archive
zip_read -- Read Next Entry in a Zip File Archive

Anterior | Principal | Próxima
yp_order | Acima | zip_close


zip_close

(PHP 4 >= 4.1.0)

zip_close -- Close a Zip File Archive

Description

void zip_close ( resource zip)

Closes a zip file archive. The parameter zip must be a zip archive previously opened by zip_open().

This function has no return value.

See also zip_open() and zip_read().

Anterior | Principal | Próxima
Zip File Functions (Read Only Access) | Acima | zip_entry_close


zip_entry_close

(PHP 4 >= 4.1.0)

zip_entry_close -- Close a Directory Entry

Description

void zip_entry_close ( resource zip_entry)

Closes a directory entry specified by zip_entry. The parameter zip_entry must be a valid directory entry opened by zip_entry_open().

This function has no return value.

See also zip_entry_open() and zip_entry_read().

Anterior | Principal | Próxima
zip_close | Acima | zip_entry_compressedsize


zip_entry_compressedsize

(PHP 4 >= 4.1.0)

zip_entry_compressedsize -- Retrieve the Compressed Size of a Directory Entry

Description

int zip_entry_compressedsize ( resource zip_entry)

Returns the compressed size of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Anterior | Principal | Próxima
zip_entry_close | Acima | zip_entry_compressionmethod


zip_entry_compressionmethod

(PHP 4 >= 4.1.0)

zip_entry_compressionmethod -- Retrieve the Compression Method of a Directory Entry

Description

string zip_entry_compressionmethod ( resource zip_entry)

Returns the compression method of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Anterior | Principal | Próxima
zip_entry_compressedsize | Acima | zip_entry_filesize


zip_entry_filesize

(PHP 4 >= 4.1.0)

zip_entry_filesize -- Retrieve the Actual File Size of a Directory Entry

Description

int zip_entry_filesize ( resource zip_entry)

Returns the actual size of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Anterior | Principal | Próxima
zip_entry_compressionmethod | Acima | zip_entry_name


zip_entry_name

(PHP 4 >= 4.1.0)

zip_entry_name -- Retrieve the Name of a Directory Entry

Description

string zip_entry_name ( resource zip_entry)

Returns the name of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Anterior | Principal | Próxima
zip_entry_filesize | Acima | zip_entry_open


zip_entry_open

(PHP 4 >= 4.1.0)

zip_entry_open -- Open a Directory Entry for Reading

Description

bool zip_entry_open ( resource zip, resource zip_entry [, string mode])

Opens a directory entry in a zip file for reading. The parameter zip is a valid resource handle returned by zip_open(). The parameter zip_entry is a directory entry resource returned by zip_read(). The optional parameter mode can be any of the modes specified in the documentation for fopen().

Nota: Currently, mode is ignored and is always "rb". This is due to the fact that zip support in PHP is read only access. Please see fopen() for an explanation of various modes, including "rb".

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Nota: Unlike fopen() and other similar functions, the return value of zip_entry_open() only indicates the result of the operation and is not needed for reading or closing the directory entry.

See also zip_entry_read() and zip_entry_close().

Anterior | Principal | Próxima
zip_entry_name | Acima | zip_entry_read


zip_entry_read

(PHP 4 >= 4.1.0)

zip_entry_read -- Read From an Open Directory Entry

Description

string zip_entry_read ( resource zip_entry [, int length])

Reads up to length bytes from an open directory entry. If length is not specified, then zip_entry_read() will attempt to read 1024 bytes. The parameter zip_entry is a valid directory entry returned by zip_read().

Nota: The length parameter should be the uncompressed length you wish to read.

Returns the data read, or FALSE if the end of the file is reached.

See also zip_entry_open(),
zip_entry_close() and
zip_entry_filesize().

Anterior | Principal | Próxima
zip_entry_open | Acima | zip_open


zip_open

(PHP 4 >= 4.1.0)

zip_open -- Open a Zip File Archive

Description

resource zip_open ( string filename)

Opens a new zip archive for reading. The filename parameter is the filename of the zip archive to open.

Returns a resource handle for later use with zip_read() and zip_close() or returns FALSE if filename does not exist.

See also zip_read() and zip_close().

Anterior | Principal | Próxima
zip_entry_read | Acima | zip_read


zip_read

(PHP 4 >= 4.1.0)

zip_read -- Read Next Entry in a Zip File Archive

Description

resource zip_read ( resource zip)

Reads the next entry in a zip file archive. The parameter zip must be a zip archive previously opened by zip_open().

Returns a directory entry resource for later use with the zip_entry_...() functions or FALSE if there's no more entries to read.

See also zip_open(),
zip_close(),
zip_entry_open(), and
zip_entry_read().

Anterior | Principal | Próxima
zip_open | Acima | Zlib - Funções de Compressão


Zlib - Funções de Compressão

Manual do PHP
Anterior Próxima

CXXIV. Zlib - Funções de Compressão

Introdução

Este módulo lhe possibilita ler e gerar transparentemente arquivos comprimidos do tipo gzip (.gz), através de muitas das funções filesystem nas quais funcionam com arquivos gzip comprimidos (e arquivos não comprimidos também, mas não com sockets).

Nota: A Versão 4.0.4 introduziu a função fopen-wrapper para arquivos .gz, então você pode usar o prefixo 'zlib:' especial para acessar arquivos comprimidos transparentemente usando as funções normais de acesso a arquivos f*() se você concatenar o nome do arquivo e ou seu caminho com o prefixo 'zlib:' quando usar a função fopen().

Na versão 4.3.0, este prefixo especial foi mudado para 'zlib://' para previnir ambiguidades com nome de arquivos contendo ':'.

Esta facilidade requer uma biblioteca em tempo de execução que provê a função fopencookie(). Em meu conhecimento atual a GNU libc é a única bliblioteca que provê esta facilidade.

Requisitos

Este módulo usa as funções da zlib por Jean-loup Gailly e Mark Adler. Você terá que usar uma versão zlib >= à 1.0.9 com este módulo.

Configuração durante execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

A extensão zlib oferece a opção de comprimir transparentemente suas páginas em tempo real, se o navegador requisitante suportar isto. Então existem três opções no arquivo de configuração php.ini.

Tabela 1. Opções de Configuração da Zlib

Nome | Padrão | Modificável
zlib.output_compression | "Off" | PHP_INI_ALL
zlib.output_compression_level | "-1" | PHP_INI_ALL
zlib.output_handler | "" | PHP_INI_ALL
Para maiores detalhes e definições das constantes PHP_INI_* veja a função ini_set().

Aqui está uma breve explicação das diretrizes de configuração.

zlib.output_compression booleano/inteiro

Serve para comprimir páginas de modo transparente. Se esta opção for mudada para "On" no php.ini ou na configuração do Apache, as páginas serão comprimidas se o navegador enviar um cabeçalho "Accept-Encoding: gzip" ou "deflate". "Content-Encoding: gzip" (respectivamente "deflate") e cabeçalhos "Vary: Accept-Encoding" serão adicionados para a saida.

Você pode usar a função ini_set() para desabilitar isto em seu script se os cabeçalhos ainda não foram enviados. Se você enviar um cabeçalho à saída "Content-Type: image/" a compressão será desabilitada, também (para corrigir um defeito do Netscape). Você pode reabilitar isto, se você adicionar a função "ini_set('zlib.output_compression', 'On')" depois da chamada do cabeçalho que que foi adicionado o content-type da imagem.

Esta opção também aceita valores inteiros em vez de valores booleanos "On"/"Off", usando isto você pode configurar o tamanho do buffer de saída (o padrão é 4KB).

Nota: output_handler deve estar vazio se a diretriz estiver configurada em 'On'! Em vez disto você deve usar zlib.output_handler.

zlib.output_compression_level inteiro

Nível de compressão usado para as saídas.

zlib.output_handler string

Você não pode especificar tratamentos adicionais de saída se zlib.output_compression for ativado. Esta configuração faz o mesmo que a output_handler mas em uma ordem diferente.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes Predefinidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

FORCE_GZIP (integer)

FORCE_DEFLATE (integer)

Exemplos

Este exemplo abre um arquivo temporário e gera uma string teste dentro dele, então ela mostra o conteúdo deste arquivo duas vezes.

Exemplo 1. Pequeno Exemplo das funções Zlib

<?php

$filename = tempnam ('/tmp', 'zlibteste').'.gz';
print "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Somente um teste, teste, teste, teste, teste, teste, teste, teste!\n";

// abre o arquivo para gerar ele com a compressão máxima
$zp = gzopen($filename, "w9");

// escreve a string no arquivo
gzwrite($zp, $s);

// fecha o arquivo
gzclose($zp);

// abre o arquivo para leitura
$zp = gzopen($filename, "r");

// lê 3 caracteres
print gzread($zp, 3);

// mostra o conteúdo até o fim do arquivo e o fecha.
gzpassthru($zp);

print "\n";

// abre o arquivo e imprime o conteúdo dele (pela segunda vez).
if (readgzfile($filename) != strlen($s)) {
        echo "Erro com as funções zlib!";
}
unlink($filename);
print "</pre>\n</h1></body>\n</html>\n";

?>
Índice
gzclose -- Close an open gz-file pointer
gzcompress -- Compress a string
gzdeflate -- Deflate a string
gzencode -- Create a gzip compressed string
gzeof -- Test for end-of-file on a gz-file pointer
gzfile -- Read entire gz-file into an array
gzgetc -- Get character from gz-file pointer
gzgets -- Get line from file pointer
gzgetss -- Get line from gz-file pointer and strip HTML tags
gzinflate -- Inflate a deflated string
gzopen -- Open gz-file
gzpassthru -- Output all remaining data on a gz-file pointer
gzputs -- Alias of gzwrite()
gzread -- Binary-safe gz-file read
gzrewind -- Rewind the position of a gz-file pointer
gzseek -- Seek on a gz-file pointer
gztell -- Tell gz-file pointer read/write position
gzuncompress -- Uncompress a deflated string
gzwrite -- Binary-safe gz-file write
readgzfile -- Output a gz-file
zlib_get_coding_type -- Returns the coding type used for output compression

Anterior | Principal | Próxima
zip_read | Acima | gzclose


gzclose

(PHP 3, PHP 4 , PHP 5)

gzclose -- Close an open gz-file pointer

Description

int gzclose ( resource zp)

The gz-file pointed to by zp is closed.

Retorna TRUE em caso de sucesso ou FALSE em falhas.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen().

Anterior | Principal | Próxima
Zlib - Funções de Compressão | Acima | gzcompress


gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompress -- Compress a string

Description

string gzcompress ( string data [, int level])

This function returns a compressed version of the input data using the ZLIB data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression.

For details on the ZLIB compression algorithm see the document "ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Nota: This is not the same as gzip compression, which includes some header data. See gzencode() for gzip compression.

See also gzdeflate(),
gzinflate(),
gzuncompress(),
gzencode().

Anterior | Principal | Próxima
gzclose | Acima | gzdeflate


gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflate -- Deflate a string

Description

string gzdeflate ( string data [, int level])

This function returns a compressed version of the input data using the DEFLATE data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression. If level is not given the default compression level will be the default compression level of the zlib library.

For details on the DEFLATE compression algorithm see the document "DEFLATE Compressed Data Format Specification version 1.3" (RFC 1951).

See also
gzinflate(),
gzcompress(),
gzuncompress(),
gzencode().

Anterior | Principal | Próxima
gzcompress | Acima | gzencode


gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode -- Create a gzip compressed string

Description

string gzencode ( string data [, int level [, int encoding_mode]])

This function returns a compressed version of the input data compatible with the output of the gzip program, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression, if not given the default compression level will be the default compression level of the zlib library.

You can also give FORCE_GZIP (the default) or FORCE_DEFLATE as optional third parameter encoding_mode. If you use FORCE_DEFLATE, you get a standard zlib deflated string (inclusive zlib headers) after the gzip file header but without the trailing crc32 checksum.

Nota: level was added in PHP 4.2, before PHP 4.2 gzencode() only had the data and (optional) encoding_mode parameters..

The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Exemplo 1. Creating a gzip file

<?php
    $data = implode("", file("bigfile.txt"));
    $gzdata = gzencode($data, 9);
    $fp = fopen("bigfile.txt.gz", "w");
    fwrite($fp, $gzdata);
    fclose($fp);
?>

For more information on the GZIP file format, see the document: GZIP file format specification version 4.3 (RFC 1952).

See also gzcompress().
gzuncompress(),
gzdeflate(),
gzinflate().

Anterior | Principal | Próxima
gzdeflate | Acima | gzeof


gzeof

(PHP 3, PHP 4 , PHP 5)

gzeof -- Test for end-of-file on a gz-file pointer

Description

int gzeof ( resource zp)

Returns TRUE if the gz-file pointer is at EOF or an error occurs; otherwise returns FALSE.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

Anterior | Principal | Próxima
gzencode | Acima | gzfile


gzfile

(PHP 3, PHP 4 , PHP 5)

gzfile -- Read entire gz-file into an array

Description

array gzfile ( string filename [, int use_include_path])

Identical to readgzfile(), except that gzfile() returns the file in an array.

You can use the optional second parameter and set it to "1", if you want to search for the file in the include_path, too.

See also readgzfile(), and gzopen().

Anterior | Principal | Próxima
gzeof | Acima | gzgetc


gzgetc

(PHP 3, PHP 4 , PHP 5)

gzgetc -- Get character from gz-file pointer

Description

string gzgetc ( resource zp)

Returns a string containing a single (uncompressed) character read from the file pointed to by zp. Returns FALSE on EOF (unlike gzeof()).

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), and gzgets().

Anterior | Principal | Próxima
gzfile | Acima | gzgets


gzgets

(PHP 3, PHP 4 , PHP 5)

gzgets -- Get line from file pointer

Description

string gzgets ( resource zp, int length)

Returns a (uncompressed) string of up to length - 1 bytes read from the file pointed to by fp. Reading ends when length - 1 bytes have been read, on a newline, or on EOF (whichever comes first).

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), gzgetc(), and fgets().

Anterior | Principal | Próxima
gzgetc | Acima | gzgetss


gzgetss

(PHP 3, PHP 4 , PHP 5)

gzgetss -- Get line from gz-file pointer and strip HTML tags

Description

string gzgetss ( resource zp, int length [, string allowable_tags])

Identical to gzgets(), except that gzgetss() attempts to strip any HTML and PHP tags from the text it reads.

You can use the optional third parameter to specify tags which should not be stripped.

Nota: Allowable_tags was added in PHP 3.0.13, PHP 4.0b3.

See also gzgets(), gzopen(), and strip_tags().

Anterior | Principal | Próxima
gzgets | Acima | gzinflate


gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflate -- Inflate a deflated string

Description

string gzinflate ( string data [, int length])

This function takes data compressed by gzdeflate() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzcompress().
gzuncompress(),
gzdeflate(), and
gzencode().

Anterior | Principal | Próxima
gzgetss | Acima | gzopen


gzopen

(PHP 3, PHP 4 , PHP 5)

gzopen -- Open gz-file

Description

resource gzopen ( string filename, string mode [, int use_include_path])

Opens a gzip (.gz) file for reading or writing. The mode parameter is as in fopen() ("rb" or "wb") but can also include a compression level ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman only compression as in "wb1h". (See the description of deflateInit2 in zlib.h for more information about the strategy parameter.)

gzopen() can be used to read a file which is not in gzip format; in this case gzread() will directly read from the file without decompression.

gzopen() returns a file pointer to the file opened, after that, everything you read from this file descriptor will be transparently decompressed and what you write gets compressed.

If the open fails, the function returns FALSE.

You can use the optional third parameter and set it to "1", if you want to search for the file in the include_path, too.

Exemplo 1. gzopen() Example

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

See also gzclose().

Anterior | Principal | Próxima
gzinflate | Acima | gzpassthru


gzpassthru

(PHP 3, PHP 4 , PHP 5)

gzpassthru -- Output all remaining data on a gz-file pointer

Description

int gzpassthru ( resource zp)

Reads to EOF on the given gz-file pointer and writes the (uncompressed) results to standard output.

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

Anterior | Principal | Próxima
gzopen | Acima | gzputs


gzputs

gzputs -- Alias of gzwrite()

Description

This function is an alias of gzwrite().

Anterior | Principal | Próxima
gzpassthru | Acima | gzread


gzread

(PHP 3, PHP 4 , PHP 5)

gzread -- Binary-safe gz-file read

Description

string gzread ( resource zp, int length)

gzread() reads up to length bytes from the gz-file pointer referenced by zp. Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first.

Exemplo 1. gzread() example

<?php
// get contents of a gz-file into a string
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

See also gzwrite(), gzopen(),
gzgets(), gzgetss(),
gzfile(), and gzpassthru().

Anterior | Principal | Próxima
gzputs | Acima | gzrewind


gzrewind

(PHP 3, PHP 4 , PHP 5)

gzrewind -- Rewind the position of a gz-file pointer

Description

int gzrewind ( resource zp)

Sets the file position indicator for zp to the beginning of the file stream.

If an error occurs, returns 0.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzseek() and gztell().

Anterior | Principal | Próxima
gzread | Acima | gzseek


gzseek

(PHP 3, PHP 4 , PHP 5)

gzseek -- Seek on a gz-file pointer

Description

int gzseek ( resource zp, int offset)

Sets the file position indicator for the file referenced by zp to offset bytes into the file stream. Equivalent to calling (in C) gzseek(zp, offset, SEEK_SET).

If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek then compresses a sequence of zeroes up to the new starting position.

Upon success, returns 0; otherwise, returns -1. Note that seeking past EOF is not considered an error.

See also gztell() and gzrewind().

Anterior | Principal | Próxima
gzrewind | Acima | gztell


gztell

(PHP 3, PHP 4 , PHP 5)

gztell -- Tell gz-file pointer read/write position

Description

int gztell ( resource zp)

Returns the position of the file pointer referenced by zp; i.e., its offset into the file stream.

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), gzseek() and gzrewind().

Anterior | Principal | Próxima
gzseek | Acima | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress -- Uncompress a deflated string

Description

string gzuncompress ( string data [, int length])

This function takes data compressed by gzcompress() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzdeflate(),
gzinflate(),
gzcompress(),
gzencode().

Anterior | Principal | Próxima
gztell | Acima | gzwrite


gzwrite

(PHP 3, PHP 4 , PHP 5)

gzwrite -- Binary-safe gz-file write

Description

int gzwrite ( resource zp, string string [, int length])

gzwrite() writes the contents of string to the gz-file stream pointed to by zp. If the length argument is given, writing will stop after length (uncompressed) bytes have been written or the end of string is reached, whichever comes first.

gzwrite() returns the number of (uncompressed) bytes written to the gz-file stream pointed to by zp.

Note that if the length argument is given, then the magic_quotes_runtime configuration option will be ignored and no slashes will be stripped from string.

See also gzread(), gzopen(), and gzputs().

Anterior | Principal | Próxima
gzuncompress | Acima | readgzfile


readgzfile

(PHP 3, PHP 4 , PHP 5)

readgzfile -- Output a gz-file

Description

int readgzfile ( string filename [, int use_include_path])

Reads a file, decompresses it and writes it to standard output.

readgzfile() can be used to read a file which is not in gzip format; in this case readgzfile() will directly read from the file without decompression.

Returns the number of (uncompressed) bytes read from the file. If an error occurs, FALSE is returned and unless the function was called as @readgzfile, an error message is printed.

The file filename will be opened from the filesystem and its contents written to standard output.

You can use the optional second parameter and set it to "1", if you want to search for the file in the include_path, too.

See also gzpassthru(), gzfile(), and gzopen().

Anterior | Principal | Próxima
gzwrite | Acima | zlib_get_coding_type


zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_type -- Returns the coding type used for output compression

Description

string zlib_get_coding_type ( void )

Returns the coding type used for output compression. Possible return values are gzip, deflate, or FALSE

See also the zlib.output_compression directive.

Anterior | Principal | Próxima
readgzfile | Acima | Zend API


Zend API

Manual do PHP
Anterior Próxima

VI. Zend API

Hacking the Core of PHP

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Índice
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
Hacking the Core of PHP

Anterior | Principal | Próxima
zlib_get_coding_type |  | Overview


Overview

Manual do PHP
Anterior Próxima

Capítulo 24. Overview

Índice
What Is Zend? and What Is PHP?

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated (see Figura 24-1). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

Figura 24-1. The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Anterior | Principal | Próxima
Zend API | Acima | Extension Possibilities


Extension Possibilities

Manual do PHP
Anterior Próxima

Capítulo 25. Extension Possibilities

Índice
External Modules
Built-in Modules
The Zend Engine

As shown in Figura 24-1 above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Anterior | Principal | Próxima
Overview | Acima | Built-in Modules


Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

Anterior | Principal | Próxima
Extension Possibilities | Acima | The Zend Engine


The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Anterior | Principal | Próxima
Built-in Modules | Acima | Source Layout


Source Layout

Manual do PHP
Anterior Próxima

Capítulo 26. Source Layout

Índice
Extension Conventions
Macros
Memory Management
Directory and File Functions
String Handling
Complex Types

Nota: Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at http://www.apache.org/) and, of course, with PHP (available at http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php4 | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php4/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php4/main | This directory contains the main php macros and definitions. (important)
php4/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php4/sapi | Contains the code for the different server abstraction layers.
php4/TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
php4/Zend | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php4/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php4/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php4/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Anterior | Principal | Próxima
The Zend Engine | Acima | Macros


Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Anterior | Principal | Próxima
Source Layout | Acima | Memory Management


Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Atenção

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Anterior | Principal | Próxima
Macros | Acima | Directory and File Functions


Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

Anterior | Principal | Próxima
Memory Management | Acima | String Handling


String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Anterior | Principal | Próxima
Directory and File Functions | Acima | Complex Types


Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Nota: To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

Anterior | Principal | Próxima
String Handling | Acima | PHP's Automatic Build System


PHP's Automatic Build System

Manual do PHP
Anterior Próxima

Capítulo 27. PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see http://www.gnu.org/manual/m4/html_mono/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:
:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in Exemplo 27-1 is a bit more complex:

Exemplo 27-1. The default config.m4.

dnl $Id: Extending_Zend_Build.xml,v 1.8 2002/10/10 18:13:11 imajes Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":
if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Anterior | Principal | Próxima
Complex Types | Acima | Creating Extensions


Creating Extensions

Manual do PHP
Anterior Próxima

Capítulo 28. Creating Extensions

Índice
Compiling Modules

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. Exemplo 28-1 shows the source.

Exemplo 28-1. A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Nota: The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make. To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

--enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in Exemplo 28-1 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually. To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Anterior | Principal | Próxima
PHP's Automatic Build System | Acima | Using Extensions


Using Extensions

Manual do PHP
Anterior Próxima

Capítulo 29. Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in Exemplo 29-1. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Atenção

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Exemplo 29-1. A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file in your Web browser should give you the output shown in Figura 29-1.

Figura 29-1. Output of first_module.php.

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Anterior | Principal | Próxima
Creating Extensions | Acima | Troubleshooting


Troubleshooting

Manual do PHP
Anterior Próxima

Capítulo 30. Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Anterior | Principal | Próxima
Using Extensions | Acima | Source Discussion


Source Discussion

Manual do PHP
Anterior Próxima

Capítulo 31. Source Discussion

Índice
Module Structure
Header File Inclusions
Declaring Exported Functions
Declaration of the Zend Function Block
Declaration of the Zend Module Block
Creation of get_module()
Implementation of All Exported Functions
Summary

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Anterior | Principal | Próxima
Troubleshooting | Acima | Header File Inclusions


Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Anterior | Principal | Próxima
Source Discussion | Acima | Declaring Exported Functions


Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:
ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:
void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Tabela 31-1 for descriptions).

Tabela 31-1. Zend's Parameters to Functions Called from PHP

Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Anterior | Principal | Próxima
Header File Inclusions | Acima | Declaration of the Zend Function Block


Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Exemplo 31-1.

Exemplo 31-1. Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Nota: You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Tabela 31-2 shows a list of all the macros that you can use to define functions.

Tabela 31-2. Macros for Defining Functions

Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Anterior | Principal | Próxima
Declaring Exported Functions | Acima | Declaration of the Zend Module Block


Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Exemplo 31-2.

Exemplo 31-2. Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Tabela 31-3. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Tabela 31-3. Macros to Declare Startup and Shutdown Functions

Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Anterior | Principal | Próxima
Declaration of the Zend Function Block | Acima | Creation of get_module()


Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Anterior | Principal | Próxima
Creation of get_module() | Acima | Summary


Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Anterior | Principal | Próxima
Implementation of All Exported Functions | Acima | Accepting Arguments


Accepting Arguments

Manual do PHP
Anterior Próxima

Capítulo 32. Accepting Arguments

Índice
Determining the Number of Arguments
Retrieving Arguments
Old way of retrieving arguments (deprecated)
Dealing with a Variable Number of Arguments/Optional Parameters
Accessing Arguments
Dealing with Arguments Passed by Reference
Assuring Write Safety for Other Parameters

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:
if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message (see Figura 32-1).

Figura 32-1. WRONG_PARAM_COUNT in action.

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:
ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Anterior | Principal | Próxima
Summary | Acima | Retrieving Arguments


Retrieving Arguments

New parameter parsing API: This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameteres, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:
Warning - ini_get_all() requires at most 1 parameter, 2 given
     Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:
/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:
long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Anterior | Principal | Próxima
Accepting Arguments | Acima | Old way of retrieving arguments (deprecated)


Old way of retrieving arguments (deprecated)

Deprecated parameter parsing API: This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():
zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:
zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Anterior | Principal | Próxima
Retrieving Arguments | Acima | Dealing with a Variable Number of Arguments/Optional Parameters


Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:
zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 5)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in Exemplo 32-1. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Exemplo 32-1. PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_P(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Anterior | Principal | Próxima
Old way of retrieving arguments (deprecated) | Acima | Accessing Arguments


Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Tabela 32-1).

Note: All conversion functions expect a **zval as parameter.

Tabela 32-1. Argument Conversion Functions

Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Nota: You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM. Figura 32-2 shows the output.

Figura 32-2. Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:
zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in Exemplo 32-2.

Exemplo 32-2. PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;					/* long value */
    double dval;				/* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;				/* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;		/* value */
    unsigned char type;	/* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Tabela 32-2, Tabela 32-3 and Tabela 32-4.

Tabela 32-2. Zend zval Structure

Entry | Description
value | Union containing this variable's contents. See Tabela 32-3 for a description.
type | Contains this variable's type. For a list of available types, see Tabela 32-4.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.

Tabela 32-3. Zend zvalue_value Structure

Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.

Tabela 32-4. Zend Variable Type Constants

Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Anterior | Principal | Próxima
Dealing with a Variable Number of Arguments/Optional Parameters | Acima | Dealing with Arguments Passed by Reference


Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:
my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Exemplo 32-3.

Exemplo 32-3. Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(*parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(*parameter, 10);

Anterior | Principal | Próxima
Accessing Arguments | Acima | Assuring Write Safety for Other Parameters


Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:
zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Anterior | Principal | Próxima
Dealing with Arguments Passed by Reference | Acima | Creating Variables


Creating Variables

Manual do PHP
Anterior Próxima

Capítulo 33. Creating Variables

Índice
Overview
Longs (Integers)
Doubles (Floats)
Strings
Booleans
Arrays
Objects
Resources
Macros for Automatic Global Variable Creation
Creating Constants

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():
zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Exemplo 33-1 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Exemplo 33-1. Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Anterior | Principal | Próxima
Assuring Write Safety for Other Parameters | Acima | Longs (Integers)


Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Exemplo 33-2).

Exemplo 33-2. Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long->type = IS_LONG;
new_long->value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Anterior | Principal | Próxima
Creating Variables | Acima | Doubles (Floats)


Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.
zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double->type = IS_DOUBLE;
new_double->value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Anterior | Principal | Próxima
Longs (Integers) | Acima | Strings


Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:
new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Anterior | Principal | Próxima
Doubles (Floats) | Acima | Booleans


Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:
zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool->type = IS_BOOL;
new_bool->value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Anterior | Principal | Próxima
Strings | Acima | Arrays


Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().
zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Tabela 33-1, Tabela 33-2 and Tabela 33-3 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Tabela 33-1. Zend's API for Associative Arrays

Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabela 33-2. Zend's API for Indexed Arrays, Part 1

Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabela 33-3. Zend's API for Indexed Arrays, Part 2

Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update()() for associative arrays (see Exemplo 33-3) and zend_hash_index_update() for indexed arrays (see Exemplo 33-4):

Exemplo 33-3. Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array->value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Exemplo 33-4. Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array->value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Anterior | Principal | Próxima
Booleans | Acima | Objects


Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():
zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Tabela 33-4 to add members to your object.

Tabela 33-4. Zend's API for Object Creation

Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Anterior | Principal | Próxima
Arrays | Acima | Resources


Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Nota: In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify an unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is an unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:
void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:
typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Nota: One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_resource_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:
int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is an unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:
rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquly identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
RETURN_RESOURCE(rsrc_id)

Nota: It is common practice that if you want to return the resource immidiately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:
ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Anterior | Principal | Próxima
Objects | Acima | Macros for Automatic Global Variable Creation


Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Tabela 33-5 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Tabela 33-5. Macros for Global Variable Creation

Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Anterior | Principal | Próxima
Resources | Acima | Creating Constants


Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Tabela 33-6. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
// register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Tabela 33-6. Macros for Creating Constants

Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Anterior | Principal | Próxima
Macros for Automatic Global Variable Creation | Acima | Duplicating Variable Contents: The Copy Constructor


Duplicating Variable Contents: The Copy Constructor

Manual do PHP
Anterior Próxima

Capítulo 34. Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the lvalue (result of the evaluation of the left side of the operator) to the rvalue (same for the right side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value == *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Anterior | Principal | Próxima
Creating Constants | Acima | Returning Values


Returning Values

Manual do PHP
Anterior Próxima

Capítulo 35. Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Tabela 35-1 and Tabela 35-2.

Nota: The macros in Tabela 35-1 automatically return from your function, those in Tabela 35-2 only set the return value; they don't return from your function.

Tabela 35-1. Predefined Macros for Returning Values from a Function

Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.

Tabela 35-2. Predefined Macros for Setting the Return Value of a Function

Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Anterior | Principal | Próxima
Duplicating Variable Contents: The Copy Constructor | Acima | Printing Information


Printing Information

Manual do PHP
Anterior Próxima

Capítulo 36. Printing Information

Índice
zend_printf()
zend_error()
Including Output in phpinfo()
Execution Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

Anterior | Principal | Próxima
Returning Values | Acima | zend_error()


Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Exemplo 36-2.

Exemplo 36-2. Printing execution information.

zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

Anterior | Principal | Próxima
Including Output in phpinfo() | Acima | Startup and Shutdown Functions


Startup and Shutdown Functions

Manual do PHP
Anterior Próxima

Capítulo 37. Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Anterior | Principal | Próxima
Execution Information | Acima | Calling User Functions


Calling User Functions

Manual do PHP
Anterior Próxima

Capítulo 38. Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Exemplo 38-1 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Exemplo 38-1. Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type<br>", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{

    print("We are in the test function!<br>");

    return("hello");

}

$return_value = call_userland("test_function");

print("Return value: \"$return_value\"<br>");
?>

Anterior | Principal | Próxima
Startup and Shutdown Functions | Acima | Initialization File Support


Initialization File Support

Manual do PHP
Anterior Próxima

Capítulo 39. Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.
PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:
PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s<br>", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Tabela 39-1.

Tabela 39-1. Macros to Access Initialization Entries in PHP

Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():
ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Anterior | Principal | Próxima
Calling User Functions | Acima | Where to Go from Here


Where to Go from Here

Manual do PHP
Anterior Próxima

Capítulo 40. Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Anterior | Principal | Próxima
Initialization File Support | Acima | Reference: Some Configuration Macros


Reference: Some Configuration Macros

Manual do PHP
Anterior Próxima

Capítulo 41. Reference: Some Configuration Macros

Índice
config.m4

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Tabela 41-1.

Tabela 41-1. M4 Macros for config.m4

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Anterior | Principal | Próxima
Where to Go from Here | Acima | API Macros


API Macros

Manual do PHP
Anterior Próxima

Capítulo 42. API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see Tabela 42-1).

Tabela 42-1. API Macros for Accessing zval Containers

Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht

Anterior | Principal | Próxima
Reference: Some Configuration Macros | Acima | PHP API: Interface para criação de extensões


PHP API: Interface para criação de extensões

Manual do PHP
Anterior Próxima

VII. PHP API: Interface para criação de extensões

Índice
43. Streams API for PHP Extension Authors

Anterior | Principal | Próxima
API Macros |  | Streams API for PHP Extension Authors


Streams API for PHP Extension Authors

Manual do PHP
Anterior Próxima

Capítulo 43. Streams API for PHP Extension Authors

Índice
Overview
Streams Basics
Streams as Resources
Streams Common API Reference
Streams Dir API Reference
Streams File API Reference
Streams Socket API Reference
Streams Structures
Streams Constants

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Nota: The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.

Anterior | Principal | Próxima
PHP API: Interface para criação de extensões | Acima | Streams Basics


Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Exemplo 43-1. simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

Tabela 43-1. ANSI stdio equivalent functions in the Streams API

ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Anterior | Principal | Próxima
Streams API for PHP Extension Authors | Acima | Streams as Resources


Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Exemplo 43-2. How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Exemplo 43-3. How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Nota: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Anterior | Principal | Próxima
Streams Basics | Acima | Streams Common API Reference


Streams Common API Reference

Índice
php_stream_stat_path -- Gets the status for a file or URL
php_stream_stat -- Gets the status for the underlying storage associated with a stream
php_stream_open_wrapper -- Opens a stream on a file or URL
php_stream_read -- Read a number of bytes from a stream into a buffer
php_stream_write -- Write a number of bytes from a buffer to a stream
php_stream_eof -- Check for an end-of-file condition on a stream
php_stream_getc -- Read a single byte from a stream
php_stream_gets -- Read a line of data from a stream into a buffer
php_stream_close -- Close a stream
php_stream_flush -- Flush stream buffers to storage
php_stream_seek -- Reposition a stream
php_stream_tell -- Determine the position of a stream
php_stream_copy_to_stream -- Copy data from one stream to another
php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer
php_stream_make_seekable -- Convert a stream into a stream is seekable
php_stream_cast -- Convert a stream into another form, such as a FILE* or socket
php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket
php_stream_is_persistent -- Determines if a stream is a persistent stream
php_stream_is -- Determines if a stream is of a particular type
php_stream_passthru -- Outputs all remaining data from a stream
php_register_url_stream_wrapper -- Registers a wrapper with the Streams API
php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API
php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context
php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*
php_stream_filter_register_factory -- Registers a filter factory with the Streams API
php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Anterior | Principal | Próxima
Streams as Resources | Acima | php_stream_stat_path


Streams Dir API Reference

Índice
php_stream_opendir -- Open a directory for file enumeration
php_stream_readdir -- Fetch the next directory entry from an opened dir
php_stream_rewinddir -- Rewind a directory stream to the first entry
php_stream_closedir -- Close a directory stream and release resources

The functions listed in this section work on local files, as well as remote files (provided that the wrapper supports this functionality!).

Anterior | Principal | Próxima
php_stream_filter_unregister_factory | Acima | php_stream_opendir


Streams File API Reference

Índice
php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream
php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream
php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Anterior | Principal | Próxima
php_stream_closedir | Acima | php_stream_fopen_from_file


Streams Socket API Reference

Índice
php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream
php_stream_sock_open_host -- Open a connection to a host and return a stream
php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Anterior | Principal | Próxima
php_stream_fopen_temporary_file | Acima | php_stream_sock_open_from_socket


Streams Structures

Índice
struct php_stream_statbuf -- Holds information about a file or URL
struct php_stream_dirent -- Holds information about a single file during dir scanning
struct php_stream_ops -- Holds member functions for a stream implementation
struct php_stream_wrapper -- Holds wrapper properties and pointer to operations
struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation
struct php_stream_filter -- Holds filter properties and pointer to operations
struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Anterior | Principal | Próxima
php_stream_sock_open_unix | Acima | struct php_stream_statbuf


Streams Constants

Índice
Stream open options -- Affects the operation of stream factory functions

Anterior | Principal | Próxima
struct php_stream_filter_ops | Acima | Stream open options


FAQ: Perguntas Mais Freqüentes

Manual do PHP
Anterior Próxima

VIII. FAQ: Perguntas Mais Freqüentes

Índice
44. General Information
45. Mailing lists
46. Obtaining PHP
47. Database issues
48. Installation
49. Build Problems
50. Using PHP
51. PHP and HTML
52. PHP and COM
53. PHP and other languages
54. Migrating from PHP 2 to PHP 3
55. Migrating from PHP 3 to PHP 4
56. Questões Diversas

Anterior | Principal | Próxima
Stream open options |  | General Information


General Information

Manual do PHP
Anterior Próxima

Capítulo 44. General Information

This section holds the most general questions about PHP: what it is and what it does.

1. What is PHP?
2. What does PHP stand for?
3. What is the relation between the versions?
4. Can I run several versions of PHP at the same time?
5. What are the differences between PHP 3 and PHP 4?
6. I think I found a bug! Who should I tell?

1. What is PHP?

From the preface of the manual:

PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.

A nice introduction to PHP by Stig Sæther Bakken can be found at http://www.zend.com/zend/art/intro.php on the Zend website. Also, much of the PHP Conference Material is freely available.

2. What does PHP stand for?

PHP stands for PHP: Hypertext Preprocessor. This confuses many people because the first word of the acronym is the acronym. This type of acronym is called a recursive acronym. The curious can visit Free On-Line Dictionary of Computing for more information on recursive acronyms.

3. What is the relation between the versions?

PHP/FI 2.0 is an early and no longer supported version of PHP. PHP 3 is the successor to PHP/FI 2.0 and is a lot nicer. PHP 4 is the current generation of PHP, which uses the Zend engine under the hood. PHP 5 uses Zend engine 2 which, among other things, offers many additional OOP features. PHP 5 is experimental.

4. Can I run several versions of PHP at the same time?

Yes. See the INSTALL file that is included in the PHP 4 source distribution. Also, read the related appendix.

5. What are the differences between PHP 3 and PHP 4?

There are a couple of articles written on this by the authors of PHP 4. Here's a list of some of the more important new features:

  • Extended API module

  • Generalized build process under Unix

  • Generic web server interface that also supports multi-threaded web servers

  • Improved syntax highlighter

  • Native HTTP session support

  • Output buffering support

  • More powerful configuration system

  • Reference counting

Please see the What's new in PHP 4 overview for a detailed explanation of these features and more. If you're migrating from PHP 3 to PHP 4, also read the related appendix.

6. I think I found a bug! Who should I tell?

You should go to the PHP Bug Database and make sure the bug isn't a known bug. If you don't see it in the database, use the reporting form to report the bug. It is important to use the bug database instead of just sending an email to one of the mailing lists because the bug will have a tracking number assigned and it will then be possible for you to go back later and check on the status of the bug. The bug database can be found at http://bugs.php.net/.

Anterior | Principal | Próxima
FAQ: Perguntas Mais Freqüentes | Acima | Mailing lists


Mailing lists

Manual do PHP
Anterior Próxima

Capítulo 45. Mailing lists

This section holds questions about how to get in touch with the PHP community. The best way is the mailing lists.

1. Are there any PHP mailing lists?
2. Are there any other communities?
3. Help! I can't seem to subscribe/unsubscribe to/from one of the mailing lists!
4. Is there an archive of the mailing lists anywhere?
5. What can I ask the mailing list?
6. What information should I include when posting to the mailing list?

1. Are there any PHP mailing lists?

Of course! There are many mailing lists for several subjects. A whole list of mailing lists can be found on our Support page.

The most general mailing list is php-general. To subscribe, send mail to php-general-subscribe@lists.php.net. You don't need to include anything special in the subject or body of the message. To unsubscribe, send mail to php-general-unsubscribe@lists.php.net.

You can also subscribe and unsubscribe using the web interface on our Support page.

2. Are there any other communities?

There are countless of them around the world. We have links for example to some IRC servers and foreign language mailing lists on our Support page.

3. Help! I can't seem to subscribe/unsubscribe to/from one of the mailing lists!

If you have problems subscribing to or unsubscribing from the php-general mailing list, it may be because the mailing list software can't figure out the correct mailing address to use. If your email address was joeblow@example.com, you can send your subscription request to php-general-subscribe-joeblow=example.com@lists.php.net, or your unsubscription request to php-general-unsubscribe-joeblow=example.com@lists.php.net. Use similar addresses for the other mailing lists.

4. Is there an archive of the mailing lists anywhere?

Yes, you will find a list of archive sites on the Support page. The mailing list articles are also archived as news messages. You can access the news server at news://news.php.net/ with a news client. There is also an experimental web interface for the news server at http://news.php.net/

5. What can I ask the mailing list?

Since PHP is growing more and more popular by the day the traffic has increased on the php-general mailing list and as of now the list gets about 150 to 200 posts a day. Because of this it is in everyones interest that you use the list as a last resort when you have looked everywhere else.

Before you post to the list please have a look in this FAQ and the manual to see if you can find the help there. If there is nothing to be found there try out the mailing list archives (see above). If you're having problem with installing or configuring PHP please read through all included documentation and README's. If you still can't find any information that helps you out you're more than welcome to use the mailing list.

Before asking questions, you may want to read the paper on How To Ask Questions The Smart Way as this is a good idea for everyone.

6. What information should I include when posting to the mailing list?

Posts like "I can't get PHP up and running! Help me! What is wrong?" are of absolutely no use to anyone. If you're having problems getting PHP up and running you must include what operating system you are running on, what version of PHP you're trying to set up, how you got it (pre-compiled, CVS, RPMs and so on), what you have done so far, where you got stuck and the exact error message.

This goes for any other problem as well. You have to include information on what you have done, where you got stuck, what you're trying to do and, if applicable, exact error messages. If you're having problems with your source code you need to include the part of the code that isn't working. Do not include more code than necessary though! It makes the post hard to read and a lot of people might just skip it all together because of this. If you're unsure about how much information to include in the mail it's better that you include to much than to little.

Another important thing to remember is to summarize your problem on the subject line. A subject like "HELP MEEEE!!!" or "What is the problem here?" will be ignored by the majority of the readers.

And lastly, you're encouraged to read the paper on How To Ask Questions The Smart Way as this will be a great help for everyone, especially yourself.

Anterior | Principal | Próxima
General Information | Acima | Obtaining PHP


Obtaining PHP

Manual do PHP
Anterior Próxima

Capítulo 46. Obtaining PHP

This section has details about PHP download locations, and OS issues.

1. Where can I obtain PHP?
2. Are pre-compiled binary versions available?
3. Where can I get libraries needed to compile some of the optional PHP extensions?
4. How do I get these libraries to work?
5. I got the latest version of the PHP source code from the CVS repository on my Windows machine, what do I need to compile it?
6. Where do I find the Browser Capabilities File?

1. Where can I obtain PHP?

You can download PHP from any of the members of the PHP network of sites. These can be found at http://www.php.net/. You can also use anonymous CVS to get the absolute latest version of the source. For more information, go to http://www.php.net/anoncvs.php.

2. Are pre-compiled binary versions available?

We only distribute precompiled binaries for Windows systems, as we are not able to compile PHP for every major Linux/Unix platform with every extension combination. Also note, that many Linux distributions come with PHP built in these days. Windows binaries can be downloaded from our Downloads page, for Linux binaries, please visit your distributions website.

3. Where can I get libraries needed to compile some of the optional PHP extensions?

Nota: Those marked with * are not thread-safe libraries, and should not be used with PHP as a server module in the multi-threaded Windows web servers (IIS, Netscape). This does not matter in Unix environments, yet.

  • LDAP (Unix).

  • LDAP* (Unix).

  • LDAP (Unix/Win) : Netscape Directory (LDAP) SDK 1.1.

  • free LDAP server.

  • Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.

  • SNMP* (Unix): .

  • GD* (Unix/Win).

  • mSQL* (Unix).

  • PostgreSQL (Unix).

  • IMAP* (Win/Unix).

  • Sybase-CT* (Linux, libc5) : Available locally.

  • FreeType (libttf):.

  • ZLib (Unix/Win32).

  • expat XML parser (Unix/Win32).

  • PDFLib.

  • mcrypt.

  • mhash.

  • t1lib.

  • dmalloc.

  • aspell.

  • readline.

4. How do I get these libraries to work?

You will need to follow instructions provided with the library. Some of these libraries are detected automatically when you run the 'configure' script of PHP (such as the GD library), and others you will have to enable using '--with-EXTENSION' options to 'configure'. Run 'configure --help' for a listing of these.

5. I got the latest version of the PHP source code from the CVS repository on my Windows machine, what do I need to compile it?

First, you will need Microsoft Visual C++ v6 (v5 may do it also, but we do it with v6), and you will need some support files. See the manual section about building PHP from source on Windows.

6. Where do I find the Browser Capabilities File?

You can find a browscap.ini file at http://www.garykeith.com/browsers/downloads.asp.

Anterior | Principal | Próxima
Mailing lists | Acima | Database issues


Database issues

Manual do PHP
Anterior Próxima

Capítulo 47. Database issues

This section holds common questions about relation between PHP and databases. Yes, PHP can access virtually any database available today.

1. I heard it's possible to access Microsoft SQL Server from PHP. How?
2. Can I access Microsoft Access databases?
3. I upgraded to PHP 4, and now mysql keeps telling me "Warning: MySQL: Unable to save result set in ...". What's up?
4. PHP 5 no longer bundles MySQL client libraries, what does this mean to me? Can I still use MySQL with PHP? I try to use MySQL and get "function undefined" errors, what gives?
5. After installing shared MySQL support, Apache dumps core as soon as libphp4.so is loaded. Can this be fixed?
6. Why do I get an error that looks something like this: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

1. I heard it's possible to access Microsoft SQL Server from PHP. How?

On Windows machines, you can simply use the included ODBC support and the correct ODBC driver.

On Unix machines, you can use the Sybase-CT driver to access Microsoft SQL Servers because they are (at least mostly) protocol-compatible. Sybase has made a free version of the necessary libraries for Linux systems. For other Unix operating systems, you need to contact Sybase for the correct libraries. Also see the answer to the next question.

2. Can I access Microsoft Access databases?

Yes. You already have all the tools you need if you are running entirely under Windows 9x/Me, or NT/2000, where you can use ODBC and Microsoft's ODBC drivers for Microsoft Access databases.

If you are running PHP on a Unix box and want to talk to MS Access on a Windows box you will need Unix ODBC drivers. OpenLink Software has Unix-based ODBC drivers that can do this. There is a free pilot program where you can download an evaluation copy that doesn't expire and prices start at $675 for the commercial supported version.

Another alternative is to use an SQL server that has Windows ODBC drivers and use that to store the data, which you can then access from Microsoft Access (using ODBC) and PHP (using the built in drivers), or to use an intermediary file format that Access and PHP both understand, such as flat files or dBase databases. On this point Tim Hayes from OpenLink software writes:

Using another database as an intermediary is not a good idea, when you can use ODBC from PHP straight to your database - i.e. with OpenLink's drivers. If you do need to use an intermediary file format, OpenLink have now released Virtuoso (a virtual database engine) for NT, Linux and other Unix platforms. Please visit our website for a free download.

One option that has proved successful is to use MySQL and its MyODBC drivers on Windows and synchronizing the databases. Steve Lawrence writes:

  • Install MySQL on your platform according to instructions with MySQL. Latest available from www.mysql.com (get it from your mirror!). No special configuration required except when you set up a database, and configure the user account, you should put % in the host field, or the host name of the Windows computer you wish to access MySQL with. Make a note of your server name, username, and password.

  • Download the MyODBC for Windows driver from the MySQL site. Latest release is myodbc-2_50_19-win95.zip (NT available too, as well as source code). Install it on your Windows machine. You can test the operation with the utilities included with this program.

  • Create a user or system dsn in your ODBC administrator, located in the control panel. Make up a dsn name, enter your hostname, user name, password, port, etc for you MySQL database configured in step 1.

  • Install Access with a full install, this makes sure you get the proper add-ins.. at the least you will need ODBC support and the linked table manager.

  • Now the fun part! Create a new access database. In the table window right click and select Link Tables, or under the file menu option, select Get External Data and then Link Tables. When the file browser box comes up, select files of type: ODBC. Select System dsn and the name of your dsn created in step 3. Select the table to link, press OK, and presto! You can now open the table and add/delete/edit data on your MySQL server! You can also build queries, import/export tables to MySQL, build forms and reports, etc.

Tips and Tricks:

  • You can construct your tables in Access and export them to MySQL, then link them back in. That makes table creation quick.

  • When creating tables in Access, you must have a primary key defined in order to have write access to the table in access. Make sure you create a primary key in MySQL before linking in access

  • If you change a table in MySQL, you have to re-link it in Access. Go to tools>add-ins>linked table manager, cruise to your ODBC DSN, and select the table to re-link from there. you can also move your dsn source around there, just hit the always prompt for new location checkbox before pressing OK.

3. I upgraded to PHP 4, and now mysql keeps telling me "Warning: MySQL: Unable to save result set in ...". What's up?

Most likely what has happened is, PHP 4 was compiled with the '--with-mysql' option, without specifying the path to MySQL. This means PHP is using its built-in MySQL client library. If your system is running applications, such as PHP 3 as a concurrent Apache module, or auth-mysql, that use other versions of MySQL clients, then there is a conflict between the two differing versions of those clients.

Recompiling PHP 4, and adding the path to MySQL to the flag, '--with-mysql=/your/path/to/mysql' usually solves the problem.

4. PHP 5 no longer bundles MySQL client libraries, what does this mean to me? Can I still use MySQL with PHP? I try to use MySQL and get "function undefined" errors, what gives?

Yes. There will always be MySQL support in PHP of one kind or another. The only change in PHP 5 is that we are no longer bundling the client library itself. Some reasons in no particular order:

  • Most systems these days already have the client library installed.

  • Given the above, having multiple versions of the library can get messy. For example, if you link mod_auth_mysql against one version and PHP against another, and then enable both in Apache, you get a nice fat crash. Also, the bundled library didn't always play well with the installed server version. The most obvious symptom of this being disagreement over where to find the mysql.socket Unix domain socket file.

  • Maintenance was somewhat lax and it was falling further and further behind the released version.

  • Future versions of the library are under the GPL and thus we don't have an upgrade path since we cannot bundle a GPL'ed library in a BSD/Apache-style licensed project. A clean break in PHP 5 seemed like the best option.

This won't actually affect that many people. Unix users, at least the ones who know what they are doing, tend to always build PHP against their system's libmyqlclient library simply by doing --with-mysql=/usr when building PHP. Windows users may enable the extension php_mysql.dll inside php.ini. Also, copy libmySQL.dll into the appropriate %SYSTEMROOT% directory, just like you do with every other bundled DLL from the dll directory.

5. After installing shared MySQL support, Apache dumps core as soon as libphp4.so is loaded. Can this be fixed?

If your MySQL libs are linked against pthreads this will happen. Check using ldd. If they are, grab the MySQL tarball and compile from source, or recompile from the source rpm and remove the switch in the spec file that turns on the threaded client code. Either of these suggestions will fix this. Then recompile PHP with the new MySQL libs.

6. Why do I get an error that looks something like this: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

You are trying to use a result identifier that is 0. The 0 indicates that your query failed for some reason. You need to check for errors after submitting a query and before you attempt to use the returned result identifier. The proper way to do this is with code similar to the following:
<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
or
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>

Anterior | Principal | Próxima
Obtaining PHP | Acima | Installation


Installation

Manual do PHP
Anterior Próxima

Capítulo 48. Installation

This section holds common questions about the way to install PHP. PHP is available for almost any OS (except maybe for MacOS before OSX), and almost any web server.

To install PHP, follow the instructions in the INSTALL file located in the distribution. Windows users should also read the install.txt file. There are also some helpful hints for Windows users here.

1. Unix/Windows: Where should my php.ini file be located?
2. Unix: I installed PHP, but every time I load a document, I get the message 'Document Contains No Data'! What's going on here?
3. Unix: I installed PHP using RPMS, but Apache isn't processing the PHP pages! What's going on here?
4. Unix: I installed PHP 3 using RPMS, but it doesn't compile with the database support I need! What's going on here?
5. Unix: I patched Apache with the FrontPage extensions patch, and suddenly PHP stopped working. Is PHP incompatible with the Apache FrontPage extensions?
6. Unix/Windows: I have installed PHP, but when I try to access a PHP script file via my browser, I get a blank screen.
7. Unix/Windows: I have installed PHP, but when try to access a PHP script file via my browser, I get a server 500 error.
8. Some operating systems: I have installed PHP without errors, but when I try to start apache I get undefined symbol errors:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress
9. Windows: I have installed PHP, but when I to access a PHP script file via my browser, I get the error:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:
10. Windows: I've followed all the instructions, but still can't get PHP and IIS to work together!
11. When running PHP as CGI with IIS, PWS, OmniHTTPD or Xitami, I get the following error: Security Alert! PHP CGI cannot be accessed directly..
12. How do I know if my php.ini is being found and read? It seems like it isn't as my changes aren't being implemented.

1. Unix/Windows: Where should my php.ini file be located?

By default on Unix it should be in /usr/local/lib which is <install-path>/lib. Most people will want to change this at compile-time with the --with-config-file-path flag. You would, for example, set it with something like:
--with-config-file-path=/etc
And then you would copy php.ini-dist from the distribution to /etc/php.ini and edit it to make any local changes you want.

--with-config-file-scan-dir=PATH

On Windows the default path for the php.ini file is the Windows directory. If you're using the Apache webserver, php.ini is first searched in the Apaches install directory, e.g. c:\program files\apache group\apache. This way you can have different php.ini files for different versions of Apache on the same machine.

See also the chapter about the configuration file.

2. Unix: I installed PHP, but every time I load a document, I get the message 'Document Contains No Data'! What's going on here?

This probably means that PHP is having some sort of problem and is core-dumping. Look in your server error log to see if this is the case, and then try to reproduce the problem with a small test case. If you know how to use 'gdb', it is very helpful when you can provide a backtrace with your bug report to help the developers pinpoint the problem. If you are using PHP as an Apache module try something like:

  • Stop your httpd processes

  • gdb httpd

  • Stop your httpd processes

  • > run -X -f /path/to/httpd.conf

  • Then fetch the URL causing the problem with your browser

  • > run -X -f /path/to/httpd.conf

  • If you are getting a core dump, gdb should inform you of this now

  • type: bt

  • You should include your backtrace in your bug report. This should be submitted to http://bugs.php.net/

If your script uses the regular expression functions (ereg() and friends), you should make sure that you compiled PHP and Apache with the same regular expression package. This should happen automatically with PHP and Apache 1.3.x

3. Unix: I installed PHP using RPMS, but Apache isn't processing the PHP pages! What's going on here?

Assuming you installed both Apache and PHP from RPM packages, you need to uncomment or add some or all of the following lines in your httpd.conf file:
# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     # for PHP 3
LoadModule php4_module        modules/libphp4.so     # for PHP 4
LoadModule perl_module        modules/libperl.so
And add:
AddType application/x-httpd-php3 .php3    # for PHP 3
AddType application/x-httpd-php .php      # for PHP 4
... to the global properties, or to the properties of the VirtualDomain you want to have PHP support added to.

4. Unix: I installed PHP 3 using RPMS, but it doesn't compile with the database support I need! What's going on here?

Due to the way PHP 3 built, it is not easy to build a complete flexible PHP RPM. This issue is addressed in PHP 4. For PHP 3, we currently suggest you use the mechanism described in the INSTALL.REDHAT file in the PHP distribution. If you insist on using an RPM version of PHP 3, read on...

The RPM packagers are setting up the RPMS to install without database support to simplify installations and because RPMS use /usr/ instead of the standard /usr/local/ directory for files. You need to tell the RPM spec file which databases to support and the location of the top-level of your database server.

This example will explain the process of adding support for the popular MySQL database server, using the mod installation for Apache.

Of course all of this information can be adjusted for any database server that PHP supports. We will assume you installed MySQL and Apache completely with RPMS for this example as well.

  • First remove mod_php3 :
    rpm -e mod_php3

  • Then get the source rpm and INSTALL it, NOT --rebuild
    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • Then edit the /usr/src/redhat/SPECS/mod_php3.spec file

    In the %build section add the database support you want, and the path.

    For MySQL you would add
    --with-mysql=/usr \
    The %build section will look something like this:
    ./configure --prefix=/usr \
    --with-apxs=/usr/sbin/apxs \
    --with-config-file-path=/usr/lib \
    --enable-debug=no \
    --enable-safe-mode \
    --with-exec-dir=/usr/bin \
    --with-mysql=/usr \
    --with-system-regex

  • Once this modification is made then build the binary rpm as follows:
    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • Then install the rpm
    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

Make sure you restart Apache, and you now have PHP 3 with MySQL support using RPM's. Note that it is probably much easier to just build from the distribution tarball of PHP 3 and follow the instructions in INSTALL.REDHAT found in that distribution.

5. Unix: I patched Apache with the FrontPage extensions patch, and suddenly PHP stopped working. Is PHP incompatible with the Apache FrontPage extensions?

No, PHP works fine with the FrontPage extensions. The problem is that the FrontPage patch modifies several Apache structures, that PHP relies on. Recompiling PHP (using 'make clean ; make') after the FP patch is applied would solve the problem.

6. Unix/Windows: I have installed PHP, but when I try to access a PHP script file via my browser, I get a blank screen.

Do a 'view source' in the web browser and you will probably find that you can see the source code of your PHP script. This means that the web server did not send the script to PHP for interpretation. Something is wrong with the server configuration - double check the server configuration against the PHP installation instructions.

7. Unix/Windows: I have installed PHP, but when try to access a PHP script file via my browser, I get a server 500 error.

Something went wrong when the server tried to run PHP. To get to see a sensible error message, from the command line, change to the directory containing the PHP executable (php.exe on Windows) and run php -i. If PHP has any problems running, then a suitable error message will be displayed which will give you a clue as to what needs to be done next. If you get a screen full of HTML codes (the output of the phpinfo() function) then PHP is working, and your problem may be related to your server configuration which you should double check.

8. Some operating systems: I have installed PHP without errors, but when I try to start apache I get undefined symbol errors:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

This has actually nothing to do with PHP, but with the MySQL client libraries. Some need --with-zlib, others do not. This is also covered in the MySQL FAQ.

9. Windows: I have installed PHP, but when I to access a PHP script file via my browser, I get the error:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

This error message means that PHP failed to output anything at all. To get to see a sensible error message, from the command line, change to the directory containing the PHP executable (php.exe on Windows) and run php -i. If PHP has any problems running, then a suitable error message will be displayed which will give you a clue as to what needs to be done next. If you get a screen full of HTML codes (the output of the phpinfo() function) then PHP is working.

Once PHP is working at the command line, try accessing the script via the browser again. If it still fails then it could be one of the following:

  • File permissions on your PHP script, php.exe, php4ts.dll, php.ini or any PHP extensions you are trying to load are such that the anonymous internet user ISUR_<machinename> cannot access them.

  • The script file does not exist (or possibly isn't where you think it is relative to your web root directory). Note that for IIS you can trap this error by ticking the 'check file exists' box when setting up the script mappings in the Internet Services Manager. If a script file does not exist then the server will return a 404 error instead. There is also the additional benefit that IIS will do any authentication required for you based on the NTLanMan permissions on your script file.

10. Windows: I've followed all the instructions, but still can't get PHP and IIS to work together!

Make sure any user who needs to run a PHP script has the rights to run php.exe! IIS uses an anonymous user which is added at the time IIS is installed. This user needs rights to php.exe. Also, any authenticated user will also need rights to execute php.exe. And for IIS4 you need to tell it that PHP is a script engine. Also, you will want to read this faq.

11. When running PHP as CGI with IIS, PWS, OmniHTTPD or Xitami, I get the following error: Security Alert! PHP CGI cannot be accessed directly..

You must set the cgi.force_redirect directive to 0. It defaults to 1 so be sure the directive isn't commented out (with a ;). Like all directives, this is set in php.ini

Because the default is 1, it's critical that you're 100% sure that the correct php.ini file is being read. Read this faq for details.

12. How do I know if my php.ini is being found and read? It seems like it isn't as my changes aren't being implemented.

To be sure your php.ini is being read by PHP, make a call to phpinfo() and near the top will be a listing called Configuration File (php.ini). This will tell you where PHP is looking for php.ini and whether or not it's being read. If just a directory PATH exists than it's not being read and you should put your php.ini in that directory. If php.ini is included within the PATH than it is being read.

If php.ini is being read and you're running PHP as a module, then be sure to restart your web server after making changes to php.ini

Anterior | Principal | Próxima
Database issues | Acima | Build Problems


Build Problems

Manual do PHP
Anterior Próxima

Capítulo 49. Build Problems

This section gathers most common errors that occur at build time.

1. I got the latest version of PHP using the anonymous CVS service, but there's no configure script!
2. I'm having problems configuring PHP to work with Apache. It says it can't find httpd.h, but it's right where I said it is!
3. While configuring PHP (./configure), you come across an error similar to the following:
4. When I try to start Apache, I get the following message:
5. When I run configure, it says that it can't find the include files or library for GD, gdbm, or some other package!
6. When it is compiling the file language-parser.tab.c, it gives me errors that say yytname undeclared.
7. When I run make, it seems to run fine but then fails when it tries to link the final application complaining that it can't find some files.
8. When linking PHP, it complains about a number of undefined references.
9. I can't figure out how to build PHP with Apache 1.3.
10. I have followed all the steps to install the Apache module version on Unix, and my PHP scripts show up in my browser or I am being asked to save the file.
11. It says to use: --activate-module=src/modules/php4/libphp4.a, but that file doesn't exist, so I changed it to --activate-module=src/modules/php4/libmodphp4.a and it doesn't work!? What's going on?
12. When I try to build Apache with PHP as a static module using --activate-module=src/modules/php4/libphp4.a it tells me that my compiler is not ANSI compliant.
13. When I try to build PHP using --with-apxs I get strange error messages.
14. During make, I get errors in microtime, and a lot of RUSAGE_ stuff.
15. When compiling PHP with MySQL, configure runs fine but during make I get an error similar to the following: ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', what's wrong?
16. I want to upgrade my PHP. Where can I find the ./configure line that was used to build my current PHP installation?
17. When building PHP with the GD library it either gives strange compile errors or segfaults on execution.
18. When compiling PHP I seemingly get random errors, like it hangs. I'm using Solaris if that matters.

1. I got the latest version of PHP using the anonymous CVS service, but there's no configure script!

You have to have the GNU autoconf package installed so you can generate the configure script from configure.in. Just run ./buildconf in the top-level directory after getting the sources from the CVS server. (Also, unless you run configure with the --enable-maintainer-mode option, the configure script will not automatically get rebuilt when the configure.in file is updated, so you should make sure to do that manually when you notice configure.in has changed. One symptom of this is finding things like @VARIABLE@ in your Makefile after configure or config.status is run.)

2. I'm having problems configuring PHP to work with Apache. It says it can't find httpd.h, but it's right where I said it is!

You need to tell the configure/setup script the location of the top-level of your Apache source tree. This means that you want to specify --with-apache=/path/to/apache and not --with-apache=/path/to/apache/src.

3. While configuring PHP (./configure), you come across an error similar to the following:

checking lex output file root... ./configure: lex: command not found
       configure: error: cannot find output from lex; giving up

Be sure to read the installation instructions carefully and note that you need both flex and bison installed to compile PHP. Depending on your setup you will install bison and flex from either source or a package, such as a RPM.

4. When I try to start Apache, I get the following message:

fatal: relocation error: file /path/to/libphp4.so:
       symbol ap_block_alarms: referenced symbol not found

This error usually comes up when one compiles the Apache core program as a DSO library for shared usage. Try to reconfigure apache, making sure to use at least the following flags:

--enable-shared=max --enable-rule=SHARED_CORE

For more information, read the top-level Apache INSTALL file or the Apache DSO manual page.

5. When I run configure, it says that it can't find the include files or library for GD, gdbm, or some other package!

You can make the configure script looks for header files and libraries in non-standard locations by specifying additional flags to pass to the C preprocessor and linker, such as:
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
If you're using a csh-variant for your login shell (why?), it would be:
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

6. When it is compiling the file language-parser.tab.c, it gives me errors that say yytname undeclared.

You need to update your version of Bison. You can find the latest version at http://www.gnu.org/software/bison/bison.html.

7. When I run make, it seems to run fine but then fails when it tries to link the final application complaining that it can't find some files.

Some old versions of make that don't correctly put the compiled versions of the files in the functions directory into that same directory. Try running cp *.o functions and then re-running make to see if that helps. If it does, you should really upgrade to a recent version of GNU make.

8. When linking PHP, it complains about a number of undefined references.

Take a look at the link line and make sure that all of the appropriate libraries are being included at the end. Common ones that you might have missed are '-ldl' and any libraries required for any database support you included.

If you're linking with Apache 1.2.x, did you remember to add the appropriate information to the EXTRA_LIBS line of the Configuration file and re-rerun Apache's Configure script? See the INSTALL file that comes with the distribution for more information.

Some people have also reported that they had to add '-ldl' immediately following libphp4.a when linking with Apache.

9. I can't figure out how to build PHP with Apache 1.3.

This is actually quite easy. Follow these steps carefully:

  • Grab the latest Apache 1.3 distribution from http://www.apache.org/dist/httpd/.

  • Ungzip and untar it somewhere, for example /usr/local/src/apache-1.3.

  • Compile PHP by first running ./configure --with-apache=/<path>/apache-1.3 (substitute <path> for the actual path to your apache-1.3 directory.

  • Type make followed by make install to build PHP and copy the necessary files to the Apache distribution tree.

  • Change directories into to your /<path>/apache-1.3/src directory and edit the Configuration file. Add to the file: AddModule modules/php4/libphp4.a.

  • Type: ./configure followed by make.

  • You should now have a PHP-enabled httpd binary!

Note: You can also use the new Apache ./configure script. See the instructions in the README.configure file which is part of your Apache distribution. Also have a look at the INSTALL file in the PHP distribution.

10. I have followed all the steps to install the Apache module version on Unix, and my PHP scripts show up in my browser or I am being asked to save the file.

This means that the PHP module is not getting invoked for some reason. Three things to check before asking for further help:

  • Make sure that the httpd binary you are running is the actual new httpd binary you just built. To do this, try running: /path/to/binary/httpd -l

    If you don't see mod_php4.c listed then you are not running the right binary. Find and install the correct binary.

  • Make sure you have added the correct Mime Type to one of your Apache .conf files. It should be: AddType application/x-httpd-php3 .php3 (for PHP 3)

    or AddType application/x-httpd-php .php (for PHP 4)

    Also make sure that this AddType line is not hidden away inside a <Virtualhost> or <Directory> block which would prevent it from applying to the location of your test script.

  • Finally, the default location of the Apache configuration files changed between Apache 1.2 and Apache 1.3. You should check to make sure that the configuration file you are adding the AddType line to is actually being read. You can put an obvious syntax error into your httpd.conf file or some other obvious change that will tell you if the file is being read correctly.

11. It says to use: --activate-module=src/modules/php4/libphp4.a, but that file doesn't exist, so I changed it to --activate-module=src/modules/php4/libmodphp4.a and it doesn't work!? What's going on?

Note that the libphp4.a file is not supposed to exist. The apache process will create it!

12. When I try to build Apache with PHP as a static module using --activate-module=src/modules/php4/libphp4.a it tells me that my compiler is not ANSI compliant.

This is a misleading error message from Apache that has been fixed in more recent versions.

13. When I try to build PHP using --with-apxs I get strange error messages.

There are three things to check here. First, for some reason when Apache builds the apxs Perl script, it sometimes ends up getting built without the proper compiler and flags variables. Find your apxs script (try the command which apxs), it's sometimes found in /usr/local/apache/bin/apxs or /usr/sbin/apxs. Open it and check for lines similar to these:
my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
If this is what you see, you have found your problem. They may contain just spaces or other incorrect values, such as 'q()'. Change these lines to say:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
The second possible problem should only be an issue on Red Hat 6.1 and 6.2. The apxs script Red Hat ships is broken. Look for this line:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
If you see the above line, change it to this:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Last, if you reconfigure/reinstall Apache, add a make clean to the process after ./configure and before make.

14. During make, I get errors in microtime, and a lot of RUSAGE_ stuff.

During the make portion of installation, if you encounter problems that look similar to this:
microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

Your system is broken. You need to fix your /usr/include files by installing a glibc-devel package that matches your glibc. This has absolutely nothing to do with PHP. To prove this to yourself, try this simple test:
$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
If that spews out errors, you know your include files are messed up.

15. When compiling PHP with MySQL, configure runs fine but during make I get an error similar to the following: ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', what's wrong?

First, it's important to realize that this is a Warning and not a fatal error. Because this is often the last output seen during make, it may seem like a fatal error but it's not. Of course, if you set your compiler to die on Warnings, it will. Also keep in mind that MySQL support is enabled by default.

Nota: As of PHP 4.3.2, you'll also see the following text after the build (make) completes:

Build complete.
        (It is safe to ignore warnings about tempnam and tmpnam).

16. I want to upgrade my PHP. Where can I find the ./configure line that was used to build my current PHP installation?

Either you look at config.nice file, in the source tree of your current PHP installation or, if this is not available, you simply run a
<?php phpinfo(); ?>
script. On top of the output the ./configure line, that was used to build this PHP installation is shown.

17. When building PHP with the GD library it either gives strange compile errors or segfaults on execution.

Make sure your GD library and PHP are linked against the same depending libraries (e.g. libpng).

18. When compiling PHP I seemingly get random errors, like it hangs. I'm using Solaris if that matters.

Using non-GNU utilities while compiling PHP may cause problems. Be sure to use GNU tools in order to be certain that compiling PHP will work. For example, on Solaris, using either the SunOS BSD-compatible or Solaris versions of sed will not work, but using the GNU or Sun POSIX (xpg4) versions of sed will work. Links: GNU sed, GNU flex, and GNU bison.

Anterior | Principal | Próxima
Installation | Acima | Using PHP


Using PHP

Manual do PHP
Anterior Próxima

Capítulo 50. Using PHP

This section gathers many common errors that you may face while writing PHP scripts.

1. I would like to write a generic PHP script that can handle data coming from any form. How do I know which POST method variables are available?
2. I need to convert all single-quotes (') to a backslash followed by a single-quote (\'). How can I do this with a regular expression? I'd also like to convert " to \" and \ to \\.
3. All my " turn into \" and my ' turn into \', how do I get rid of all these unwanted backslashes? How and why did they get there?
4. When I do the following, the output is printed in the wrong order:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
what's going on?
5. Hey, what happened to my newlines?
<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>
6. I get the message 'Warning: Cannot send session cookie - headers already sent...' or 'Cannot add header information - headers already sent...'.
7. I need to access information in the request header directly. How can I do this?
8. When I try to use authentication with IIS I get 'No Input file specified'.
9. My PHP script works on IE and Lynx, but on Netscape some of my output is missing. When I do a "View Source" I see the content in IE but not in Netscape.
10. How am I supposed to mix XML and PHP? It complains about my <?xml tags!
11. How can I use PHP with FrontPage or some other HTML editor that insists on moving my code around?
12. Where can I find a complete list of variables are available to me in PHP?
13. How can I generate PDF files without using the non-free and commercial libraries ClibPDF and PDFLib? I'd like something that's free and doesn't require external PDF libraries.
14. I'm trying to access one of the standard CGI variables (such as $DOCUMENT_ROOT or $HTTP_REFERER) in a user-defined function, and it can't seem to find it. What's wrong?

1. I would like to write a generic PHP script that can handle data coming from any form. How do I know which POST method variables are available?

PHP offers many predefined variables, like the superglobal $_POST. You may loop through $_POST as it's an associate array of all POSTed values. For example, let's simply loop through it with foreach, check for empty() values, and print them out.
<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "None of the POSTed values are empty, posted:\n";
    var_dump($post);
} else {
    print "We have " . count($empty) . " empty values\n";
    print "Posted:\n"; var_dump($post);
    print "Empty:\n";  var_dump($empty);
    exit;
}
?>

Disponibilidade das superglobais:: Desde o PHP 4.1.0, os arrays superglobais como $_GET , $_POST, $_SERVER, etc. sempre estão carregados. Para mais informações, leia a seção do manual sobre superglobals

2. I need to convert all single-quotes (') to a backslash followed by a single-quote (\'). How can I do this with a regular expression? I'd also like to convert " to \" and \ to \\.

The function addslashes() will do this. See also mysql_escape_string(). You may also strip backslashes with stripslashes().

Nota sobre a diretiva magic_quotes_gpc:: A diretiva do PHP magic_quotes_gpc tem default on. Ela essencialmente roda addslashes() em todos os dados postados por GET, POST e COOKIEs. Você pode utilizar stripslashes() para reverter isso.

3. All my " turn into \" and my ' turn into \', how do I get rid of all these unwanted backslashes? How and why did they get there?

The PHP function stripslashes() will strip those backslashes from your string. Most likely the backslashes magically exist because the PHP directive magic_quotes_gpc is on.

Nota sobre a diretiva magic_quotes_gpc:: A diretiva do PHP magic_quotes_gpc tem default on. Ela essencialmente roda addslashes() em todos os dados postados por GET, POST e COOKIEs. Você pode utilizar stripslashes() para reverter isso.

4. When I do the following, the output is printed in the wrong order:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
what's going on?

To be able to use the results of your function in an expression (such as concatenating it with other strings in the example above), you need to return() the value, not echo() it.

5. Hey, what happened to my newlines?
<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>

In PHP, the ending for a block of code is either "?>" or "?>\n" (where \n means a newline). So in the example above, the echoed sentences will be on one line, because PHP omits the newlines after the block ending. This means that you need to insert an extra newline after each block of PHP code to make it print out one newline.

Why does PHP do this? Because when formatting normal HTML, this usually makes your life easier because you don't want that newline, but you'd have to create extremely long lines or otherwise make the raw page source unreadable to achieve that effect.

6. I get the message 'Warning: Cannot send session cookie - headers already sent...' or 'Cannot add header information - headers already sent...'.

The functions header(), setcookie(), and the session functions need to add headers to the output stream but headers can only be sent before all other content. There can be no output before using these functions, output such as HTML. The function headers_sent() will check if your script has already sent headers and see also the Output Control functions.

7. I need to access information in the request header directly. How can I do this?

The getallheaders() function will do this if you are running PHP as an Apache module. So, the following bit of code will show you all the request headers:
<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>

See also
apache_lookup_uri(),
apache_response_headers(), and
fsockopen()

8. When I try to use authentication with IIS I get 'No Input file specified'.

The security model of IIS is at fault here. This is a problem common to all CGI programs running under IIS. A workaround is to create a plain HTML file (not parsed by PHP) as the entry page into an authenticated directory. Then use a META tag to redirect to the PHP page, or have a link to the PHP page. PHP will then recognize the authentication correctly. With the ISAPI module, this is not a problem. This should not effect other NT web servers. For more information, see: http://support.microsoft.com/support/kb/articles/q160/4/22.asp and the manual section on HTTP Authentication .

9. My PHP script works on IE and Lynx, but on Netscape some of my output is missing. When I do a "View Source" I see the content in IE but not in Netscape.

Netscape is more strict regarding HTML tags (such as tables) then IE. Running your HTML output through a HTML validator, such as validator.w3.org, might be helpful. For example, a missing </table> might cause this.

Also, both IE and Lynx ignore any NULs (\0) in the HTML stream, Netscape does not. The best way to check for this is to compile the command line version of PHP (also known as the CGI version) and run your script from the command line. In *nix, pipe it through od -c and look for any \0 characters. If you are on Windows you need to find an editor or some other program that lets you look at binary files. When Netscape sees a NUL in a file it will typically not output anything else on that line whereas both IE and Lynx will.

10. How am I supposed to mix XML and PHP? It complains about my <?xml tags!

In order to embed <?xml straight into your PHP code, you'll have to turn off short tags by having the PHP directive short_open_tags set to 0. You cannot set this directive with ini_set(). Regardless of short_open_tags being on or off, you can do something like: <?php echo '<?xml'; ?>. The default for this directive is on.

11. How can I use PHP with FrontPage or some other HTML editor that insists on moving my code around?

One of the easiest things to do is to enable using ASP tags in your PHP code. This allows you to use the ASP-style <% and %> code delimiters. Some of the popular HTML editors handle those more intelligently (for now). To enable the ASP-style tags, you need to set the asp_tags php.ini variable, or use the appropriate Apache directive.

12. Where can I find a complete list of variables are available to me in PHP?

Read the manual page on predefined variables as it includes a partial list of predefined variables available to your script. A complete list of available variables (and much more information) can be seen by calling the phpinfo() function. Be sure to read the manual section on variables from outside of PHP as it describes common scenarios for external variables, like from a HTML form, a Cookie, and the URL.

Nota importante sobre register_globals:: Desde o PHP 4.2.0, o valor padrão para a diretiva register_globals é off. A comunidade do PHP encoraja a todos a não alterarem esta diretiva mas, ao invés, utilizar superglobals.

13. How can I generate PDF files without using the non-free and commercial libraries ClibPDF and PDFLib? I'd like something that's free and doesn't require external PDF libraries.

There are a few alternatives written in PHP such as http://www.ros.co.nz/pdf/, http://www.fpdf.org/, http://www.gnuvox.com/pdf4php/, and http://www.potentialtech.com/ppl.php. There is also the Panda module.

14. I'm trying to access one of the standard CGI variables (such as $DOCUMENT_ROOT or $HTTP_REFERER) in a user-defined function, and it can't seem to find it. What's wrong?

It's important to realize that the PHP directive register_globals also affects server and environment variables. When register_globals = off (the default is off since PHP 4.2.0), $DOCUMENT_ROOT will not exist. Instead, use $_SERVER['DOCUMENT_ROOT'] . If register_globals = on then the variables $DOCUMENT_ROOT and $GLOBALS['DOCUMENT_ROOT'] will also exist.

If you're sure register_globals = on and wonder why $DOCUMENT_ROOT isn't available inside functions, it's because these are like any other variables and would require global $DOCUMENT_ROOT inside the function. See also the manual page on variable scope. It's preferred to code with register_globals = off.

Disponibilidade das superglobais:: Desde o PHP 4.1.0, os arrays superglobais como $_GET , $_POST, $_SERVER, etc. sempre estão carregados. Para mais informações, leia a seção do manual sobre superglobals

Anterior | Principal | Próxima
Build Problems | Acima | PHP and HTML


PHP and HTML

Manual do PHP
Anterior Próxima

Capítulo 51. PHP and HTML

PHP and HTML interact a lot: PHP can generate HTML, and HTML can pass information to PHP. Before reading these faqs, it's important you learn how to retrieve variables from outside of PHP. The manual page on this topic includes many examples as well. Pay close attention to what register_globals means to you too.

1. What encoding/decoding do I need when I pass a value through a form/URL?
2. I'm trying to use an <input type="image"> tag, but the $foo.x and $foo.y variables aren't available. $_GET['foo.x'] isn't existing either. Where are they?
3. How do I create arrays in a HTML <form>?
4. How do I get all the results from a select multiple HTML tag?
5. How can I pass a variable from Javascript to PHP?

1. What encoding/decoding do I need when I pass a value through a form/URL?

There are several stages for which encoding is important. Assuming that you have a string $data, which contains the string you want to pass on in a non-encoded way, these are the relevant stages:

  • HTML interpretation. In order to specify a random string, you must include it in double quotes, and htmlspecialchars() the whole value.

  • URL: A URL consists of several parts. If you want your data to be interpreted as one item, you must encode it with urlencode().

Exemplo 51-1. A hidden HTML form element

<?php
    echo "<input type='hidden' value='" . htmlspecialchars($data) . "' />\n";
?>

Nota: It is wrong to urlencode() $data, because it's the browsers responsibility to urlencode() the data. All popular browsers do that correctly. Note that this will happen regardless of the method (i.e., GET or POST). You'll only notice this in case of GET request though, because POST requests are usually hidden.

Exemplo 51-2. Data to be edited by the user

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Nota: The data is shown in the browser as intended, because the browser will interpret the HTML escaped symbols.

Upon submitting, either via GET or POST, the data will be urlencoded by the browser for transferring, and directly urldecoded by PHP. So in the end, you don't need to do any urlencoding/urldecoding yourself, everything is handled automagically.

Exemplo 51-3. In a URL

<?php
    echo "<a href='" . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . "'>\n";
?>

Nota: In fact you are faking a HTML GET request, therefore it's necessary to manually urlencode() the data.

Nota: You need to htmlspecialchars() the whole URL, because the URL occurs as value of an HTML-attribute. In this case, the browser will first un-htmlspecialchars() the value, and then pass the URL on. PHP will understand the URL correctly, because you urlencoded() the data.

You'll notice that the & in the URL is replaced by &amp;. Although most browsers will recover if you forget this, this isn't always possible. So even if your URL is not dynamic, you need to htmlspecialchars() the URL.

2. I'm trying to use an <input type="image"> tag, but the $foo.x and $foo.y variables aren't available. $_GET['foo.x'] isn't existing either. Where are they?

When submitting a form, it is possible to use an image instead of the standard submit button with a tag like:
<input type="image" src="image.gif" name="foo" />
When the user clicks somewhere on the image, the accompanying form will be transmitted to the server with two additional variables: foo.x and foo.y.

Because foo.x and foo.y would make invalid variable names in PHP, they are automagically converted to foo_x and foo_y. That is, the periods are replaced with underscores. So, you'd access these variables like any other described within the section on retrieving variables from outside of PHP. For example, $_GET['foo_x'].

3. How do I create arrays in a HTML <form>?

To get your <form> result sent as an array to your PHP script you name the <input>, <select> or <textarea> elements like this:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
Notice the square brackets after the variable name, that's what makes it an array. You can group the elements into different arrays by assigning the same name to different elements:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />
This produces two arrays, MyArray and MyOtherArray, that gets sent to the PHP script. It's also possible to assign specific keys to your arrays:
<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />
The AnotherArray array will now contain the keys 0, 1, email and phone.

Nota: Specifying an arrays key is optional in HTML. If you do not specify the keys, the array gets filled in the order the elements appear in the form. Our first example will contain keys 0, 1, 2 and 3.

See also Array Functions and Variables from outside PHP.

4. How do I get all the results from a select multiple HTML tag?

The select multiple tag in an HTML construct allows users to select multiple items from a list. These items are then passed to the action handler for the form. The problem is that they are all passed with the same widget name. I.e.
<select name="var" multiple="yes">
Each selected option will arrive at the action handler as:
var=option1
var=option2
var=option3
Each option will overwrite the contents of the previous $var variable. The solution is to use PHP's "array from form element" feature. The following should be used:
<select name="var[]" multiple="yes">
This tells PHP to treat $var as an array and each assignment of a value to var[] adds an item to the array. The first item becomes $var[0], the next $var[1], etc. The count() function can be used to determine how many options were selected, and the sort() function can be used to sort the option array if necessary.

Note that if you are using JavaScript the [] on the element name might cause you problems when you try to refer to the element by name. Use it's numerical form element ID instead, or enclose the variable name in single quotes and use that as the index to the elements array, for example:
variable = documents.forms[0].elements['var[]'];

5. How can I pass a variable from Javascript to PHP?

Since Javascript is (usually) a client-side technology, and PHP is (usually) a server-side technology, and since HTTP is a "stateless" protocol, the two languages cannot directly share variables.

It is, however, possible to pass variables between the two. One way of accomplishing this is to generate Javascript code with PHP, and have the browser refresh itself, passing specific variables back to the PHP script. The example below shows precisely how to do this -- it allows PHP code to capture screen height and width, something that is normally only possible on the client side.

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  echo "Screen width is: ". $_GET['width'] ."<br />\n";
  echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
  // pass the geometry variables
  // (preserve the original query string
  //   -- post variables will need to handled differently)

  echo "<script language='javascript'>\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>

Anterior | Principal | Próxima
Using PHP | Acima | PHP and COM


PHP and COM

Manual do PHP
Anterior Próxima

Capítulo 52. PHP and COM

PHP can be used to access COM and DCOM objects on Win32 platforms.

1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?
2. What does 'Unsupported variant type: xxxx (0xxxxx)' mean ?
3. Is it possible manipulate visual objects in PHP ?
4. Can I store a COM object in a session ?
5. How can I trap COM errors ?
6. Can I generate DLL files from PHP scripts like i can in Perl ?
7. What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ?
8. How can I run COM object from remote server ?
9. I get 'DCOM is disabled in C:\path...\scriptname.php on line 6', what can I do ?
10. Is it possible to load/manipulate an ActiveX object in a page with PHP ?
11. Is it possible to get a running instance of a component ?
12. Is there a way to handle an event sent from COM object ?
13. I'm having problems when trying to invoke a method of a COM object which exposes more than one interface. What can I do ?
14. So PHP works with COM, how about COM+ ?
15. If PHP can manipulate COM objects, can we imagine to use MTS to manage components resources, in conjunction with PHP ?

1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?

If this is a simple DLL there is no way yet to run it from PHP. If the DLL contains a COM server you may be able to access it if it implements the IDispatch interface.

2. What does 'Unsupported variant type: xxxx (0xxxxx)' mean ?

There are dozens of VARIANT types and combinations of them. Most of them are already supported but a few still have to be implemented. Arrays are not completely supported. Only single dimensional indexed only arrays can be passed between PHP and COM. If you find other types that aren't supported, please report them as a bug (if not already reported) and provide as much information as available.

3. Is it possible manipulate visual objects in PHP ?

Generally it is, but as PHP is mostly used as a web scripting language it runs in the web servers context, thus visual objects will never appear on the servers desktop. If you use PHP for application scripting e.g. in conjunction with PHP-GTK there is no limitation in accessing and manipulating visual objects through COM.

4. Can I store a COM object in a session ?

No, you can't. COM instances are treated as resources and therefore they are only available in a single script's context.

5. How can I trap COM errors ?

Currently it's not possible to trap COM errors beside the ways provided by PHP itself (@, track_errors, ..), but we are thinking of a way to implement this.

6. Can I generate DLL files from PHP scripts like i can in Perl ?

No, unfortunately there is no such tool available for PHP.

7. What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ?

This error can have multiple reasons:

  • the CLSID is wrong

  • the requested DLL is missing

  • the requested component doesn't implement the IDispatch interface

8. How can I run COM object from remote server ?

Exactly like you run local objects. You only have to pass the IP of the remote machine as second parameter to the COM constructor.

Make sure that you have set com.allow_dcom=true in your php.ini.

9. I get 'DCOM is disabled in C:\path...\scriptname.php on line 6', what can I do ?

Edit your php.ini and set com.allow_dcom=true.

10. Is it possible to load/manipulate an ActiveX object in a page with PHP ?

This has nothing to do with PHP. ActiveX objects are loaded on client side if they are requested by the HTML document. There is no relation to the PHP script and therefore there is no direct server side interaction possible.

11. Is it possible to get a running instance of a component ?

This is possible with the help of monikers. If you want to get multiple references to the same word instance you can create that instance like shown:

<?php
$word = new COM("C:\docs\word.doc");
?>

This will create a new instance if there is no running instance available or it will return a handle to the running instance, if available.

12. Is there a way to handle an event sent from COM object ?

Starting in PHP 4.3.0, you can define an event sink and bind it as shown in the example below. You can use com_print_typeinfo() to have PHP generate a skeleton for the event sink class.

Exemplo 52-1. COM event sink example

<?php
class IEEventSinker {
  var $terminated = false;

  function ProgressChange($progress, $progressmax) {
    echo "Download progress: $progress / $progressmax\n";
  }

  function DocumentComplete(&$dom, $url) {
    echo "Document $url complete\n";
  }

  function OnQuit() {
    echo "Quit!\n";
    $this->terminated = true;
  }
}
$ie = new COM("InternetExplorer.Application");
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

13. I'm having problems when trying to invoke a method of a COM object which exposes more than one interface. What can I do ?

The answer is as simple as unsatisfying. I don't know exactly but i think you can do nothing. If someone has specific information about this, please let me know :)

14. So PHP works with COM, how about COM+ ?

COM+ extends COM by a framework for managing components through MTS and MSMQ but there is nothing special that PHP has to support to use such components.

15. If PHP can manipulate COM objects, can we imagine to use MTS to manage components resources, in conjunction with PHP ?

PHP itself doesn't handle transactions yet. Thus if an error occurs no rollback is initiated. If you use components that support transactions you will have to implement the transaction management yourself.

Anterior | Principal | Próxima
PHP and HTML | Acima | PHP and other languages


PHP and other languages

Manual do PHP
Anterior Próxima

Capítulo 53. PHP and other languages

PHP is the best language for web programing, but what about other languages?

1. PHP vs. ASP?
2. Is there an ASP to PHP converter?
3. PHP vs. Cold Fusion?
4. PHP vs. Perl?

1. PHP vs. ASP?

ASP is not really a language in itself, it's an acronym for Active Server Pages, the actual language used to program ASP with is Visual Basic Script or JScript. The biggest drawback of ASP is that it's a proprietary system that is natively used only on Microsoft Internet Information Server (IIS). This limits it's availability to Win32 based servers. There are a couple of projects in the works that allows ASP to run in other environments and webservers: InstantASP from Halcyon (commercial), Chili!Soft ASP from Chili!Soft (commercial). ASP is said to be a slower and more cumbersome language than PHP, less stable as well. Some of the pros of ASP is that since it primarily uses VBScript it's relatively easy to pick up the language if you're already know how to program in Visual Basic. ASP support is also enabled by default in the IIS server making it easy to get up and running. The components built in ASP are really limited, so if you need to use "advanced" features like interacting with FTP servers, you need to buy additional components.

2. Is there an ASP to PHP converter?

Yes, the server-side asp2php is the one most often referred to as well as this client-side option.

3. PHP vs. Cold Fusion?

PHP is commonly said to be faster and more efficient for complex programming tasks and trying out new ideas. PHP is generally referred to as more stable and less resource intensive as well. Cold Fusion has better error handling, database abstraction and date parsing although database abstraction is addressed in PHP 4. Another thing that is listed as one of Cold Fusion's strengths is its excellent search engine, but it has been mentioned that a search engine is not something that should be included in a web scripting language. PHP runs on almost every platform there is; Cold Fusion is only available on Win32, Solaris, Linux and HP/UX. Cold Fusion has a good IDE and is generally easier to get started with, whereas PHP initially requires more programming knowledge. Cold Fusion is designed with non-programmers in mind, while PHP is focused on programmers.

A great summary by Michael J Sheldon on this topic has been posted to the PHP mailing list. A copy can be found at http://marc.theaimsgroup.com/?l=php-general&m=95602167412542&w=1.

4. PHP vs. Perl?

The biggest advantage of PHP over Perl is that PHP was designed for scripting for the web where Perl was designed to do a lot more and can because of this get very complicated. The flexibility / complexity of Perl makes it easier to write code that another author / coder has a hard time reading. PHP has a less confusing and stricter format without losing flexibility. PHP is easier to integrate into existing HTML than Perl. PHP has pretty much all the 'good' functionality of Perl: constructs, syntax and so on, without making it as complicated as Perl can be. Perl is a very tried and true language, it's been around since the late eighties, but PHP is maturing very quickly.

Anterior | Principal | Próxima
PHP and COM | Acima | Migrating from PHP 2 to PHP 3


Migrating from PHP 2 to PHP 3

Manual do PHP
Anterior Próxima

Capítulo 54. Migrating from PHP 2 to PHP 3

PHP has already a long history behind him: Legendary PHP 1.0, PHP/FI, PHP 3.0 and PHP 4.0.

1. Migrating from PHP 2 to PHP 3?

1. Migrating from PHP 2 to PHP 3?

PHP/FI 2.0 is no longer supported. Please see appropriate manual section for information about migration from PHP/FI 2.0.

If you are still working with PHP 2, we strongly recommend you to upgrade straight to PHP 4.

Anterior | Principal | Próxima
PHP and other languages | Acima | Migrating from PHP 3 to PHP 4


Migrating from PHP 3 to PHP 4

Manual do PHP
Anterior Próxima

Capítulo 55. Migrating from PHP 3 to PHP 4

PHP has already a long history behind him : Legendary PHP 1.0, PHP/FI, PHP 3.0 and PHP 4.0.

1. Migrating from PHP 3 to PHP 4
2. Do sessions work in PHP 3?
3. Incompatible functions?

1. Migrating from PHP 3 to PHP 4

PHP 4 was designed to be as compatible with earlier versions of PHP as possible and very little functionality was broken in the process. If you're really unsure about compatibility you should install PHP 4 in a test environment and run your scripts there.

Also see the appropriate migration appendix of this manual.

2. Do sessions work in PHP 3?

Although native session support didn't exist in PHP 3, there are third-party applications that did (and still do) offer session functionality. The most common method was by using PHPLIB.

3. Incompatible functions?

Since PHP 4 is basically a rewrite of the entire PHP engine there was very few functions that were altered and only then some of the more exotic ones.

Anterior | Principal | Próxima
Migrating from PHP 2 to PHP 3 | Acima | Questões Diversas


Questões Diversas

Manual do PHP
Anterior Próxima

Capítulo 56. Questões Diversas

Aqui estão algumas questôes que nós não pudemos colocar em outra categoria. Aqui você encontra elas.

1. Aonde os pop-ups foram no website? Eu posso ter o código para eles?
2. Como eu posso utilizar os manuais compactados com o bz2 no Windows?

1. Aonde os pop-ups foram no website? Eu posso ter o código para eles?

As janelas pop-up amarelas windows no site antigo eram muito legais, mas muito dificeis de manter (já que algumas companhias parece que se divertem mudando o jeito que seus browser funcionam a cada nova versão).

Todo o código para as versões anteriors do website ainda estão disponíveis através do CVS. Especialmente, a ultima versão de shared.inc (que contém todo o Javascript e DHTML para os popups) esta disponível aqui.

2. Como eu posso utilizar os manuais compactados com o bz2 no Windows?

Se você não tiver uma ferramenta de arquivos para trabalhar com arquivos bz2 download a ferramenta de linha de comando da Redhat (por favor veja maiores informações abaixo).

Se você não gostar de usar uma ferramenta de linha de comando, você pode tentar ferramentas gratuitas como Stuffit Expander, UltimateZip, 7-Zip, ou Quick Zip. Se você tiver ferramentas como WinRAR ou Power Archiver, você pode facilmente descomprimir arquivos bz2 com elas. Se você usa o Windows Commander, um plugin para o bz2 esta disponível gratuitamente em Windows Commander.

A ferramenta de linha de comando bzip2 da Redhat:

Usuários Win2k Sp2 obtenha a versão 1.0.2, todos os outros usuários de windows a versão 1.00. Após o download renomeie o executável para bzip2.exe. Para sua conveniencia, coloque em um diretório que esteja no seu path, ex. C:\Windows aonde C representra o drive que você instalou o Windows. drive.

Nota: lang significa a sua língua( Português do Brasil: pt_BR) e x para o formato desejado, ex.: pdf. Para descompactar php_manual_lang.x.bz2 siga estas instruções simples:

  • abra uma janela com o prompt de comando

  • Use o comando cd para a pasta onde você guardou o php_manual_lang.x.bz2

  • digite bzip2 -d php_manual_lang.x.bz2, descompactando php_manual_lang.x na mesma pasta

Caso você tenha feito o download de php_manual_lang.tar.bz2 com vários arquivos html nele, o procedimento é o mesmo. A unica diferença é que você obtém um arquivo php_manual_lang.tar. O formato tar format é conhecido e tratado com as ferramentas de arquivos mais comuns para o Windows, por exemplo WinZip.

Anterior | Principal | Próxima
Migrating from PHP 3 to PHP 4 | Acima | Apêndices


Apêndices

Manual do PHP
Anterior Próxima

IX. Apêndices

Índice
A. A História do PHP e projetos relacionados
B. Migrating from PHP 4 to PHP 5
C. Migrating from PHP 3 to PHP 4
D. Migrating from PHP/FI 2 to PHP 3
E. O debugador do PHP
F. Extending PHP 3
G. Lista de funções sinônimas (aliases)
H. Palavras reservadas do PHP
I. List of Resource Types
J. List of Supported Protocols/Wrappers
K. List of Available Filters
L. List of Supported Socket Transports
M. PHP type comparison tables
N. List of Parser Tokens
O. Sobre o manual
P. Open Publication License
Q. Índice de funções
R. (Identificadores não encontrados na compilação do manual)

Anterior | Principal | Próxima
Questões Diversas |  | A História do PHP e projetos relacionados


A História do PHP e projetos relacionados

Manual do PHP
Anterior Próxima

Apêndice A. A História do PHP e projetos relacionados

Índice
A História do PHP
A História dos projetos relacionados ao PHP
Livros sobre PHP
Publicações sobre PHP

O PHP percorreu um longo caminho ao nesses poucos anos. Criada para ser uma das mais poderosas e proeminentes linguagens da Web não foi uma tarefa fácil. Aqueles que se interessaram momentaneamente em ver como o PHP cresceu e se tornou o que é hoje, continue lendo. Versões do antigo PHP pode ser encontrado em PHP Museum.

A História do PHP

PHP/FI

O PHP sucede de um produto mais antigo, chamado PHP/FI. PHP/FI foi criado por Rasmus Lerdorf em 1995, inicialmente como simples scripts Perl como estatísticas de acesso para seu currículo online. Ele nomeou esta série de script de 'Personal Home Page Tools'. Como mais funcionalidades foram requeridas, Rasmus escreveu uma implementação C muito maior, que era capaz de comunicar-se com base de dados, e possibilitava à usuários desenvolver simples aplicativos dinâmicos para Web. Rasmus resolveu disponibilzar o código fonte do PHP/FI para que todos pudessem ver, e também usá-lo, bem como fixar bugs e melhorar o código.

PHP/FI, que significa Personal Home Page / Forms Interpreter, incluía algumas funcionalidades básicas do PHP que nós conhecemos hoje. Ele usava variáveis no estilo Perl, interpretação automática de variáveis vindas de formulário e sintaxe embutida no HTML. A sua própria sintaxe era similar a do Perl, porém muito mais limitada, simples, e um pouco inconsistente.

Em 1997, PHP/FI 2.0, a segunda versão da implementação C, obteve milhares de usuários ao redor do mundo (estimado), com aproximadamente 50,000 domínios reportando que tinha PHP/FI 2.0 instalado, agarinhando 1% dos domínios da Internet. Enquanto isto havia milhares de pessoas contribuindo com pequenos códigos para o projeto, e ainda assim

O PHP/FI 2.0 foi oficialmente lançado somente em Novembro de 1997, após perder a maior parte de sua vida em versões betas. Ele foi rapidamente substituído pelos alphas do PHP 3.0.

PHP 3

O PHP 3.0 foi a primeira versão que se assemelha ao PHP que nós conhecemos hoje. Ela foi criada por Andi Gutmans e Zeev Suraski em 1997 e foi totalmente reescrito, após eles descobrirem que o PHP/FI 2.0 poderia ajudá-los a desenvolver suas próprias aplicações de eCommerce de um projeto da Uiversidade. No esforço cooperativo e iniciativa de começar o PHP/FI à partir da base-usuário existente, Andi, Rasmus e Zeev decidiram cooperar e anunciar o PHP 3.0 como uma versão oficial de seu sucessor o PHP/FI 2.0, e o desenvolvimento do PHP/FI 2.0 foram descontinuados.

Uma das maiores características do PHP 3.0 era sua forte capacidade de extensibilidade. Além de oferecer aos usuários finais uma infraestrutura sólida para diversos bancos de dados, protocolos e APIs, o extensibilidade do PHP 3.0 atraí dezenas de desenvolvedores para se juntar e submeter novos módulos. Esta é a chave do tremendo sucesso do PHP 3.0. Outras características chaves introduzidas no PHP 3.0 foram o suporte à sintaxe para orientação à objetos e uma sintaxe muito mais poderosa e consistente.

Toda a nova versão da linguagem foi realizada sob um novo nome, que removeu a impressão do limitado uso pessoal que o PHP/FI 2.0 prendeu. Ela foi nomeada simplesmente 'PHP', com o significado que é um acrônimo - PHP: Hypertext Preprocessor.

No final de 1998, o PHP obteve uma base the dezenas de milhares de usuários (estimativa) e centenas de milhares de Web sites relatando que o tinham instalado. Em seu pico, o PHP 3.0 foi instalado em aproximadamente 10% dos servidores Web da Internet.

O PHP 3.0 foi oficialmente lançado em Junho de 1998, depois de ter passado aproximadamente 9 meses em testes públicos.

PHP 4

O PHP 3.0 foi oficialmente lançado em Junho de 1998, depois de ter passado aproximadamente 9 meses em testes públicos. Os objetivos do projeto eram melhorar a performance de aplicações complexas, e melhorar a modularidade do código base do PHP.Tais aplicações foram possíveis por causa das novas características do PHP 3.0 e o suporte a uma variadade de banco de dados de terceiros e APIs, mas o PHP 3.0 não foi projetado para trabalhar com aplicações muito complexas eficientemente.

A nova engine, dublado 'Zend Engine' (conhecidos pelos seus primeiros nomes, Zeev e Andi), fazendo desse objetivo um sucesso, e foi introduzida em meados de 1999. PHP 4.0, baseado nesta engine, e acompanhado com uma série de novas características, foi oficialmente lançada em Maio de 2000, quase dois anos após o seu predecessor, o PHP 3.0.Além da altíssimo melhoramento da performance desta versão, o PHP 4.0 incluiu outras características chave como o suporte para muitos servidores WEb, sessões HTTP, buffer de saída, maneiras mais seguras de manipular input de usuários e muitas construções novas na linguagem.

PHP 4 é a última versão lanaçada do PHP. O trabalho já começou na modificação e melhoramento da Zend Engine para integrar novas características que foram designadas para o PHP 5.0.

Hoje, o PHP está começando a ser usado por centenas de milhares de desenvolvedores (estimativa), e muitos milhões de sites reportam que tem o PHP instalado, que explica os 20% de domínios da Internet.

A equipe de desenvolvimento do PHP contém dezenas de desenvolvedores, bem como dezenas de outros que trabalham com projetos relacionados ao PHP como o PEAR e a documentação do projeto.

PHP 5

O futuro do PHP é dirigido principalmente pelo seu núcleo, a Zend Engine. PHP 5 irá incluir a nova Zend Engine 2.0. Para obter mais informações sobre esta engine, veja esta página.

Anterior | Principal | Próxima
Apêndices | Acima | A História dos projetos relacionados ao PHP


A História dos projetos relacionados ao PHP

PEAR

PEAR, o repositório do PHP de aplicação e extensão (originalmente, Extensão do PHP e Repositório de Add-on) são as versões das classes da fundação do PHP, e talvez cresçam no futuro para ser um dos caminhos principais para distribuir o PHP em ambas extensões, C e PHP entre os desenvolvedores.

O PEAR nasceu em discussões realizadas nas PHP Developers' Meeting-PMD (Reuniões dos Desenvolvedores do PHP-RDP) realizada em Janeiro de 2000 em Tel Aviv. Foi criada por Sitg S. Bakken, e é dedicada à sua primeira filha, Malin Bakken.

Desde o começo de 2000, o PEAR cresceu para ser um grande, e significativo projeto com um largo número de desenvolvedores trabalhando em executar tarefas comuns, funcionalidades reusáveis para o benefício de toda a comunidade PHP. Hoje em dia o PEAR incluí acesso à base de dados, cache de conteúdo, calculações matemáticas, eCommerce e muito mais.

Mais informação sobre o PEAR pode ser encontrada em O manual.

A Iniciativa da Garantia de Qualidade do PHP

A Iniciativa da Garantia de Qualidade do PHP foi criada no verão de 2000 em resposta às críticas sobre as versões do PHP não terem sido testadas o bastante para ambientes de produção. O time agora consiste em um grupo de desenvolvedores com um bom entendimento sobre o código base do PHP. Estes desenvolvedores gastam muito boa parte do tempo deles localizando e consertando bugs dentro do PHP. Além disso há muitos outros membros do time que são os que testam e fornecem o feedback destes consertos usando um larga variedade de plataformas.

PHP-GTK

O PHP-GTK é a solução PHP para aplicações GUI client side (lado-cliente). Andrei Zmievski recorda o processo de planejamento e criação do PHP-GTK:

A programação GUI sempre foi de meu interesse, e eu achei que o Gtk+ é uma ferramenta muito boa, exceto que a programação dela usa o C que algumas vezes é um tédio. Após testemunhar as implementações do PyGtk e GTK-Perl, eu decidi ver se o PHP poderia ter uma interface Gtk+. Começando em Agosto de 2000, eu comecei a ter um pouco mais de tempo livre que foi quando eu comecei a experimentar. Minha linha guia principal foi a implementação da interface PyGtk pois ela tinha seus atributos bastante completos e tinha uma boa interface orientada a objetos, o autor do PyGtk, me ajudou muito durante os estágios iniciais.

Escrever as interfaces na mão para todas as funções do Gtk+ estava fora de questão, então eu tive uma idéia de criar um gerador de código, similar à como o PyGtk foi feito. O gerador de código é um programa PHP que lê uma série de arquivos .def contendo as classes Gtk+, constantes, e as informações dos métodos e geradores de código C que irão trabalhar com o PHP. O que não pode ser gerado automaticamente pode ser escrito em arquivos .overrides.

Trabalhando no gerador de código e na infraestrutura levou algum tempo, porque eu tinha pouco tempo para trabalhar no PHP-GTK durante o fim de 2000. Depois de eu mostrar o PHP-GTK ao Frank Kromann, ele se interessou e começou a me ajudar com o gerador de código e a implementação para Win32. Quando nós escrevemos o primeiro programa 'Hello World' e o rodamos, foi extremamente excitante. Levou mais alguns meses para deixar o projeto em uma condição apresentável e lançar a versão inicial realizada em 1 de Março de 2001. O relatório logo foi apresentada no SlashDot

Detectando que o PHP-GTK pode ser extensivo, eu decidi separar as listas de discussão e os repositórios CVS para isto, bem como o website gtk.php.net com ajuda de Colin Viebrock. A documentação também era necessária ser feita e James Moore veio me ajudar com isso.

Desde sua realização o PHP-GTK vem ganhando popularidade. Agora, nós temos nosso próprio time de documentação, o manual continua melhorando, as pessoas começam a escrever extensões para o PHP-GTK, e mais e mais aplicativos excitantes com ele.

Anterior | Principal | Próxima
A História do PHP e projetos relacionados | Acima | Livros sobre PHP


Livros sobre PHP

O PHP cresceu, ele começou a ser reconhecido mundialmente como a plataforma mais popular. Uma das maneiras mais interessantes de ver esta tendência é observar os livros sobre PHP que surgirão ao longo dos anos.

Até onde nós sabemos, o primeiro livro dedicado ao PHP foi 'PHP- tvorba interaktivních internetových aplikací' - um livro Czech publicado em Abril de 1999, pela autora Jirka Kosek. No mês seguinte veio o livro Alemão escrito por Egon Schmid, Christian Cartus e Richard Blume. O primeiro livro em Inglês sobre PHP foi publicado logo depois, e foi chamado 'Core PHP Programming' por Leon Atkinson. Todos estes livros falavam sobre o PHP 3.0.

Enquanto estes livros eram os primeiros deste tipo - serviram para inspirar um grande número de livros de outros autores e editoras. Há aproximadamente 40 livros em Inglês, 50 livros em Alemão, e uns 20 livros em Francês! Além disso, você pdoe encontrar livros sobre PHP em muitas outras línguas, incluindo Espanhol, Koreâno, Japonês e Hebráico.

Obviamente, este grande número de livros, escritos por diferentes autores, publicados por muitas editoras, e disponíveis em muitas línguas - é uma prova do sucesso mundial do PHP.

Anterior | Principal | Próxima
A História dos projetos relacionados ao PHP | Acima | Publicações sobre PHP


Publicações sobre PHP

Até onde nós sabemos, o primeiro artigo sobre PHP foi publicado em uma revista parecida com a Computerworld na Tchecoslováquia em meados de 1998, e cobria o PHP 3.0. Como os livros, este foi um de uma sério de muitos artigos publicados sobre PHP em várias revistas proeminentes.

Artigos sobre PHP apareceram no Dr. Dobbs, Empresas de Linux, Revistas de Linux e em muitos outros lugares. Artigos sobre migração de aplicações baseadas em ASP para PHP rodando Windows foram publicadas mesmo na Microsoft e até mesmo na MSDN!

Anterior | Principal | Próxima
Livros sobre PHP | Acima | Migrating from PHP 4 to PHP 5


Migrating from PHP 4 to PHP 5

Manual do PHP
Anterior Próxima

Apêndice B. Migrating from PHP 4 to PHP 5

Índice
What has changed in PHP 5
Backward Incompatible Changes
CLI and CGI
Migrating Configuration Files
New Functions
New Directives
Databases
New Object Model

What has changed in PHP 5

PHP 5 and the integrated Zend Engine 2 have greatly improved PHP's performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 4 to 5 should be very easy. Most existing PHP 4 code should be ready to run without changes, but you should still know about the few differences and take care to test your code before switching versions in production environments.

Anterior | Principal | Próxima
Publicações sobre PHP | Acima | Backward Incompatible Changes


Backward Incompatible Changes

Although most existing PHP 4 code should work without changes, you should pay attention to the following backward incompatible changes:

  • strrpos() and strripos() now use the entire string as a needle.

  • Illegal use of string offsets causes E_ERROR instead of E_WARNING.

  • array_merge() was changed to accept only arrays. If a non-array variable is passed, a E_WARNING will be thrown for every such parameter. Be careful because your code may start emitting E_WARNING out of the blue.

  • PATH_TRANSLATED server variable is no longer set implicitly under Apache2 SAPI in contrast to the situation in PHP 4, where it is set to the same value as the SCRIPT_FILENAME server variable when it is not populated by Apache. This change was made to comply with the CGI specification. Please refer to bug #23610 for further information.

  • The T_ML_CONSTANT constant is no longer defined by the Tokenizer extension. If error_reporting is set to E_ALL, PHP will generate a notice. Although the T_ML_CONSTANT was never used at all, it was defined in PHP 4. In both PHP 4 and PHP 5 // and /* */ are resolved as the T_COMMENT constant. However the PHPDoc style comments /** */ ,which starting PHP 5 are parsed by PHP, are recognized as T_DOC_COMMENT.

  • $_SERVER should be populated with argc and argv if variables_order includes "S". If you have specifically configured your system to not create $_SERVER, then of course it shouldn't be there. The change was to always make argc and argv available in the CLI version regardless of the variables_order setting. As in, the CLI version will now always populate the global $argc and $argv variables.

  • An object with no properties is no longer considered "empty".

  • Classes must be declared before used.

Exemplo B-1. strrpos() and strripos() now use the entire string as a needle

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Exemplo B-2. An object with no properties is no longer considered "empty"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if (!$t) {
    // Will be executed
}
?>

The following example was valid in PHP 4, although it will produce a fatal error in PHP 5.

Exemplo B-3. Classes must be declared before used

<?php
$test = new fubar();
$test->barfu();

class fubar {
    function barfu() {
        echo 'fubar';
    }
}
?>

Anterior | Principal | Próxima
Migrating from PHP 4 to PHP 5 | Acima | CLI and CGI


CLI and CGI

In PHP 5 there were some changes in CLI and CGI filenames. In PHP 5, the CGI version was renamed to php-cgi.exe (previously php.exe) and the CLI version now sits in the main directory (previously cli/php.exe).

In PHP 5 it was also introduced a new mode: php-win.exe. This is equal to the CLI version, except that php-win doesn't output anything and thus provides no console (no "dos box" appears on the screen). This behavior is similar to php-gtk.

In PHP 5, the CLI version will always populate the global $argv and $argc variables.

Anterior | Principal | Próxima
Backward Incompatible Changes | Acima | Migrating Configuration Files


Migrating Configuration Files

Since the ISAPI modules changed their names, from php4xxx to php5xxx, you need to make some changes in the configuration files. There were also changes in the CLI and CGI filenames. Please refer to the corresponding section for more information.

Migrate the Apache configuration is extremely easy. See the example below to check the change you need to do:

# change this line:
LoadModule php4_module /php/sapi/php4apache2.dll

# with this one:
LoadModule php5_module /php/php5apache2.dll

If your webserver is running PHP in CGI mode, you should note that the CGI version has changed its name from php.exe to php-cgi.exe. In Apache you should do something like this:

# change this line:
Action application/x-httpd-php "/php/php.exe"

# with this one:
Action application/x-httpd-php "/php/php-cgi.exe"

In other webservers you need to change either the CGI or the ISAPI module filenames.

Anterior | Principal | Próxima
CLI and CGI | Acima | New Functions


New Functions

In PHP 5 there are some new functions. Here is the list of them:

Arrays:

  • array_combine() - Creates an array by using one array for keys and another for its values

  • array_diff_uassoc() - Computes the difference of arrays with additional index check which is performed by a user supplied callback function

  • array_udiff() - Computes the difference of arrays by using a callback function for data comparison

  • array_udiff_assoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function

  • array_udiff_uassoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

  • array_walk_recursive() - Apply a user function recursively to every member of an array

InterBase:

  • ibase_affected_rows() - Return the number of rows that were affected by the previous query

  • ibase_backup() - Initiates a backup task in the service manager and returns immediately

  • ibase_commit_ret() - Commit a transaction without closing it

  • ibase_db_info() - Request statistics about a database

  • ibase_drop_db() - Drops a database

  • ibase_errcode() - Return an error code

  • ibase_free_event_handler() - Cancels a registered event handler

  • ibase_gen_id() - Increments the named generator and returns its new value

  • ibase_maintain_db() - Execute a maintenance command on the database server

  • ibase_name_result() - Assigns a name to a result set

  • ibase_num_params() - Return the number of parameters in a prepared query

  • ibase_param_info() - Return information about a parameter in a prepared query

  • ibase_restore() - Initiates a restore task in the service manager and returns immediately

  • ibase_rollback_ret() - Rollback transaction and retain the transaction context

  • ibase_server_info() - Request statistics about a database

  • ibase_service_attach() - Connect to the service manager

  • ibase_service_detach() - Disconnect from the service manager

  • ibase_set_event_handler() - Register a callback function to be called when events are posted

  • ibase_wait_event() - Wait for an event to be posted by the database

iconv:

  • iconv_mime_decode() - Decodes a MIME header field

  • iconv_mime_decode_headers() - Decodes multiple MIME header fields at once

  • iconv_mime_encode() - Composes a MIME header field

  • iconv_strlen() - Returns the character count of string

  • iconv_strpos() - Finds position of first occurrence of a needle within a haystack

  • iconv_strrpos() - Finds the last occurrence of a needle within the specified range of haystack

  • iconv_substr() - Cut out part of a string

Streams:

  • stream_copy_to_stream() - Copies data from one stream to another

  • stream_get_line() - Gets line from stream resource up to a given delimiter

  • stream_socket_accept() - Accept a connection on a socket created by stream_socket_server()

  • stream_socket_client() - Open Internet or Unix domain socket connection

  • stream_socket_get_name() - Retrieve the name of the local or remote sockets

  • stream_socket_recvfrom() - Receives data from a socket, connected or not

  • stream_socket_sendto() - Sends a message to a socket, whether it is connected or not

  • stream_socket_server() - Create an Internet or Unix domain server socket

Other:

  • convert_uudecode() - decode a uuencoded string

  • convert_uuencode() - uuencode a string

  • curl_copy_handle() - Copy a cURL handle along with all of it's preferences

  • dba_key_split() - Splits a key in string representation into array representation

  • dbase_get_header_info() - Get the header info of a dBase database

  • dbx_fetch_row() - Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

  • fbsql_set_password() - Change the password for a given user

  • file_put_contents() - Write a string to a file

  • ftp_alloc() - Allocates space for a file to be uploaded

  • get_declared_interfaces() - Returns an array of all declared interfaces

  • get_headers() - Fetches all the headers sent by the server in response to a HTTP request

  • headers_list() - Returns a list of response headers sent (or ready to send)

  • http_build_query() - Generate URL-encoded query string

  • idate() - Format a local time/date as integer

  • image_type_to_extension() - Get file extension for
image-type returned by getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype()

  • imagefilter() - Applies Filter an image using a custom angle

  • imap_getacl() - Gets the ACL for a given mailbox

  • ldap_sasl_bind() - Bind to LDAP directory using SASL

  • mb_list_encodings() - Returns an array of all supported encodings

  • pcntl_getpriority() - Get the priority of any process

  • pcntl_wait() - Waits on or returns the status of a forked child as defined by the waitpid() system call

  • pg_version() - Returns an array with client, protocol and server version (when available)

  • php_check_syntax() - Check the syntax of the specified file

  • php_strip_whitespace() - Return source with stripped comments and whitespace

  • proc_nice() - Change the priority of the current process

  • pspell_config_data_dir() - Change location of language data files

  • pspell_config_dict_dir() - Change location of the main word list

  • setrawcookie() - Send a cookie with no url encoding of the value

  • snmp_read_mib() - Reads and parses a MIB file into the active MIB tree

  • sqlite_fetch_column_types() - Return an array of column types from a particular table

  • str_split() - Convert a string to an array

  • strpbrk() - Search a string for any of a set of characters

  • substr_compare() - Binary safe optionally case insensitive comparison of two strings from an offset, up to length characters

  • time_nanosleep() - Delay for a number of seconds and nano seconds

Nota: The Tidy extension has also changed its API completely.

Anterior | Principal | Próxima
Migrating Configuration Files | Acima | New Directives


New Directives

There were some new php.ini directives introduced in PHP 5. Here is a list of them:

  • mail.force_extra_parameters - Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary. These parameters will always replace the value of the 5th parameter to mail(), even in safe mode

  • register_long_arrays - allow/disallow PHP to register the deprecated long $HTTP_*_VARS

  • session.hash_function - select a hash function (MD5 or SHA-1)

  • session.hash_bits_per_character - define how many bits are stored in each character when converting the binary hash data to something readable (from 4 to 6)

  • zend.ze1_compatibility_mode - Enable compatibility mode with Zend Engine 1 (PHP 4)

Anterior | Principal | Próxima
New Functions | Acima | Databases


Databases

There were some changes in PHP 5 regarding databases (MySQL and SQLite).

In PHP 5 the MySQL client libraries are not bundled, because of license problems and some others. For more information, read the FAQ entry.

There is also a new extension, MySQLi (Improved MySQL), which is designed to work with MySQL 4.1 and above.

Since PHP 5, the SQLite extension is built-in PHP. SQLite is an embeddable SQL database engine and is not a client library used to connect to a big database server (like MySQL or PostgreSQL). The SQLite library reads and writes directly to and from the database files on disk.

Anterior | Principal | Próxima
New Directives | Acima | New Object Model


New Object Model

In PHP 5 there is a new Object Model. PHP's handling of objects has been completely rewritten, allowing for better performance and more features. Please read http://www.php.net/zend-engine-2.php for more info.

Anterior | Principal | Próxima
Databases | Acima | Migrating from PHP 3 to PHP 4


Migrating from PHP 3 to PHP 4

Manual do PHP
Anterior Próxima

Apêndice C. Migrating from PHP 3 to PHP 4

Índice
What has changed in PHP 4
Running PHP 3 and PHP 4 concurrently
Migrating Configuration Files
Parser behavior
Error reporting
Initializers
empty("0")
Missing functions
PHP 3 extension
Variable substitution in strings
Cookies
Handling of global variables

What has changed in PHP 4

PHP 4 and the integrated Zend engine have greatly improved PHP's performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 3 to 4 should be much easier than migrating from PHP/FI 2 to PHP 3. A lot of existing PHP 3 code should be ready to run without changes, but you should still know about the few differences and take care to test your code before switching versions in production environments. The following should give you some hints about what to look for.

Anterior | Principal | Próxima
New Object Model | Acima | Running PHP 3 and PHP 4 concurrently


Running PHP 3 and PHP 4 concurrently

Recent operating systems provide the ability to perform versioning and scoping. This features make it possible to let PHP 3 and PHP 4 run as concurrent modules in one Apache server.

This feature is known to work on the following platforms:

  • Linux with recent binutils (binutils 2.9.1.0.25 tested)

  • Solaris 2.5 or better

  • FreeBSD (3.2, 4.0 tested)

To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the necessary link extensions (--enable-versioning). Otherwise, all standard installations instructions apply. For example:

$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars

Anterior | Principal | Próxima
Migrating from PHP 3 to PHP 4 | Acima | Migrating Configuration Files


Migrating Configuration Files

The global configuration file, php3.ini, has changed its name to php.ini.

For the Apache configuration file, there are slightly more changes. The MIME types recognized by the PHP module have changed.

application/x-httpd-php3        -->    application/x-httpd-php
application/x-httpd-php3-source -->    application/x-httpd-php-source

You can make your configuration files work with both versions of PHP (depending on which one is currently compiled into the server), using the following syntax:

AddType  application/x-httpd-php3        .php3
AddType  application/x-httpd-php3-source .php3s

AddType  application/x-httpd-php         .php
AddType  application/x-httpd-php-source  .phps

In addition, the PHP directive names for Apache have changed.

Starting with PHP 4.0, there are only four Apache directives that relate to PHP:

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

There are two differences between the Admin values and the non admin values:

  • Admin values (or flags) can only appear in the server-wide Apache configuration files (e.g., httpd.conf).

  • Standard values (or flags) cannot control certain PHP directives, for example: safe mode (if you could override safe mode settings in .htaccess files, it would defeat safe mode's purpose). In contrast, Admin values can modify the value of any PHP directive.

To make the transition process easier, PHP 4 is bundled with scripts that automatically convert your Apache configuration and .htaccess files to work with both PHP 3 and PHP 4. These scripts do NOT convert the mime type lines! You have to convert these yourself.

To convert your Apache configuration files, run the apconf-conv.sh script (available in the scripts/apache/ directory). For example:

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

Your original configuration file will be saved in httpd.conf.orig.

To convert your .htaccess files, run the aphtaccess-conv.sh script (available in the scripts/apache/ directory as well):

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

Likewise, your old .htaccess files will be saved with an .orig prefix.

The conversion scripts require awk to be installed.

Anterior | Principal | Próxima
Running PHP 3 and PHP 4 concurrently | Acima | Parser behavior


Parser behavior

Parsing and execution are now two completely separated steps, no execution of a files code will happen until the complete file and everything it requires has completely and successfully been parsed.

One of the new requirements introduced with this split is that required and included files now have to be syntactically complete. You can no longer spread the different controlling parts of a control structure across file boundaries. That is you cannot start a for or while loop, an if statement or a switch block in one file and have the end of loop, else, endif, case or break statements in a different file.

It still perfectly legal to include additional code within loops or other control structures, only the controlling keywords and corresponding curly braces {...} have to be within the same compile unit (file or eval()ed string).

This should not harm too much as spreading code like this should be considered as very bad style anyway.

Another thing no longer possible, though rarely seen in PHP 3 code is returning values from a required file. Returning a value from an included file is still possible.

Anterior | Principal | Próxima
Migrating Configuration Files | Acima | Error reporting


Error reporting

Configuration changes

With PHP 3 the error reporting level was set as a simple numeric value formed by summing up the numbers related to different error levels. Usual values were 15 for reporting all errors and warnings or 7 for reporting everything but simple notice messages reporting bad style and things like that.

PHP 4 has a larger set of error and warning levels and comes with a configuration parser that now allows for symbolic constants to be used for setting the intended behavior.

Error reporting level should now be configured by explicitly taking away the warning levels you do not want to generate error messages by x-oring them from the symbolic constant E_ALL. Sounds complicated? Well, lets say you want the error reporting system to report all but the simple style warnings that are categorized by the symbolic constant E_NOTICE. Then you'll put the following into your php.ini: error_reporting = E_ALL & ~ ( E_NOTICE ). If you want to suppress warnings too you add up the appropriate constant within the braces using the binary or operator '|': error_reporting= E_ALL & ~ ( E_NOTICE | E_WARNING ).

Atenção

When upgrading code or servers from PHP 3 to PHP 4 you should check these settings and calls to error_reporting() or you might disable reporting the new error types, especially E_COMPILE_ERROR. This may lead to empty documents without any feedback of what happened or where to look for the problem.

Atenção

Using the old values 7 and 15 for setting up error reporting is a very bad idea as this suppresses some of the newly added error classes including parse errors. This may lead to very strange behavior as scripts might no longer work without error messages showing up anywhere.

This has lead to a lot of unreproducible bug reports in the past where people reported script engine problems they were not capable to track down while the TRUE case was usually some missing '}' in a required file that the parser was not able to report due to a misconfigured error reporting system.

So checking your error reporting setup should be the first thing to do whenever your scripts silently die. The Zend engine can be considered mature enough nowadays to not cause this kind of strange behavior.

Additional warning messages

A lot of existing PHP 3 code uses language constructs that should be considered as very bad style as this code, while doing the intended thing now, could easily be broken by changes in other places. PHP 4 will output a lot of notice messages in such situations where PHP 3 didn't. The easy fix is to just turn off E_NOTICE messages, but it is usually a good idea to fix the code instead.

The most common case that will now produce notice messages is the use of unquoted string constants as array indices. Both PHP 3 and 4 will fall back to interpret these as strings if no keyword or constant is known by that name, but whenever a constant by that name had been defined anywhere else in the code it might break your script. This can even become a security risk if some intruder manages to redefine string constants in a way that makes your script give him access rights he wasn't intended to have. So PHP 4 will now warn you whenever you use unquoted string constants as for example in $_SERVER[REQUEST_METHOD]. Changing it to $_SERVER['REQUEST_METHOD'] will make the parser happy and greatly improve the style and security of your code.

Another thing PHP 4 will now tell you about is the use of uninitialized variables or array elements.

Anterior | Principal | Próxima
Parser behavior | Acima | Initializers


Initializers

Static variable and class member initializers only accept scalar values while in PHP 3 they accepted any valid expression. This is, once again, due to the split between parsing and execution as no code has yet been executed when the parser sees the initializer.

For classes you should use constructors to initialize member variables instead. For static variables anything but a simple static value rarely makes sense anyway.

Anterior | Principal | Próxima
Error reporting | Acima | empty("0")


Missing functions

While PHP 4 comes with a lot of new features, functions and extensions, you may still find some functions from version 3 missing. A small number of core functions has vanished because they do not work with the new scheme of splitting parsing and execution as introduced into 4 with the Zend engine. Other functions and even complete extensions have become obsolete as newer functions and extensions serve the same task better and/or in a more general way. Some functions just simply haven't been ported yet and finally some functions or extensions may be missing due to license conflicts.

Functions missing due to conceptual changes

As PHP 4 now separates parsing from execution it is no longer possible to change the behavior of the parser (now embedded in the Zend engine) at runtime as parsing already happened by then. So the function short_tags() no longer exists. You can still change the parsers behavior by setting appropriate values in the php.ini file.

Another feature of PHP 3 that is not a part of PHP 4 is the bundled debugging interface. There are third-party add-ons for the Zend engine which add similar functionality.

Deprecate functions and extensions

The Adabas and Solid database extensions are no more. Long live the unified ODBC extension instead.

Changed status for unset()

unset(), although still available, is implemented as a language construct rather than a function.

This does not have any consequences on the behavior of unset(), but testing for "unset" using function_exists() will return FALSE as it would with other language constructs that look like functions such as echo().

Another more practical change is that it is no longer possible to call unset() indirectly, that is $func="unset"; $func($somevar) won't work anymore.

Anterior | Principal | Próxima
empty("0") | Acima | PHP 3 extension


PHP 3 extension

Extensions written for PHP 3 will not work with PHP 4, neither as binaries nor at the source level. It is not difficult to port extensions to PHP 4 if you have access to the original source. A detailed description of the actual porting process is not part of this text.

Anterior | Principal | Próxima
Missing functions | Acima | Variable substitution in strings


Variable substitution in strings

PHP 4 adds a new mechanism to variable substitution in strings. You can now finally access object member variables and elements from multidimensional arrays within strings.

To do so you have to enclose your variables with curly braces with the dollar sign immediately following the opening brace: {$...}

To embed the value of an object member variable into a string you simply write "text {$obj->member} text" while in PHP 3 you had to use something like "text ".$obj->member." text".

This should lead to more readable code, while it may break existing scripts written for PHP 3. But you can easily check for this kind of problem by checking for the character combination {$ in your code and by replacing it with \{$ with your favorite search-and-replace tool.

Anterior | Principal | Próxima
PHP 3 extension | Acima | Cookies


Cookies

PHP 3 had the bad habit of setting cookies in the reverse order of the setcookie() calls in your code. PHP 4 breaks with this habit and creates the cookie header lines in exactly the same order as you set the cookies in the code.

This might break some existing code, but the old behaviour was so strange to understand that it deserved a change to prevent further problems in the future.

Anterior | Principal | Próxima
Variable substitution in strings | Acima | Handling of global variables


Handling of global variables

While handling of global variables had the focus on to be easy in PHP 3 and early versions of PHP 4, the focus has changed to be more secure. While in PHP 3 the following example worked fine, in PHP 4 it has to be unset($GLOBALS["id"]);. This is only one issue of global variable handling. You should always have used $GLOBALS, with newer versions of PHP 4 you are forced to do so in most cases. Read more on this subject in the global references section.

Exemplo C-1. Migration of global variables

<?php
$id = 1;
function test()
{
    global $id;
    unset($id);
}
test();
echo($id); // This will print out 1 in PHP 4
?>

Anterior | Principal | Próxima
Cookies | Acima | Migrating from PHP/FI 2 to PHP 3


Migrating from PHP/FI 2 to PHP 3

Manual do PHP
Anterior Próxima

Apêndice D. Migrating from PHP/FI 2 to PHP 3

Índice
About the incompatibilities in 3.0
old_function
Start/end tags
if..endif syntax
while syntax
Expression types
Error messages have changed
Short-circuited boolean evaluation
Function TRUE/FALSE return values
Other incompatibilities

About the incompatibilities in 3.0

PHP 3.0 is rewritten from the ground up. It has a proper parser that is much more robust and consistent than 2.0's. 3.0 is also significantly faster, and uses less memory. However, some of these improvements have not been possible without compatibility changes, both in syntax and functionality.

In addition, PHP's developers have tried to clean up both PHP's syntax and semantics in version 3.0, and this has also caused some incompatibilities. In the long run, we believe that these changes are for the better.

This chapter will try to guide you through the incompatibilities you might run into when going from PHP/FI 2.0 to PHP 3.0 and help you resolve them. New features are not mentioned here unless necessary.

A conversion program that can automatically convert your old PHP/FI 2.0 scripts exists. It can be found in the convertor subdirectory of the PHP 3.0 distribution. This program only catches the syntax changes though, so you should read this chapter carefully anyway.

Anterior | Principal | Próxima
Handling of global variables | Acima | old_function


Start/end tags

The first thing you probably will notice is that PHP's start and end tags have changed. The old <? > form has been replaced by three new possible forms:

Exemplo D-1. Migration: old start/end tags

<? echo "This is PHP/FI 2.0 code.\n"; >
As of version 2.0, PHP/FI also supports this variation:

Exemplo D-2. Migration: first new start/end tags

<? echo "This is PHP 3.0 code!\n"; ?>
Notice that the end tag now consists of a question mark and a greater-than character instead of just greater-than. However, if you plan on using XML on your server, you will get problems with the first new variant, because PHP may try to execute the XML markup in XML documents as PHP code. Because of this, the following variation was introduced:

Exemplo D-3. Migration: second new start/end tags

<?php echo "This is PHP 3.0 code!\n"; ?>
Some people have had problems with editors that don't understand the processing instruction tags at all. Microsoft FrontPage is one such editor, and as a workaround for these, the following variation was introduced as well:

Exemplo D-4. Migration: third new start/end tags

<script language="php">

  echo "This is PHP 3.0 code!\n";

</script>

Anterior | Principal | Próxima
old_function | Acima | if..endif syntax


if..endif syntax

The `alternative' way to write if/elseif/else statements, using if(); elseif(); else; endif; cannot be efficiently implemented without adding a large amount of complexity to the 3.0 parser. Because of this, the syntax has been changed:

Exemplo D-5. Migration: old if..endif syntax

if ($foo);
    echo "yep\n";
elseif ($bar);
    echo "almost\n";
else;
    echo "nope\n";
endif;

Exemplo D-6. Migration: new if..endif syntax

if ($foo):
    echo "yep\n";
elseif ($bar):
    echo "almost\n";
else:
    echo "nope\n";
endif;
Notice that the semicolons have been replaced by colons in all statements but the one terminating the expression (endif).

Anterior | Principal | Próxima
Start/end tags | Acima | while syntax


while syntax

Just like with if..endif, the syntax of while..endwhile has changed as well:

Exemplo D-7. Migration: old while..endwhile syntax

while ($more_to_come);
    ...
endwhile;

Exemplo D-8. Migration: new while..endwhile syntax

while ($more_to_come):
    ...
endwhile;

Atenção

If you use the old while..endwhile syntax in PHP 3.0, you will get a never-ending loop.

Anterior | Principal | Próxima
if..endif syntax | Acima | Expression types


Expression types

PHP/FI 2.0 used the left side of expressions to determine what type the result should be. PHP 3.0 takes both sides into account when determining result types, and this may cause 2.0 scripts to behave unexpectedly in 3.0.

Consider this example:

$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}

In PHP/FI 2.0, this would display both of $a's indices. In PHP 3.0, it wouldn't display anything. The reason is that in PHP 2.0, because the left argument's type was string, a string comparison was made, and indeed "" does not equal "0", and the loop went through. In PHP 3.0, when a string is compared with an integer, an integer comparison is made (the string is converted to an integer). This results in comparing atoi("") which is 0, and variablelist which is also 0, and since 0==0, the loop doesn't go through even once.

The fix for this is simple. Replace the while statement with:

while ((string)$key != "") {

Anterior | Principal | Próxima
while syntax | Acima | Error messages have changed


Error messages have changed

PHP 3.0's error messages are usually more accurate than 2.0's were, but you no longer get to see the code fragment causing the error. You will be supplied with a file name and a line number for the error, though.

Anterior | Principal | Próxima
Expression types | Acima | Short-circuited boolean evaluation


Short-circuited boolean evaluation

In PHP 3.0 boolean evaluation is short-circuited. This means that in an expression like (1 || test_me()), the function test_me() would not be executed since nothing can change the result of the expression after the 1.

This is a minor compatibility issue, but may cause unexpected side-effects.

Anterior | Principal | Próxima
Error messages have changed | Acima | Function TRUE/FALSE return values


Other incompatibilities

  • The PHP 3.0 Apache module no longer supports Apache versions prior to 1.2. Apache 1.2 or later is required.

  • echo() no longer supports a format string. Use the printf() function instead.

  • In PHP/FI 2.0, an implementation side-effect caused $foo[0] to have the same effect as $foo. This is not true for PHP 3.0.

  • Reading arrays with $array[] is no longer supported

    That is, you cannot traverse an array by having a loop that does $data = $array[]. Use current() and next() instead.

    Also, $array1[] = $array2 does not append the values of $array2 to $array1, but appends $array2 as the last entry of $array1. See also multidimensional array support.

  • "+" is no longer overloaded as a concatenation operator for strings, instead it converts it's arguments to numbers and performs numeric addition. Use "." instead.

Exemplo D-11. Migration from 2.0: concatenation for strings

echo "1" + "1";

In PHP 2.0 this would echo 11, in PHP 3.0 it would echo 2. Instead use:
echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

This would echo 2 in both PHP 2.0 and 3.0.
$a = 1;
$b = 1;
echo $a.$b;
This will echo 11 in PHP 3.0.

Anterior | Principal | Próxima
Function TRUE/FALSE return values | Acima | O debugador do PHP


O debugador do PHP

Manual do PHP
Anterior Próxima

Apêndice E. O debugador do PHP

Índice
Sobre o debugador
Utilizando o debugador
Protocolo do Debugger

Sobre o debugador

O PHP 3 tem suporte ao debug baseado em rede.

O PHP 4 não possui um utilitário de debug interno. Mas você pode utilizar debugadores externos alternativamente. O Zend IDE inclui um debugador e há também outras extensões grátis como o DBG em http://dd.cron.ru/dbg/, o Advanced PHP Debugger (APD) ou o Xdebug que são compatíveis com a interface de debug como também a funcionalidade do PHP 3 descrita nesta seção.

Anterior | Principal | Próxima
Other incompatibilities | Acima | Utilizando o debugador


Utilizando o debugador

O debugador interno do PHP 3 é útil para rastrear bugs fugitivos. O debugador trabalha conectado em uma porta TCP cada vez que o PHP 3 inicia. Todas as mensagens de erro daquela requisição será enviada para esta conexão TCP. Estas informações são destinadas a "debugar o servidor" de dentro de um sistema IDE ou editor de arquivos programável (como o Emacs).

Como ativar o debugger:

  1. Configure uma porta TCP para ele no arquivo de configuração (debugger.port) e habilite ele (debugger.enabled).

  2. Configure um "ouvidor" TCP naquela porta em algum programa (por exemplo socket -l -s 1400 no Unix).

  3. Em seu código execute um "debugger_on(endereço)", onde endereço é o número IP ou nome do computador executando o "ouvidor" TCP.

Agora, todos os alarmes, avisos, etc. aparecerão no computador que está "ouvindo", mesmo que você desligue com error_reporting().

Anterior | Principal | Próxima
O debugador do PHP | Acima | Protocolo do Debugger


Protocolo do Debugger

O protocolo do debugador do PHP 3 é baseado em linhas. Cada linha tem um tipo, e várias linhas compõem uma mensagem. Cada mensagem começa com uma linha do tipo start e termina com uma linha do tipo end. O PHP 3 pode enviar linhas de diferentes mensagens simultaneamente.

Uma linha tem este formato:

date time host(pid) type: message-data

date

Data no formato ISO 8601 (yyyy-mm-dd)

time

Hora, incluindo microsegundos: hh:mm:uuuuuu

host

Nome DNS ou IP da maquina onde o erro do script foi gerado.

pid

ID do processo na máquina do processo com o PHP 3 que gerou este erro de script.

type

Tipo da linha. Informa o programa sobre como ele deve tratar os seguintes dados:

Tabela E-1. Tipos de Linhas de Debug

Nome | Significado
start | Informa ao programa que a mensagem começa aqui. O conteúdo de data será o tipo de erro da mensagem, como listado abaixo.
message | A mensagem de erro do PHP 3.
location | Arquivo e número da linha onde ocorreu o erro. A primeira linha location sempre conterá o nível superior. data conterá: arquivo:linha. Sempre existirá uma linha location após uma message e após cada function.
frames | Número de janelas (frames) na saida atual. Se houver quatro níveis, será esperado informação sobre quatro níveis de funções chamadas. Se não for dada nenhuma linha de janela (frame) assume que o valor é 0 (o erro aconteceu no início).
function | Nome da função onde o erro ocorreu. Será repetida para cada vez que a função for chamada dentro da pilha.
end | Informa ao programa que a mensagem de debug termina aqui.

dados

Linha de dados.

Tabela E-2. Tipos de erros de debug

Debugador | Interno do PHP 3
warning (alerta, atenção) | E_WARNING
error (erro) | E_ERROR
parse (interpretação) | E_PARSE
notice (notificação) | E_NOTICE
core-error (erro grave) | E_CORE_ERROR
core-warning (aviso grave) | E_CORE_WARNING
unknown (desconhecido) | (qualquer outro)

Exemplo E-1. Exemplo de uma mensagem de Debug

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (null):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice

Anterior | Principal | Próxima
Utilizando o debugador | Acima | Extending PHP 3


Extending PHP 3

Manual do PHP
Anterior Próxima

Apêndice F. Extending PHP 3

Índice
Adding functions to PHP
Calling User Functions
Reporting Errors

This section is rather outdated and demonstrates how to extend PHP 3. If you're interested in PHP 4, please read the section on the Zend API. Also, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL.

Adding functions to PHP

Function Prototype

All functions look like this:
void php3_foo(INTERNAL_FUNCTION_PARAMETERS) {

}
Even if your function doesn't take any arguments, this is how it is called.

Function Arguments

Arguments are always of type pval. This type contains a union which has the actual type of the argument. So, if your function takes two arguments, you would do something like the following at the top of your function:

Exemplo F-1. Fetching function arguments

pval *arg1, *arg2;
if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
   WRONG_PARAM_COUNT;
}
NOTE: Arguments can be passed either by value or by reference. In both cases you will need to pass &(pval *) to getParameters. If you want to check if the n'th parameter was sent to you by reference or not, you can use the function, ParameterPassedByReference(ht,n). It will return either 1 or 0.

When you change any of the passed parameters, whether they are sent by reference or by value, you can either start over with the parameter by calling pval_destructor on it, or if it's an ARRAY you want to add to, you can use functions similar to the ones in internal_functions.h which manipulate return_value as an ARRAY.

Also if you change a parameter to IS_STRING make sure you first assign the new estrdup()'ed string and the string length, and only later change the type to IS_STRING. If you change the string of a parameter which already IS_STRING or IS_ARRAY you should run pval_destructor on it first.

Variable Function Arguments

A function can take a variable number of arguments. If your function can take either 2 or 3 arguments, use the following:

Exemplo F-2. Variable function arguments

pval *arg1, *arg2, *arg3;
int arg_count = ARG_COUNT(ht);

if (arg_count < 2 || arg_count > 3 ||
    getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
    WRONG_PARAM_COUNT;
}

Using the Function Arguments

The type of each argument is stored in the pval type field. This type can be any of the following:

Tabela F-1. PHP Internal Types

IS_STRING | String
IS_DOUBLE | Double-precision floating point
IS_LONG | Long integer
IS_ARRAY | Array
IS_EMPTY | None
IS_USER_FUNCTION | ??
IS_INTERNAL_FUNCTION | ?? (if some of these cannot be passed to a function - delete)
IS_CLASS | ??
IS_OBJECT | ??

If you get an argument of one type and would like to use it as another, or if you just want to force the argument to be of a certain type, you can use one of the following conversion functions:
convert_to_long(arg1);
convert_to_double(arg1);
convert_to_string(arg1);
convert_to_boolean_long(arg1); /* If the string is "" or "0" it becomes 0, 1 otherwise */
convert_string_to_number(arg1);  /* Converts string to either LONG or DOUBLE depending on string */

These function all do in-place conversion. They do not return anything.

The actual argument is stored in a union; the members are:

  • IS_STRING: arg1->value.str.val

  • IS_LONG: arg1->value.lval

  • IS_DOUBLE: arg1->value.dval

Memory Management in Functions

Any memory needed by a function should be allocated with either emalloc() or estrdup(). These are memory handling abstraction functions that look and smell like the normal malloc() and strdup() functions. Memory should be freed with efree().

There are two kinds of memory in this program: memory which is returned to the parser in a variable, and memory which you need for temporary storage in your internal function. When you assign a string to a variable which is returned to the parser you need to make sure you first allocate the memory with either emalloc() or estrdup(). This memory should NEVER be freed by you, unless you later in the same function overwrite your original assignment (this kind of programming practice is not good though).

For any temporary/permanent memory you need in your functions/library you should use the three emalloc(), estrdup(), and efree() functions. They behave EXACTLY like their counterpart functions. Anything you emalloc() or estrdup() you have to efree() at some point or another, unless it's supposed to stick around until the end of the program; otherwise, there will be a memory leak. The meaning of "the functions behave exactly like their counterparts" is: if you efree() something which was not emalloc()'ed nor estrdup()'ed you might get a segmentation fault. So please take care and free all of your wasted memory.

If you compile with "-DDEBUG", PHP will print out a list of all memory that was allocated using emalloc() and estrdup() but never freed with efree() when it is done running the specified script.

Setting Variables in the Symbol Table

A number of macros are available which make it easier to set a variable in the symbol table:

  • SET_VAR_STRING(name,value)

  • SET_VAR_DOUBLE(name,value)

  • SET_VAR_LONG(name,value)

Atenção

Be careful with SET_VAR_STRING. The value part must be malloc'ed manually because the memory management code will try to free this pointer later. Do not pass statically allocated memory into a SET_VAR_STRING.

Symbol tables in PHP are implemented as hash tables. At any given time, &symbol_table is a pointer to the 'main' symbol table, and active_symbol_table points to the currently active symbol table (these may be identical like in startup, or different, if you're inside a function).

The following examples use 'active_symbol_table'. You should replace it with &symbol_table if you specifically want to work with the 'main' symbol table. Also, the same functions may be applied to arrays, as explained below.

Exemplo F-3. Checking whether $foo exists in a symbol table

if (hash_exists(active_symbol_table,"foo",sizeof("foo"))) { exists... }
else { doesn't exist }

Exemplo F-4. Finding a variable's size in a symbol table

hash_find(active_symbol_table,"foo",sizeof("foo"),&pvalue);
check(pvalue.type);
Arrays in PHP are implemented using the same hashtables as symbol tables. This means the two above functions can also be used to check variables inside arrays.

If you want to define a new array in a symbol table, you should do the following.

First, you may want to check whether it exists and abort appropriately, using hash_exists() or hash_find().

Next, initialize the array:

Exemplo F-5. Initializing a new array

pval arr;

if (array_init(&arr) == FAILURE) { failed... };
hash_update(active_symbol_table,"foo",sizeof("foo"),&arr,sizeof(pval),NULL);
This code declares a new array, named $foo, in the active symbol table. This array is empty.

Here's how to add new entries to it:

Exemplo F-6. Adding entries to a new array

pval entry;

entry.type = IS_LONG;
entry.value.lval = 5;

/* defines $foo["bar"] = 5 */
hash_update(arr.value.ht,"bar",sizeof("bar"),&entry,sizeof(pval),NULL);

/* defines $foo[7] = 5 */
hash_index_update(arr.value.ht,7,&entry,sizeof(pval),NULL);

/* defines the next free place in $foo[],
 * $foo[8], to be 5 (works like php2)
 */
hash_next_index_insert(arr.value.ht,&entry,sizeof(pval),NULL);
If you'd like to modify a value that you inserted to a hash, you must first retrieve it from the hash. To prevent that overhead, you can supply a pval ** to the hash add function, and it'll be updated with the pval * address of the inserted element inside the hash. If that value is NULL (like in all of the above examples) - that parameter is ignored.

hash_next_index_insert() uses more or less the same logic as "$foo[] = bar;" in PHP 2.0.

If you are building an array to return from a function, you can initialize the array just like above by doing:

if (array_init(return_value) == FAILURE) { failed...; }

...and then adding values with the helper functions:

add_next_index_long(return_value,long_value);
add_next_index_double(return_value,double_value);
add_next_index_string(return_value,estrdup(string_value));

Of course, if the adding isn't done right after the array initialization, you'd probably have to look for the array first:
pval *arr;

if (hash_find(active_symbol_table,"foo",sizeof("foo"),(void **)&arr)==FAILURE) { can't find... }
else { use arr->value.ht... }

Note that hash_find receives a pointer to a pval pointer, and not a pval pointer.

Just about any hash function returns SUCCESS or FAILURE (except for hash_exists(), which returns a boolean truth value).

Returning simple values

A number of macros are available to make returning values from a function easier.

The RETURN_* macros all set the return value and return from the function:

  • RETURN

  • RETURN_FALSE

  • RETURN_TRUE

  • RETURN_LONG(l)

  • RETURN_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETURN_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETURN_DOUBLE(d)

The RETVAL_* macros set the return value, but do not return.

  • RETVAL_FALSE

  • RETVAL_TRUE

  • RETVAL_LONG(l)

  • RETVAL_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETVAL_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETVAL_DOUBLE(d)

The string macros above will all estrdup() the passed 's' argument, so you can safely free the argument after calling the macro, or alternatively use statically allocated memory.

If your function returns boolean success/error responses, always use RETURN_TRUE and RETURN_FALSE respectively.

Returning complex values

Your function can also return a complex data type such as an object or an array.

Returning an object:

  1. Call object_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

  3. Possibly, register functions for this object. In order to obtain values from the object, the function would have to fetch "this" from the active_symbol_table. Its type should be IS_OBJECT, and it's basically a regular hash table (i.e., you can use regular hash functions on .value.ht). The actual registration of the function can be done using:
    add_method( return_value, function_name, function_ptr );

The functions used to populate an object are:

  • add_property_long( return_value, property_name, l ) - Add a property named 'property_name', of type long, equal to 'l'

  • add_property_double( return_value, property_name, d ) - Same, only adds a double

  • add_property_string( return_value, property_name, str ) - Same, only adds a string

  • add_property_stringl( return_value, property_name, str, l ) - Same, only adds a string of length 'l'

Returning an array:

  1. Call array_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

The functions used to populate an array are:

  • add_assoc_long(return_value,key,l) - add associative entry with key 'key' and long value 'l'

  • add_assoc_double(return_value,key,d)

  • add_assoc_string(return_value,key,str,duplicate)

  • add_assoc_stringl(return_value,key,str,length,duplicate) specify the string length

  • add_index_long(return_value,index,l) - add entry in index 'index' with long value 'l'

  • add_index_double(return_value,index,d)

  • add_index_string(return_value,index,str)

  • add_index_stringl(return_value,index,str,length) - specify the string length

  • add_next_index_long(return_value,l) - add an array entry in the next free offset with long value 'l'

  • add_next_index_double(return_value,d)

  • add_next_index_string(return_value,str)

  • add_next_index_stringl(return_value,str,length) - specify the string length

Using the resource list

PHP has a standard way of dealing with various types of resources. This replaces all of the local linked lists in PHP 2.0.

Available functions:

  • php3_list_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_list_delete(id) - delete the resource with the specified id

  • php3_list_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

Typically, these functions are used for SQL drivers but they can be used for anything else; for instance, maintaining file descriptors.

Typical list code would look like this:

Exemplo F-7. Adding a new resource

RESOURCE *resource;

/* ...allocate memory for resource and acquire resource... */
/* add a new resource to the list */
return_value->value.lval = php3_list_insert((void *) resource, LE_RESOURCE_TYPE);
return_value->type = IS_LONG;

Exemplo F-8. Using an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
resource = php3_list_find(resource_id->value.lval, &type);
if (type != LE_RESOURCE_TYPE) {
    php3_error(E_WARNING,"resource index %d has the wrong type",resource_id->value.lval);
    RETURN_FALSE;
}
/* ...use resource... */

Exemplo F-9. Deleting an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
php3_list_delete(resource_id->value.lval);
The resource types should be registered in php3_list.h, in enum list_entry_type. In addition, one should add shutdown code for any new resource type defined, in list.c's list_entry_destructor() (even if you don't have anything to do on shutdown, you must add an empty case).

Using the persistent resource table

PHP has a standard way of storing persistent resources (i.e., resources that are kept in between hits). The first module to use this feature was the MySQL module, and mSQL followed it, so one can get the general impression of how a persistent resource should be used by reading mysql.c. The functions you should look at are:

php3_mysql_do_connect
php3_mysql_connect()
php3_mysql_pconnect()

The general idea of persistence modules is this:

  1. Code all of your module to work with the regular resource list mentioned in section (9).

  2. Code extra connect functions that check if the resource already exists in the persistent resource list. If it does, register it as in the regular resource list as a pointer to the persistent resource list (because of 1., the rest of the code should work immediately). If it doesn't, then create it, add it to the persistent resource list AND add a pointer to it from the regular resource list, so all of the code would work since it's in the regular resource list, but on the next connect, the resource would be found in the persistent resource list and be used without having to recreate it. You should register these resources with a different type (e.g. LE_MYSQL_LINK for non-persistent link and LE_MYSQL_PLINK for a persistent link).

If you read mysql.c, you'll notice that except for the more complex connect function, nothing in the rest of the module has to be changed.

The very same interface exists for the regular resource list and the persistent resource list, only 'list' is replaced with 'plist':

  • php3_plist_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_plist_delete(id) - delete the resource with the specified id

  • php3_plist_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

However, it's more than likely that these functions would prove to be useless for you when trying to implement a persistent module. Typically, one would want to use the fact that the persistent resource list is really a hash table. For instance, in the MySQL/mSQL modules, when there's a pconnect() call (persistent connect), the function builds a string out of the host/user/passwd that were passed to the function, and hashes the SQL link with this string as a key. The next time someone calls a pconnect() with the same host/user/passwd, the same key would be generated, and the function would find the SQL link in the persistent list.

Until further documented, you should look at mysql.c or msql.c to see how one should use the plist's hash table abilities.

One important thing to note: resources going into the persistent resource list must *NOT* be allocated with PHP's memory manager, i.e., they should NOT be created with emalloc(), estrdup(), etc. Rather, one should use the regular malloc(), strdup(), etc. The reason for this is simple - at the end of the request (end of the hit), every memory chunk that was allocated using PHP's memory manager is deleted. Since the persistent list isn't supposed to be erased at the end of a request, one mustn't use PHP's memory manager for allocating resources that go to it.

When you register a resource that's going to be in the persistent list, you should add destructors to it both in the non-persistent list and in the persistent list. The destructor in the non-persistent list destructor shouldn't do anything. The one in the persistent list destructor should properly free any resources obtained by that type (e.g. memory, SQL links, etc). Just like with the non-persistent resources, you *MUST* add destructors for every resource, even it requires no destruction and the destructor would be empty. Remember, since emalloc() and friends aren't to be used in conjunction with the persistent list, you mustn't use efree() here either.

Adding runtime configuration directives

Many of the features of PHP can be configured at runtime. These configuration directives can appear in either the designated php3.ini file, or in the case of the Apache module version in the Apache .conf files. The advantage of having them in the Apache .conf files is that they can be configured on a per-directory basis. This means that one directory may have a certain safemodeexecdir for example, while another directory may have another. This configuration granularity is especially handy when a server supports multiple virtual hosts.

The steps required to add a new directive:

  1. Add directive to php3_ini_structure struct in mod_php3.h.

  2. In main.c, edit the php3_module_startup function and add the appropriate cfg_get_string() or cfg_get_long() call.

  3. Add the directive, restrictions and a comment to the php3_commands structure in mod_php3.c. Note the restrictions part. RSRC_CONF are directives that can only be present in the actual Apache .conf files. Any OR_OPTIONS directives can be present anywhere, include normal .htaccess files.

  4. In either php3take1handler() or php3flaghandler() add the appropriate entry for your directive.

  5. In the configuration section of the _php3_info() function in functions/info.c you need to add your new directive.

  6. And last, you of course have to use your new directive somewhere. It will be addressable as php3_ini.directive.

Anterior | Principal | Próxima
Protocolo do Debugger | Acima | Calling User Functions


Calling User Functions

To call user functions from an internal function, you should use the call_user_function() function.

call_user_function() returns SUCCESS on success, and FAILURE in case the function cannot be found. You should check that return value! If it returns SUCCESS, you are responsible for destroying the retval pval yourself (or return it as the return value of your function). If it returns FAILURE, the value of retval is undefined, and you mustn't touch it.

All internal functions that call user functions must be reentrant. Among other things, this means they must not use globals or static variables.

call_user_function() takes six arguments:

HashTable *function_table

This is the hash table in which the function is to be looked up.

pval *object

This is a pointer to an object on which the function is invoked. This should be NULL if a global function is called. If it's not NULL (i.e. it points to an object), the function_table argument is ignored, and instead taken from the object's hash. The object *may* be modified by the function that is invoked on it (that function will have access to it via $this). If for some reason you don't want that to happen, send a copy of the object instead.

pval *function_name

The name of the function to call. Must be a pval of type IS_STRING with function_name.str.val and function_name.str.len set to the appropriate values. The function_name is modified by call_user_function() - it's converted to lowercase. If you need to preserve the case, send a copy of the function name instead.

pval *retval

A pointer to a pval structure, into which the return value of the invoked function is saved. The structure must be previously allocated - call_user_function() does NOT allocate it by itself.

int param_count

The number of parameters being passed to the function.

pval *params[]

An array of pointers to values that will be passed as arguments to the function, the first argument being in offset 0, the second in offset 1, etc. The array is an array of pointers to pval's; The pointers are sent as-is to the function, which means if the function modifies its arguments, the original values are changed (passing by reference). If you don't want that behavior, pass a copy instead.

Anterior | Principal | Próxima
Extending PHP 3 | Acima | Reporting Errors


Reporting Errors

To report errors from an internal function, you should call the php3_error() function. This takes at least two parameters -- the first is the level of the error, the second is the format string for the error message (as in a standard printf() call), and any following arguments are the parameters for the format string. The error levels are:

E_NOTICE

Notices are not printed by default, and indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. For example, trying to access the value of a variable which has not been set, or calling stat() on a file that doesn't exist.

E_WARNING

Warnings are printed by default, but do not interrupt script execution. These indicate a problem that should have been trapped by the script before the call was made. For example, calling ereg() with an invalid regular expression.

E_ERROR

Errors are also printed by default, and execution of the script is halted after the function returns. These indicate errors that can not be recovered from, such as a memory allocation problem.

E_PARSE

Parse errors should only be generated by the parser. The code is listed here only for the sake of completeness.

E_CORE_ERROR

This is like an E_ERROR, except it is generated by the core of PHP. Functions should not generate this type of error.

E_CORE_WARNING

This is like an E_WARNING, except it is generated by the core of PHP. Functions should not generate this type of error.

E_COMPILE_ERROR

This is like an E_ERROR, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_COMPILE_WARNING

This is like an E_WARNING, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_USER_ERROR

This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_WARNING

This is like an E_WARNING, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_NOTICE

This is like an E_NOTICE, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_ALL

All of the above. Using this error_reporting level will show all error types.

Anterior | Principal | Próxima
Calling User Functions | Acima | Lista de funções sinônimas (aliases)


Lista de funções sinônimas (aliases)

Manual do PHP
Anterior Próxima

Apêndice G. Lista de funções sinônimas (aliases)

Esta é a lista de funções sinônimas. Todas as funções sinônimas estão listadas aqui. Normalmente é uma má idéia utiliza-lás, pois elas estão em vias de ficarem obsoletas ou serem renomeadas, o que criaria um script não portável. Esta lista é fornecida para ajudar aqueles que querem atualizar os seus scripts antigos para a nova sintaxe.

De qualquer forma, alguma funções simplesmente tem dois nomes e não tem real preferência. (Por exemplo, is_int() e is_integer() são igualmente boas)

Esta lista é consistente com o PHP versão 4.0.6. Para uma lista de apelidos atualizada diariamente, veja http://zend.com/phpfunc/all_aliases.php.

Tabela G-1. Sinônimos

Função sinônimo (alias) | Função mestre | Extensão usada
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
cv_add | ccvs_add() | CCVS
cv_auth | ccvs_auth() | CCVS
cv_command | ccvs_command() | CCVS
cv_count | ccvs_count() | CCVS
cv_delete | ccvs_delete() | CCVS
cv_done | ccvs_done() | CCVS
cv_init | ccvs_init() | CCVS
cv_lookup | ccvs_lookup() | CCVS
cv_new | ccvs_new() | CCVS
cv_report | ccvs_report() | CCVS
cv_return | ccvs_return() | CCVS
cv_reverse | ccvs_reverse() | CCVS
cv_sale | ccvs_sale() | CCVS
cv_status | ccvs_status() | CCVS
cv_textvalue | ccvs_textvalue() | CCVS
cv_void | ccvs_void() | CCVS
die | exit() | Miscellaneous functions
dir | getdir() | Base syntax
diskfreespace | disk_free_space() | Filesystem
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | Base syntax
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Base syntax
is_double | is_float() | Base syntax
is_integer | is_int() | Base syntax
is_long | is_int() | Base syntax
is_real | is_float() | Base syntax
is_writeable | is_writable() | Base syntax
join | implode() | Base syntax
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Base syntax
mbstrcut | mb_strcut() | Multi-bytes Strings
mbstrlen | mb_strlen() | Multi-bytes Strings
mbstrpos | mb_strpos() | Multi-bytes Strings
mbstrrpos | mb_strrpos() | Multi-bytes Strings
mbsubstr | mb_substr() | Multi-bytes Strings
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | OCI8
odbc_field_precision | odbc_field_len() | OCI8
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | Base syntax
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file () | Base syntax
sizeof | count() | Base syntax
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

Anterior | Principal | Próxima
Reporting Errors | Acima | Palavras reservadas do PHP


Palavras reservadas do PHP

Manual do PHP
Anterior Próxima

Apêndice H. Palavras reservadas do PHP

Índice
Lista de palavras-chave (keywords)
Variáveis predefinidas
Classes pre-definidas
Constantes Predefinidas

Esta é uma lista de identificadores predefinidos do PHP. Nenhum dos identificadores listados aqui pode ser utilizado como seus identificadores nos scripts. Esta lista inclui palavras-chave e variáveis predefinidas, constantes e nomes de classes. Esta lista ainda não está completa.

Lista de palavras-chave (keywords)

Estas palavras tem um significado especial no PHP. Algumas delas representam coisas que parecem funções, algumas parecem constantes mas na verdade não o são realmente: elas são construtores de linguagem. Você não pode usar nenhuma das seguintes palavras como constantes, nomes de classes ou de funções. Utilizar como nome de variáveis geralmente não causa erros, mas pode levar a confusão.

Tabela H-1. Palavras-chave do PHP

and | or | xor | __FILE__ | exception | php_user_filter
__LINE__ | array() | as | break | case
cfunction | class | const | continue | declare
default | die() | do | echo() | else
elseif | empty() | enddeclare | endfor | endforeach
endif | endswitch | endwhile | eval | exit()
extends | for | foreach | function | global
if | include() | include_once() | isset() | list()
new | old_function | print() | require() | require_once()
return() | static | switch | unset() | use
var | while | __FUNCTION__ | __CLASS__ | __METHOD__

Anterior | Principal | Próxima
Lista de funções sinônimas (aliases) | Acima | Variáveis predefinidas


Variáveis predefinidas

Desde o PHP 4.1.0, o método preferencial para obter variáveis externas é através das superglobais mencionadas acima. Antes disso, as pessoas utilizavam register_globals ou os arrays pré-definidos do PHP ($HTTP_*_VARS). A partir do PHP 5.0.0, os grandes arrays pré-definidos podem ser desabilitados com register_long_arrays directive.

Variáveis do servidor: $_SERVER

Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_SERVER_VARS.

$_SERVER é um array contendo informações como headers, caminhos e localizações do script. Os itens deste array são criados pelo servidor web. Não há garantias que todos os servidores web geram todas elas: alguns servidores talvez omitam algumas ou geram outras que não estão listadas aqui. Mesmo assim, um grande número dessas variáveis estão de acordo com a especificação CGI 1.1, então você pode esperar encontrá-las nesse array.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_SERVER; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_SERVER_VARS.

$HTTP_SERVER_VARS contém a mesmas informações, mas ela não é uma superglobal.(Note que $HTTP_SERVER_VARS e $_SERVER são variáveis diferentes como também o PHP as manipula diferentemente)

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_SERVER e $HTTP_SERVER_VARS. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Você poderá ou não encontrar qualquer um dos seguintes elementos dentro de $_SERVER. Note que poucos (ou nenhum) deles estão disponíveis (ou não terão qualquer sentido) se você estiver rodando o PHP na linha de comando.

'PHP_SELF'

O nome do arquivo do script atualmente em uso, relativo ao document root. Por exemplo, $_SERVER['PHP_SELF'] em um script com o endereço http://example.com/test.php/foo.bar pode ser /test.php/foo.bar.

Se estiver rodando o PHP em linha de comando, esta variável não está disponível.

'argv'

Array de argumentos passado para o script. Quando o script é executado na linha de comando, isto permite um acesso aos parâmetros de linha de comando no estilo do C. Quando chamado via método GET, ele conterá a query string.

'argc'

Contém o número de parâmetros da linha de comando passados para o script (se executando da linha de comando).

'GATEWAY_INTERFACE'

O número de revisão da especificação CGI que o servidor está utilizando, por exemplo : 'CGI/1.1'.

'SERVER_NAME'

O nome host do servidor onde o script atual é executado. Se o script está rodando em um host virtual, este será o valor definido para aquele host virtual.

'SERVER_SOFTWARE'

A string de identificação do servidor, fornecida nos headers quando respondendo a requests.

'SERVER_PROTOCOL'

Nome e número de revisão do protocolo de informação pelo qual a página foi requerida, por exemplo 'HTTP/1.0';

'REQUEST_METHOD'

Contém o método de request utilizando para acessar a página. Geralmente 'GET', 'HEAD', 'POST' ou 'PUT'.

'QUERY_STRING'

A query string (string de solicitação), se houver, pela qual a página foi acessada.

'DOCUMENT_ROOT'

O diretório raiz sob onde o script atual é executado, como definido no arquivos de configuração do servidor.

'HTTP_ACCEPT'

O conteúdo do header Accept: da requisição atual, se houver.

'HTTP_ACCEPT_CHARSET'

O conteúdo do header Accept-Charset: da requisição atual, se houver. Exemplo: 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'

O conteúdo do header Accept-Encoding: da requisição atual, se houver. Exemplo: 'gzip'.

'HTTP_ACCEPT_LANGUAGE'

O conteúdo do header Accept-Language: da requisição atual, se houver. Exemplo 'en'.

'HTTP_CONNECTION'

O conteúdo do header Connection: da requisição atual, se houver. Exemplo: 'Keep-Alive'.

'HTTP_HOST'

O conteúdo do header Host: da requisição atual, se houver.

'HTTP_REFERER'

O endereço da página (se houver) através da qual o agente do usuário acessou a página atual. Essa diretiva é informada pelo agente do usuário. Nem todos os browsers geram esse header, e alguns ainda possuem a habilidade de modificar o conteúdo do HTTP_REFERER como recurso. Em poucas palavras, não é confiável.

'HTTP_USER_AGENT'

O conteúdo do header User_Agent: da requisição atual, se houver. É uma string denotando o agente de usuário pelo qual a página é acessada. Um exemplo típico é: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Além de outras coisas, você pode utilizar este valor com get_browser() para personalizar a geração de suas páginas para as capacidades do agente do usuário.

'REMOTE_ADDR'

O endereço IP de onde o usuário está visualizado a página atual.

'REMOTE_HOST'

O nome do host que o usuário utilizou para chamar a página atual. O DNS reverso (lookup) do REMOTE_ADDR do usuário.

Nota: Seu servidor web precisa estar configurado para criar essa variável. Por exemplo, no Apache você precisa colocar um HostnameLookups On dentro do httpd.conf. Veja também gethostbyaddr().

'REMOTE_PORT'

A porta TCP na máquina do usuário utilizada para comunicação com o servidor web.

'SCRIPT_FILENAME'

O caminho absoluto o script atualmente em execução.

Nota: Se o script for executado pela CLI com um caminho relativo, como file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] irá conter o caminho relativo especificado pelo usuário.

'SERVER_ADMIN'

O valor fornecido pela diretiva SERVER_ADMIN (do Apache) no arquivo de configuração do servidor. Se o script está sendo executado em um host virtual, este será os valores definidos para aquele host virtual.

'SERVER_PORT'

A porta na máquina servidora utilizada pelo servidor web para comunicação. Como default, este valor é '80'. Utilizando SSL, entretanto, mudará esse valor para a porta de comunicação segura HTTP.

'SERVER_SIGNATURE'

String contendo a versão do servidor e nome do host virtual que é adicionado às páginas geradas no servidor, se ativo.

'PATH_TRANSLATED'

O caminho real do script relativo ao sistema de arquivos (não o document root), depois realizou todos os mapeamentos de caminhos (virtual-to-real).

'SCRIPT_NAME'

Contém o caminho completo do script atual. Útil para páginas que precisam apontar para elas mesmas (dinamicamente).

'REQUEST_URI'

O URI fornecido para acessar a página atual, por exemplo, '/index.html'.

'PHP_AUTH_USER'

Quando executando sob o Apache como módulo e fazendo autenticaçào HTTP, esta variável estará definida com o username fornecido pelo usuário.

'PHP_AUTH_PW'

Quando executando sob o Apache como módulo e fazendo autenticaçào HTTP, esta variável estará definida com a senha fornecida pelo usuário.

'AUTH_TYPE'

Quando executando sob o Apache como módulo e fazendo autenticaçào HTTP, esta variável estará definida com o tipo de autenticação utilizado.

Variáveis de ambiente: $_ENV

Nota: Introduzida na versão 4.1.0. Em versões anteriores, utilize $HTTP_ENV_VARS.

Estas variáveis são importadas dentro no espaço global do PHP do ambiente sob qual o interpretador do PHP está rodando. Muitos são são criados no shell (terminal) sob o qual o PHP é executado e sistemas diferentes normalmente utilizam vários sabores de shells, e uma lista definitiva é impossível. Verifique a documentação de sua shell para a lista de variáveis ambiente definidas.

Outras variáveis ambiente incluem as variáveis CGI, informadas aqui independente do PHP estar rodando como um módulo do servidor ou como processador CGI.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_ENV; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_ENV_VARS.

$HTTP_ENV_VARS contém a mesma informação, mas não é uma superglobal. (Note que HTTP_ENV_VARS e $_ENV são variáveis diferentes como também o PHP as manipula diferentemente)

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_ENV e $HTTP_ENV_VARS. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Cookies HTTP: $_COOKIE

Nota: Introduzida na versão 4.1.0. Em versões anteriores, utilize $HTTP_COOKIE_VARS.

Contém um array associativo de variáveis passas para o script atual através de cookies HTTP.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_COOKIE; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_COOKIE_VARS.

$HTTP_COOKIE_VARS contém as mesmas informações, mas não é uma superglobal. (Note que HTTP_COOKIE_VARS e $_COOKIE são variáveis diferentes como também o PHP as manipula diferentemente)

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_COOKIE e $HTTP_COOKIE_VARS. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Variáveis HTTP GET: $_GET

Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_GET_VARS.

Contém um array associativo de variáveis passadas para o script atual através do método HTTP GET.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_GET; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_GET_VARS.

$HTTP_GET_VARS contém as mesmas informações, mas não é uma superglobal. (Note que HTTP_GET_VARS e $_GET são variáveis diferentes como também o PHP as manipula diferentemente)

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_GET e $HTTP_GET_VARS. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Variaveis HTTP POST: $_POST

Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_POST_VARS.

Contém um array associativo de variáveis passadas para o script atual através do método HTTP POST.

Esta é uma variável 'superglobal', ou automaticamente global. Isto siginifica que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_POST; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_POST_VARS.

$HTTP_POST_VARS contém as mesmas informações, mas não é uma superglobal. (Note que HTTP_POST_VARS e $_POST são variáveis diferentes como também o PHP as manipula diferentemente)

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_POST e $HTTP_POST_VARS. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Variáveis de upload de arquivos HTTP: $_FILES

Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_POST_FILES.

Contém um array associativo dos itens carregador no script atual através do método HTTP POST.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_FILES; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_FILES_VARS.

$HTTP_POST_FILES contém as mesmas informações, mas não é uma superglobal.

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_FILES e $HTTP_POST_FILES. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Variáveis da requisição: $_REQUEST

Nota: Introduzida na versão 4.1.0. Não há array equivalente em versões anteriores.

Nota: Até o PHP 4.3.0, as informações de $_FILES também estavam incluídas em $_REQUEST.

Contém um array associativo com os conteúdos de $_GET, $_POST e $_COOKIE.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_REQUEST; para pode acessá-la dentro de funções ou métodos.

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_REQUEST. Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Variáveis de sessão: $_SESSION

Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_SESSION_VARS.

Contém um array associativo das variáveis de sessão disponíveis para o script atual. Veja a documentação das funções de Sessões para maiores informações de como utilizá-las.

Esta é uma variável 'superglobal', ou automaticamente global. Isto siginifica que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $_SESSION; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_SESSION_VARS.

$HTTP_SESSION_VARS contém as mesmas informações, mas não é uma superglobal.

Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponíveis no escopo global do script (por exemplo, separados dos arrays $_SESSION e $HTTP_SESSION_VARS Para maiores informações, veja o capítulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.

Variaveis globais: $GLOBALS

Nota: $GLOBALS foi disponibilizada desde a versão 3.0.0.

Um array associativo contendo referências para todas as variáveis atualmente definidas no escopo global do script. Os nomes das variáveis são as chaves do array.

Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponível em todos os escopos (níveis) de um script. Você não precisa fazer um global $GLOBALS; para pode acessá-la dentro de funções ou métodos.

A mensagem de erro anterior: $php_errormsg

$php_errormsg é uma variável contendo o texto da última mensagem de erro gerada pelo PHP. Esta variável somente está disponível no escopo em que o erro ocorreu, e somente se a opção de configuração track_errors está ativa (seu default é off).

Anterior | Principal | Próxima
Palavras reservadas do PHP | Acima | Classes pre-definidas


Classes pre-definidas

Classes padrão

Estas classes são definidas dentro do conjunto padrão de funções incluídas na compilação do PHP.

Directory

A classe de onde a função dir() é instanciada.

stdClass

__PHP_Incomplete_Class

Classes Predefinidas no PHP 5

Essas classes predefinidas adicionais foram introduzidas no PHP 5.0.0

exception

php_user_filter

Classes definidas pelo Ming

Estas classes são definidas na extensão Ming, e somente estarão disponíveis quando esta extensão for compilada dento do PHP ou carregada em tempo de execução.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Classes definidas pelo Oracle 8

Estas classes são definidas na extensão Oracle 8, e somente estarão disponíveis quando esta extensão for compilada dento do PHP ou carregada em tempo de execução.

OCI-Lob

OCI-Collection

Classes definidas pelo qtdom

Estas classes são definidas na extensão qtdom e somente estarão disponíveis quando esta extensão for compilada dento do PHP ou carregada em tempo de execução.

QDomDocument

QDomNode

Anterior | Principal | Próxima
Variáveis predefinidas | Acima | Constantes Predefinidas


Constantes Predefinidas

Índice
Core Predefined Constants -- Constants defined in the PHP core, Zend, and SAPI modules
Standard Predefined Constants -- Constants defined in PHP by default

Anterior | Principal | Próxima
Classes pre-definidas | Acima | Core Predefined Constants


List of Resource Types

Manual do PHP
Anterior Próxima

Apêndice I. List of Resource Types

The following is a list of functions which create, use or destroy PHP resources. The function is_resource() can be used to determine if a variable is a resource and get_resource_type() will return the type of resource it is.

Tabela I-1. Resource Types

Resource Type Name | Created By | Used By | Destroyed By | Definition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | None | Aspell dictionary
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 file
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | None | COM object reference
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | PDF document with CPDF lib
cpdf outline
curl | curl_init() | curl_init(), curl_exec() | curl_close() | Curl session
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Link to DBM database
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Link to DBA database
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | None | Persistent link to DBA database
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Link to Dbase database
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | None | dbx result
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql database | fbsql_select_db() | None | fbsql database
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), (), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | fbsql_close() | Link to fbsql database
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), (), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | None | Persistent link to fbsql database
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | FDF File
ftp | ftp_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site() | ftp_quit() | FTP stream
gd | imagecreate(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatetruecolor() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness() | imagedestroy() | GD Image
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | Font for GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | PS font for GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | None | GMP Number
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Hyperwave object
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Link to Hyperwave server
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | None | Persistent link to Hyperwave server
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Link to icap server
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Link to IMAP, POP3 server
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Link to ingresII base
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | None | Persistent link to ingresII base
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Link to Interbase database
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | None | Persistent link to Interbase database
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase query
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Result
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase transaction
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | ldap connection
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | ldap search result
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Link to calendar server
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Link to mSQL database
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | None | Persistent link to mSQL
msql query | msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_fieldname(), msql_field_seek(), msql_fieldtable(), msql_fieldtype(), msql_fieldflags(), msql_fieldlen(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | mSQL result
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Link to Microsft SQL Server database
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | None | Persistent link to Microsft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Microsft SQL Server result
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Link to MySQL database
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | None | Persistent link to MySQL database
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL result
oci8 collection
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Link to Oracle database
oci8 descriptor
oci8 server
oci8 session
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Oracle Cursor
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Link to ODBC database
odbc link persistent | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | None | Persistent link to ODBC database
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC result
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
oracle Cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Oracle cursor
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Link to oracle database
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | None | Persistent link to oracle database
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_open_memory_image() | pdf_close(), pdf_delete() | PDF document
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Image in PDF file
pdf object
pdf outline
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Link to PostgreSQL database
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | None | Persistent link to PostgreSQL database
pgsql result | pg_query(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL result
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | None | pspell dictionary
pspell config | pspell_config_create() | pspell_new_config() | None | pspell configuration
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | XSLT parser
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | dir() | readdir(), rewinddir() | closedir() | Dir handle
file | fopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
stream
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using DB library
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using DB library
sybase-db result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using DB library
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using CT library
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using CT library
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using CT library
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML parser
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-compressed file

Anterior | Principal | Próxima
Standard Predefined Constants | Acima | List of Supported Protocols/Wrappers


List of Supported Protocols/Wrappers

Manual do PHP
Anterior Próxima

Apêndice J. List of Supported Protocols/Wrappers

Índice
Filesystem
HTTP and HTTPS
FTP and FTPS
PHP input/output streams
Compression Streams

The following is a list of the various URL style protocols that PHP has built-in for use with the filesystem functions such as fopen() and copy(). In addition to these wrappers, as of PHP 4.3.0, you can write your own wrappers using PHP script and stream_wrapper_register().

Filesystem

All versions of PHP. Explicitly using file:// since PHP 4.3.0

  • /path/to/file.ext

  • relative/path/to/file.ext

  • fileInCwd.ext

  • C:/path/to/winfile.ext

  • C:\path\to\winfile.ext

  • \\smbserver\share\path\to\winfile.ext

  • file:///path/to/file.ext

file:// is the default wrapper used with PHP and represents the local filesystem. When a relative path is specified (a path which does not begin with /, \, \\, or a windows drive letter) the path provided will be applied against the current working directory. In many cases this is the directory in which the script resides unless it has been changed. Using the CLI sapi, this defaults to the directory from which the script was called.

With some functions, such as fopen() and file_get_contents(), include_path may be optionally searched for relative paths as well.

Tabela J-1. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | Yes
Supports stat() | Yes
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes

Anterior | Principal | Próxima
List of Resource Types | Acima | HTTP and HTTPS


HTTP and HTTPS

PHP 3, PHP 4. https:// since PHP 4.3.0

  • http://example.com

  • http://example.com/file.php?var1=val1&var2=val2

  • http://user:password@example.com

  • https://example.com

  • https://example.com/file.php?var1=val1&var2=val2

  • https://user:password@example.com

Allows read-only access to files/resources via HTTP 1.0, using the HTTP GET method. A Host: header is sent with the request to handle name-based virtual hosts. If you have configured a user_agent string using your ini file or the stream context, it will also be included in the request.

Atenção

Some non-standard compliant webservers, such as IIS, send data in a way that causes PHP to raise warnings. When working with such servers you should lower your error_reporting level not to include warnings.

Redirects have been supported since PHP 4.0.5; if you are using an earlier version you will need to include trailing slashes in your URLs. If it's important to know the URL of the resource where your document came from (after all redirects have been processed), you'll need to process the series of response headers returned by the stream.

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* Prior to PHP 4.3.0 use $http_response_header
   instead of stream_get_meta_data() */
foreach(stream_get_meta_data($fp) as $response) {

  /* Were we redirected? */
  if (substr(strtolower($response), 0, 10) == 'location: ') {
    /* update $url with where we were redirected to */
    $url = substr($response, 10);
  }

}

?>

The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().

HTTP connections are read-only; you cannot write data or copy files to an HTTP resource.

Nota: HTTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Tabela J-2. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | Yes
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | N/A
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Tabela J-3. Context options (as of PHP 5.0.0)

Name | Usage | Default
method | GET, POST, or any other HTTP method supported by the remote server. | GET
header | Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:). |
user_agent | Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above. | php.ini setting: user_agent
content | Additional data to be sent after the headers. Typically used with POST or PUT requests. |
proxy | URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100 ). |
request_fulluri | When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it. | FALSE

Underlying socket stream context options: Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.

Anterior | Principal | Próxima
List of Supported Protocols/Wrappers | Acima | FTP and FTPS


FTP and FTPS

PHP 3, PHP 4. ftps:// since PHP 4.3.0

  • ftp://example.com/pub/file.txt

  • ftp://user:password@example.com/pub/file.txt

  • ftps://example.com/pub/file.txt

  • ftps://user:password@example.com/pub/file.txt

Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail.

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing. Alternatively, you can use the FTP extension.

Appending: As of PHP 5.0.0 files may be appended via the ftp:// URL wrapper. In prior versions, attempting to append to a file via ftp:// will result in failure.

ftps:// was introduced in PHP 4.3.0. It is the same as ftp://, but attempts to negotiate a secure connection with the ftp server. If the server does not support SSL, then the connection falls back to regular unencrypted ftp.

Nota: FTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Tabela J-4. Wrapper Summary

Attribute | PHP 4 | PHP 5
Restricted by allow_url_fopen. | Yes | Yes
Allows Reading | Yes | Yes
Allows Writing | Yes (new files only) | Yes (new files/existing files with overwrite)
Allows Appending | No | Yes
Allows Simultaneous Reading and Writing | No | No
Supports stat() | No | filesize(), filetype(), file_exists(), is_file(), and is_dir() elements only.
Supports unlink() | No | Yes
Supports rename() | No | Yes
Supports mkdir() | No | Yes
Supports rmdir() | No | Yes

Tabela J-5. Context options (as of PHP 5.0.0)

Name | Usage | Default
overwrite | Allow overwriting of already existing files on remote server. Applies to write mode (uploading) only. | FALSE (Disabled)
resume_pos | File offset at which to begin transfer. Applies to read mode (downloading) only. | 0 (Beginning of File)

Underlying socket stream context options: Additional context options may be supported by the underlying transport For ftp:// streams, refer to context options for the tcp:// transport. For ftps:// streams, refer to context options for the ssl:// transport.

Anterior | Principal | Próxima
HTTP and HTTPS | Acima | PHP input/output streams


PHP input/output streams

PHP 3.0.13 and up, php://output and php://input since PHP 4.3.0, php://filter since PHP 5.0.0

  • php://stdin

  • php://stdout

  • php://stderr

  • php://output

  • php://input

  • php://filter

php://stdin, php://stdout and php://stderr allow access to the corresponding input or output stream of the PHP process.

php://output allows you to write to the output buffer mechanism in the same way as print() and echo().

php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives.

php://stdin and php://input are read-only, whereas php://stdout, php://stderr and php://output are write-only.

php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opportunity to apply a filter to the stream prior the contents being read.

The php://filter target takes the following 'parameters' as parts of its 'path'.

  • /resource=<stream to be filtered> (required) This parameter must be located at the end of your php://filter specification and should point to the stream which you want filtered.

    <?php
/* This is equivalent to simply:
   readfile("http://www.example.com");
   since no filters are actually specified */

readfile("php://filter/resource=http://www.example.com");
?>

  • /read=<filter list to apply to read chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
/* This will output the contents of
   www.example.com entirely in uppercase */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* This will do the same as above
   but will also ROT13 encode it */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

  • /write=<filter list to apply to write chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
/* This will filter the string "Hello World"
   through the rot13 filter, then write to
   example.txt in the current directory */
file_set_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>

  • /<filter list to apply to both chains> (optional) Any filter lists which are not prefixed specifically by read= or write= will be applied to both the read and write chains (as appropriate).

Tabela J-6. Wrapper Summary (For php://filter, refer to summary of wrapper being filtered.)

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | php://stdin and php://input only.
Allows Writing | php://stdout, php://stderr, and php://output only.
Allows Appending | php://stdout, php://stderr, and php://output only. (Equivalent to writing)
Allows Simultaneous Reading and Writing | No. These wrappers are unidirectional.
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Anterior | Principal | Próxima
FTP and FTPS | Acima | Compression Streams


Compression Streams

zlib: PHP 4.0.4 - PHP 4.2.3 (systems with fopencookie only)

compress.zlib:// and compress.bzip2:// PHP 4.3.0 and up

  • zlib:

  • compress.zlib://

  • compress.bzip2://

zlib: works like gzopen(), except that the stream can be used with fread() and the other filesystem functions. This is deprecated as of PHP 4.3.0 due to ambiguities with filenames containing ':' characters; use compress.zlib:// instead.

compress.zlib:// and compress.bzip2:// are equivalent to gzopen() and bzopen() respectively, and operate even on systems that do not support fopencookie.

Tabela J-7. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No, use the normal file:// wrapper to stat compressed files.
Supports unlink() | No, use the normal file:// wrapper to unlink compressed files.
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Anterior | Principal | Próxima
PHP input/output streams | Acima | List of Available Filters


List of Available Filters

Manual do PHP
Anterior Próxima

Apêndice K. List of Available Filters

Índice
String Filters
Conversion Filters
Compression Filters

The following is a list of a few built-in stream filters for use with stream_filter_append(). Your version of PHP may have more filters (or fewer) than those listed here.

It is worth noting a slight asymmetry between stream_filter_append() and stream_filter_prepend(). Every PHP stream contains a small read buffer where it stores blocks of data retrieved from the filesystem or other resource in order to process data in the most efficient manner. As soon as data is pulled from the resource into the stream's internal buffer, it is immediately processed through any attached filters whether the PHP application is actually ready for the data or not. If data is sitting in the read buffer when a filter is appended, this data will be immediately processed through that buffer making the fact that is was sitting in the buffer seem transparent. However, if data is sitting in the read buffer when a filter is prepended, this data will NOT be processed through that filter. It will instead wait until the next block of data is retrieved from the resource.

For a list of filters installed in your version of PHP use stream_get_filters().

String Filters

Each of these filters does precisely what their name implies and correspond to the behavior of a built-in php string handling function. For more information on a given filter, refer to the manual page for the corresponding function.

string.rot13 (since PHP 4.3.0) Use of this filter is equivalent to processing all stream data through the str_rot13() function.

Exemplo K-1. string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs:  Guvf vf n grfg.   */
?>

string.toupper (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strtoupper() function.

Exemplo K-2. string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs:  THIS IS A TEST.   */
?>

string.tolower (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strtolower() function.

Exemplo K-3. string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs:  this is a test.   */
?>

string.strip_tags (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strip_tags() function. It accepts parameters in one of two forms: Either as a string containing a list of tags similar to the second parameter of the strip_tags() function, or as an array of tag names.

Exemplo K-4. string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */
?>

Anterior | Principal | Próxima
Compression Streams | Acima | Conversion Filters


Conversion Filters

Like the string.* filters, the convert.* filters perform actions similar to their names. The convert filters were added with PHP 5.0.0. For more information on a given filter, refer to the manual page for the corresponding function.

convert.base64-encode and convert.base64-decode Use of these filters are equivalent to processing all stream data through the base64_encode() and base64_decode() functions respectively. convert.base64-encode supports parameters given as an associative array. If line-length is given, the base64 output will be split into chunks of line-length characters each. If line-break-chars is given, each chunk will be delimited by the characters given. These parameters give the same effect as using base64_encode() with chunk_split().

Exemplo K-5. convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs:  This is a test.  */
?>

convert.quoted-printable-encode and convert.quoted-printable-decode Use of the decode version of this filter is equivalent to processing all stream data through the quoted_printable_decode() functions. There is no function equivalent to convert.quoted-printable-encode. convert.quoted-printable-encode supports parameters given as an associative array. In addition to the parameters supported by convert.base64-encode, convert.quoted-printable-encode also supports boolean arguments binary and force-encode-first. convert.base64-decode only supports the line-break-chars parameter as a type-hint for striping from the encoded payload.

Exemplo K-6. convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs:  =This is a test.=0A  */
?>

Anterior | Principal | Próxima
List of Available Filters | Acima | Compression Filters


Compression Filters

While the a seção Compression Streams Apêndice J provide a way of creating gzip and bz2 compatable files on the local filesystem, they do not provide a means for generalized compression over network streams, nor do they provide a means to begin with a non-compressed stream and transition to a compressed one. For this, a compression filter may be applied to any stream resource at any time.

Nota: Compression filters do not generate headers and trailers used by commandline utilites such as gzip. They only compress and decompress the payload portions of compressed data streams.

zlib.deflate (compression) and zlib.inflate (decompression) are implementations of the compression methods described in RFC 1951. The deflate filter takes up to three parameters passed as an associative array. level describes the compression strength to use (1-9). Higher numbers will generally yield smaller payloads at the cost of additional processing time. Two special compression levels also exist: 0 (for no compression at all), and -1 (zlib internal default -- currently 6). window is the base-2 log of the compression loopback window size. Higher values (up to 15 -- 32768 bytes) yield better compression at a cost of memory, while lower values (down to 9 -- 512 bytes) yield worse compression in a smaller memory footprint. Default window size is currently 15. memory is a scale indicating how much work memory should be allocated. Valid values range from 1 (minimal allocation) to 9 (maximum allocation). This memory allocation affects speed only and does not impact the size of the generated payload.

Nota: Because compression level is the most commonly used parameter, it may be alternatively provided as a simple integer value (rather than an array element).

Nota: The zlib.* filters are not currently built into the PHP core. To enable these filters in PHP 5, install the zlib_filter package from PECL. These filters are not available for PHP 4.

Exemplo K-7. zlib.deflate and zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* Use readfile and zlib.inflate to decompress on the fly */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

 */
?>

Exemplo K-8. zlib.deflate simple

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* Here "6" indicates compression level 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.

 */
?>

bzip2.compress and bzip2.decompress work in the same manner as the zlib filters described above. The bzip2.compress filter accepts up to two parameters given as elements of an associative array: blocks is an integer value from 1 to 9 specifying the number of 100kbyte blocks of memory to allocate for workspace. work is also an integer value ranging from 0 to 250 indicating how much effort to expend using the normal compression method before falling back on a slower, but more reliable method. Tuning this parameter effects only compression speed. Neither size of compressed output nor memory usage are changed by this setting. A work factor of 0 instructs the bzip library to use an internal default. The bzip2.decompress filter only accepts one parameter, which can be passed as either an ordinary boolean value as the small element of an associative array. small, when set to a TRUE value, instructs the bzip library to perform decompression in a minimal memory footprint at the cost of speed.

Nota: The bzip2.* filters are not currently built into the PHP core. To enable these filters in PHP 5, install the bz2_filter package from PECL. These filters are not available for PHP 4.

Exemplo K-9. bzip2.compress and bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* Generates output:

The original text is 3288 characters long.
The compressed file is 1488 bytes long.

 */
?>

Anterior | Principal | Próxima
Conversion Filters | Acima | List of Supported Socket Transports


List of Supported Socket Transports

Manual do PHP
Anterior Próxima

Apêndice L. List of Supported Socket Transports

Índice
Internet Domain: TCP, UDP, SSL, and TLS
Unix Domain: Unix and UDG

The following is a list of the various URL style socket transports that PHP has built-in for use with the streams based socket functions such as fsockopen(), and stream_socket_client(). These transports do not apply to the Sockets Extension.

For a list of transports installed in your version of PHP use stream_get_transports().

Internet Domain: TCP, UDP, SSL, and TLS

PHP 3, PHP 4. ssl:// & tls:// since PHP 4.3

Nota: If no transport is specified, tcp:// will be assumed.

  • 127.0.0.1

  • fe80::1

  • www.example.com

  • tcp://127.0.0.1

  • tcp://fe80::1

  • tcp://www.example.com

  • udp://www.example.com

  • ssl://www.example.com

  • tls://www.example.com

Internet Domain sockets expect a port number in addition to a target address. In the case of fsockopen() this is specified in a second parameter and therefore does not impact the formatting of transport URL. With stream_socket_client() and related functions as with traditional URLs however, the port number is specified as a suffix of the transport URL delimited by a colon.

  • tcp://127.0.0.1:80

  • tcp://[fe80::1]:80

  • tcp://www.example.com:80

IPv6 numeric addresses with port numbers: In the second example above, while the IPv4 and hostname examples are left untouched apart from the addition of their colon and portnumber, the IPv6 address is wrapped in square brackets: [fe80::1]. This is to distinguish between the colons used in an IPv6 address and the colon used to delimit the portnumber.

The ssl:// and tls:// transports (available only when openssl support is compiled into PHP) are extensions of the tcp:// transport which includes SSL encryption. Since PHP 4.3.0 OpenSSL support must be statically compiled into PHP, since PHP 5.0.0 it may be compiled as a module or statically.

Tabela L-1. Context options for ssl:// and tls:// transports (since PHP 4.3.2)

Name | Usage | Default
verify_peer | TRUE or FALSE. Require verification of SSL certificate used. | FALSE
allow_self_signed | TRUE or FALSE. Allow self-signed certificates. | FALSE
cafile | Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer. |
capath | If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory. |
local_cert | Path to local certificate file on filesystem. It must be a PEM encoded file which contains your certificate and private key. It can optionally contain the certificate chain of issuers. |
passphrase | Passphrase with which your local_cert file was encoded. |
CN_match | Common Name we are expecting. PHP will perform limited wildcard matching. If the Common Name does not match this, the connection attempt will fail. |

Nota: Because ssl:// is the underlying transport for the https:// and ftps:// wrappers, any context options which apply to ssl:// also apply to https:// and ftps://.

Anterior | Principal | Próxima
Compression Filters | Acima | Unix Domain: Unix and UDG


Unix Domain: Unix and UDG

unix:// since PHP 3, udg:// since PHP 5

  • unix:///tmp/mysock

  • udg:///tmp/mysock

unix:// provides access to a socket stream connection in the Unix domain. udg:// provides an alternate transport to a Unix domain socket using the user datagram protocol.

Unix domain sockets, unlike Internet domain sockets, do not expect a port number. In the case of fsockopen() the portno parameter should be set to 0.

Anterior | Principal | Próxima
List of Supported Socket Transports | Acima | PHP type comparison tables


PHP type comparison tables

Manual do PHP
Anterior Próxima

Apêndice M. PHP type comparison tables

The following tables demonstrate behaviors for PHP types and comparison operators, for both loose and strict comparisons. This supplemental is also related to the manual section on type juggling. Inspiration was provided by various user comments and by the work over at BlueShoes.

Before utilizing these tables, it's important to understand types and their meanings. For example, "42" is a string while 42 is an integer. FALSE is a boolean while "false" is a string.

Nota: HTML Forms do not pass integers, floats, or booleans; they pass strings. To find out if a string is numeric, you may use is_numeric().

Nota: Simply doing if ($x) while $x is undefined will generate an error of level E_NOTICE. Instead, consider using empty() or isset() and/or initialize your variables.

Tabela M-1. Comparisons of $x with PHP functions

Expression | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | TRUE | FALSE | TRUE | FALSE
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x is undefined | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Tabela M-2. Loose comparisons with ==

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Tabela M-3. Strict comparisons with ===

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

PHP 3.0 note: The string value "0" was considered non-empty in PHP 3, this behavior changed in PHP 4 where it's now seen as empty.

Anterior | Principal | Próxima
Unix Domain: Unix and UDG | Acima | List of Parser Tokens


List of Parser Tokens

Manual do PHP
Anterior Próxima

Apêndice N. List of Parser Tokens

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

Tabela N-1. Tokens

Token | Syntax | Reference
T_AND_EQUAL | &= | assignment operators
T_ARRAY | array() | array(), array syntax
T_ARRAY_CAST | (array) | type-casting
T_AS | as | foreach
T_BAD_CHARACTER |  | anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)
T_BOOLEAN_AND | && | logical operators
T_BOOLEAN_OR | || | logical operators
T_BOOL_CAST | (bool) or (boolean) | type-casting
T_BREAK | break | break
T_CASE | case | switch
T_CHARACTER |  |
T_CLASS | class | classes and objects
T_CLOSE_TAG | ?> or %> |
T_COMMENT | // or # | comments
T_CONCAT_EQUAL | .= | assignment operators
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" or 'bar' | string syntax
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | incrementing/decrementing operators
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | assignment operators
T_DNUMBER | 0.12, etc | floating point numbers
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | complex variable parsed syntax
T_DOUBLE_ARROW | => | array syntax
T_DOUBLE_CAST | (real), (double) or (float) | type-casting
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare, alternative syntax
T_ENDFOR | endfor | for, alternative syntax
T_ENDFOREACH | endforeach | foreach, alternative syntax
T_ENDIF | endif | if, alternative syntax
T_ENDSWITCH | endswitch | switch, alternative syntax
T_ENDWHILE | endwhile | while, alternative syntax
T_END_HEREDOC |  | heredoc syntax
T_EVAL | eval() | eval()
T_EXIT | exit or die | exit(), die()
T_EXTENDS | extends | extends, classes and objects
T_FILE | __FILE__ | constants
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function or cfunction | functions
T_GLOBAL | global | variable scope
T_IF | if | if
T_INC | ++ | incrementing/decrementing operators
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INT_CAST | (int) or (integer) | type-casting
T_ISSET | isset() | isset()
T_IS_EQUAL | == | comparison operators
T_IS_GREATER_OR_EQUAL | >= | comparison operators
T_IS_IDENTICAL | === | comparison operators
T_IS_NOT_EQUAL | != or <> | comparison operators
T_IS_NOT_IDENTICAL | !== | comparison operators
T_SMALLER_OR_EQUAL | <= | comparison operators
T_LINE | __LINE__ | constants
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc | integers
T_LOGICAL_AND | and | logical operators
T_LOGICAL_OR | or | logical operators
T_LOGICAL_XOR | xor | logical operators
T_MINUS_EQUAL | -= | assignment operators
T_ML_COMMENT | /* and */ | comments
T_MOD_EQUAL | %= | assignment operators
T_MUL_EQUAL | *= | assignment operators
T_NEW | new | classes and objects
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | type-casting
T_OBJECT_OPERATOR | -> | classes and objects
T_OLD_FUNCTION | old_function | old_function
T_OPEN_TAG | <?php, <? or <% | escaping from HTML
T_OPEN_TAG_WITH_ECHO | <?= or <%= | escaping from HTML
T_OR_EQUAL | |= | assignment operators
T_PAAMAYIM_NEKUDOTAYIM | :: | ::
T_PLUS_EQUAL | += | assignment operators
T_PRINT | print() | print()
T_REQUIRE | require() | require()
T_REQUIRE_ONCE | require_once() | require_once()
T_RETURN | return | returning values
T_SL | << | bitwise operators
T_SL_EQUAL | <<= | assignment operators
T_SR | >> | bitwise operators
T_SR_EQUAL | >>= | assignment operators
T_START_HEREDOC | <<< | heredoc syntax
T_STATIC | static | variable scope
T_STRING |  |
T_STRING_CAST | (string) | type-casting
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | (not documented; casts to NULL)
T_USE | use | (not implemented)
T_VAR | var | classes and objects
T_VARIABLE | $foo | variables
T_WHILE | while | while, do..while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | assignment operators
T_FUNC_C | __FUNCTION__ | constants, since PHP 4.3.0
T_CLASS_C | __CLASS__ | constants, since PHP 4.3.0

Anterior | Principal | Próxima
PHP type comparison tables | Acima | Sobre o manual


Sobre o manual

Manual do PHP
Anterior Próxima

Apêndice O. Sobre o manual

Índice
Formatos
Sobre as notas de usuários
Como ler a definição de função (protótipo)
Versões do PHP documentadas neste manual
Como encontrar mais informações sobre o PHP
Como ajudar a melhorar a documentação
Como nós geramos os formatos
Traduções

Formatos

O manual do PHP é fornecido em vários formatos. Esses formatos podem ser divididos em dois grupos: de leitura online e em pacotes para download.

Nota: Algumas editoras tornaram disponíveis versões impressas desse manual. Nós não podemos recomendar nenhum deles, pois eles se tornam desatualizados rapidamente.

Você pode ler o manual online em http://www.php.net/ e em numerosos mirrors. Para melhor performance, escolha o mirror localizado mais fisicamente próximo a você. Você pode visualizar o manual no formato HTML simples ou em um formato HTML que se assemelha ao próprio look and feel do site do PHP

A vantagem do manual online para a maioria dos formatos offline é a sua integração com os comentários dos usuários. A desvantagem óbvia é que você precisa estar online para ler o manual.

Existem vários formatos offline do manual, e o formato mais apropriado para você depende do seu sistema operacional de seu estilo pessoal de leitura. Para informações de como esse manual é gerado e quais são esses formatos, veja a seção 'Como nós criamos os formatos' deste apêndice.

As versões mais independentes de plataforma são o HTML e o texto simples. O formato HTML é fornecido em um único arquivo e também como um pacote de arquivos individuais para cada seção (o que resulta numa coleção de vários milhares de arquivos). Os formatos HTML e texto simples são condensados com o tar e comprimidos usando o bzip2.

Outro formato popular independente de plataforma, e que ainda fornece suporte a impressão, é o PDF (também conhecido como Adobe Acrobat). Mas antes de você baixar o manual neste formato e apertar o botão Imprimir, esteja avisado que o ele tem por volta de 2000 páginas, e está sendo constantemente revisado.

Nota: Se você ainda não tem um programa capaz de visualizar arquivos PDF, você precisará baixar o Adobe Acrobat Reader.

Para proprietários de handhelds compatíveis com o Palm, os formatos DOC e iSilo são ideias para esta plataforma. Você pode ter no seu handheld de seu uso diário um visualizador DOC ou iSilo para aumentar seu conhecimento em PHP, ou apenas como referência rápida.

Para a plataforma Windows, a versão HTML Help do manual condensa os originais no formato HTML para o uso com o HTML Help. Esse formato tem busca de textos, índice completo e marcadores. Vários ambientes de desenvolvimento populares do PHP em Windows se integram com esse formato da documentação para facilitar o acesso a documentação.

Anterior | Principal | Próxima
List of Parser Tokens | Acima | Sobre as notas de usuários


Sobre as notas de usuários

Os comentários de usuários são uma importante presença no desenvolvimento deste manual. Permitindo aos usuários do manual a contribuir com exemplos e outros esclarecimentos através de seus browsers, nós podemos incorporar esse feedback no corpo do manual. E até que as notas sejam incorporadas, os comentários podem ser visualizados na versão online e em alguns formatos offline.

Nota: As contribuições dos usuários não são moderadas antes da sua publicação online, então a qualidade desses textos e exemplos ou a veracidade e origem dessas contribuições não pode ser garantida. (Note que não há uma garantia total de qualidade ou exatidão do próprio manual.)

Nota: Para fins distribuição, as notas fornecidas por usuários são consideradas parte do manual do PHP, e por isso são cobertas pela mesma licença desta documentação (atualmente a licença OPL, Open Publication License). Para mais detalhes, veja a página de copyright do manual.

Anterior | Principal | Próxima
Sobre o manual | Acima | Como ler a definição de função (protótipo)


Como ler a definição de função (protótipo)

Cada função é documentada para referência rápida, e conhecendo como ler e entender o manual fará com que a utilização do PHP seja muito mais fácil. Mais do que simplesmente estudar exemplos ou copiar e colar, você precisa saber como ler as definições de função (protótipo). Vamos começar:

Pré-requisito: Conhecimento básico dos tipos: Mesmo sendo o PHP uma linguagem fracamente tipada, é importante ter um conhecimento básico dos tipo pois eles tem um significado importante.

Definições de função nos dizem que tipo de valor é retornado. Vamos utilizar a definição de strlen() como nosso primeiro exemplo:

strlen

(PHP 3, PHP 4 >= 4.0.0)
strlen -- Obtêm o tamanho da string

Description
int strlen ( string str )

Retorna o comprimento da string.

Tabela O-1. Detalhamento da definição da função

Parte | Descrição
strlen | Nome da função.
(PHP 3, PHP 4 >= 4.0.0) | strlen() está disponível em todos os PHP 3 e PHP 4
int | Tipo do valor que esta função retorna, que no caso é um integer (no caso, o comprimento de uma string é medida em números).
( string str ) | O primeiro (e neste caso, o único) parâmetro/argumento da função strlen() é chamado str, e é uma string.

Nos podemos reescrever a definição de função acima de maneira genérica:

tipo retornado    nome da função    ( parametro tipo   parametro tipo )

Muitas funções tem parâmetros múltiplos, como in_array(). Seu protótipo é como:

bool in_array ( mixed needle, array haystack [, bool strict])

O que isso significa? in_array() retorna um valor booleano, TRUE em caso de sucesso (se needle foi encontrado em haystack) ou FALSE em caso de falha (needle não foi encontrado em haystack). O primeiro parâmetro é chamado needle e pode de ser de vários tipos, por isso nós dizemos que ele é "mixed". Esse needle mixed (que nós estamos procurando) pode ser tanto um valor escalar (string, inteiro, ou float), ou um array. haystack (o array onde nós estamos procurando) é o segundo parâmetro. O terceiro parâmetro opcional é chamado strict. Todos os parâmetros opcionais aparecem dentro de [ colchetes ]. O manual diz que o default do parâmetro strict é o booleano FALSE. Veja a página de do manual de cada função para detalhes de como elas funcionam.

Anterior | Principal | Próxima
Sobre as notas de usuários | Acima | Versões do PHP documentadas neste manual


Versões do PHP documentadas neste manual

Esta documentação contém informações sobre o PHP 4, com alguns acréscimos sobre migração e compatibilidade com o PHP 3. Comportamentos, parâmetros, valores de retorno e outras mudanças entre diferentes versões do PHP estão documentadas em notas e no próprio corpo do manual.

Você encontrará trechos da documentação onde se referem a uma versão do PHP no CVS, que significa a mais recente versão em desenvolvimento disponível através do sistema de versões CVS. Se você não é um desenvolvedor do próprio PHP, e se você não vem utilizando a última versão em desenvolvimento do PHP, recursos marcados com "disponível no CVS" ainda não estão disponíveis para você. Esses recursos provavelmente serão liberados na próxima versão estável do PHP. Se você quiser baixar a versão CVS, veja na página acessando o CVS anonimamente.

Você também poderá encontrar documentação para versões do PHP ainda não liberadas (como por exemplo PHP 5.0.0, sendo que a última versão estável ainda é a 4.3.x). Na maioria das vezes, isto não é um erro na documentação. São explicações antecipadas para recursos ainda não disponíveis na edição atual do PHP, mas que estão previstas para essas versões do PHP.

Anterior | Principal | Próxima
Como ler a definição de função (protótipo) | Acima | Como encontrar mais informações sobre o PHP


Como encontrar mais informações sobre o PHP

Esse manual não fornece instruções sobre práticas gerais de programação. Se esse é seu primeiro contato, ou se ainda está iniciando em programação, você poderá encontrar dificuldade em aprender a programar em PHP apenas usando esse manual. Você precisa procurar textos destinados a orientar os iniciantes. Você pode encontrar uma lista de livros relacionados ao PHP em http://www.php.net/books.php.

Há também um grande número de listas de discussão ativas para todos os aspectos da programação com o PHP. Se você se deparar com um problema que por si só não consegue solucionar, você poderá obter ajuda nestas listas. Uma relação dessas listas pode ser encontrada em http://www.php.net/support.php, como também links para os arquivos dessas listas de discussão e outras fontes de suporte online. Em http://www.php.net/links.php há uma relação de sites com artigos, fóruns e galerias de código PHP.

Anterior | Principal | Próxima
Versões do PHP documentadas neste manual | Acima | Como ajudar a melhorar a documentação


Como ajudar a melhorar a documentação

Há várias maneiras de você contribuir a melhorar essa documentação.

Se você encontrar erros no manual, em qualquer língua, notifique-os utilizando o rastreamento de bugs em http://bugs.php.net/. Classifique o problema com um "Documentation Problem". Você também pode submeter problemas específicos dos formatos do manual nesse endereço.

Nota: Por favor, não abuse do rastreamento de bugs para solicitar ajuda. Use as listas de discussão ou as comunidades mencionadas anteriormente.

Você pode também contribuir com comentários, fornecendo exemplos adicionais e esclarecimentos para outros leitores. Mas não envie notificações de bugs usando o sistema de comentários. Você pode ler mais sobre os comentários na seção 'Sobre os comentários de usuários' deste apêndice.

Se você sabe Inglês e alguma outra língua, você pode ajudar com as traduções. Se você deseja iniciar uma nova tradução, ou ajudar num projeto de tradução, leia o http://cvs.php.net/co.php/phpdoc/howto/howto.html.tar.gz.

Anterior | Principal | Próxima
Como encontrar mais informações sobre o PHP | Acima | Como nós geramos os formatos


Como nós geramos os formatos

Este manual é escrito em XML, utilizando o DocBook XML DTD e usando DSSSL (Document Style and Semantics Specification Language) para formatação. Experimentalmente XSLT (Extensible Stylesheet Language Transformations) para manutenção e formatação.

Utilizando XML como meta dado nos permite gerar vários outros formatos a partir dos arquivos fonte, ao mesmo tempo que a manutenção é feita em um único lugar para todas as versões. As ferramentas utilizadas para criar as versões HTML e TeX são o Jade, escrito por James Clark, e The Modular DocBook Stylesheets, escrito por Norman Walsh. Nós utilizamos o Microsoft HTML Help Workshop para criar o formato HTML Help e, é claro, o próprio PHP para fazer algumas conversões adicionais.

Você pode obter o manual em várias línguas e formatos, incluindo texto simples, HTML, PDF, PalmPilot DOC, PalmPilot iSilo e Windows HTML Help, a partir do http://www.php.net/docs.php. Os manuais são automaticamente atualizados quando da alteração dos fontes.

Para maiores informações sobre como obter os fontes XML desta documentação, veja em http://cvs.php.net/. A documentação é guardada no módulo phpdoc.

Anterior | Principal | Próxima
Como ajudar a melhorar a documentação | Acima | Traduções


Traduções

O manual do PHP não está disponível apenas em vários formatos, mas também em várias línguas. O texto do manual é primeiramente escrito em Inglês, então um time de pessoas ao redor do mundo fazem a tradução em suas línguas natais. Se a tradução de uma função específica ou de um capítulo ainda não foi realizada, o sistema de compilação do manual utiliza a versão original em Inglês.

As pessoas envolvidas na tradução iniciam a partir dos fontes XML disponíveis em http://cvs.php.net/ e partir daí traduzem para sua lingua mãe. Eles não utilizam as versões HTML, texto ou PDF. É o sistema de compilação do manual que converte os fontes XML para formatos mais legíveis.

Nota: Se você quiser colaborar com a tradução da documentação para a sua língua, entre e contato com o time de documentação e tradução, inscrevendo-se na lista de discussão phpdoc: para isso, encaminhe um e-mail em branco para phpdoc-subscribe@lists.php.net. O endereço da lista é em phpdoc@lists.php.net. Depois, encaminhe uma mensagem mencionando seu interesse em traduzir o manual para uma língua que você receberá retorno, fornecendo ajuda para você começar a tradução para uma nova língua ou participar do time de documentação da sua língua.

Atualmente o manual está disponível, parcialmente ou não, nas seguintes línguas: Português (Brasil), Chinês (Simplificado), Chinês (cantonês de Hong Kong), Chinês (Tradicional), Checo, Holandês, Finlandês, Frances, Alemão, Hebreu, Húngaro, Italiano, Japonês, Koreano, Polonês, Romano, Russo, Slovak, Esloveno, Espanhol, Suíço e Turco.

Todos eles podem ser baixados aqui: http://www.php.net/docs.php.

Anterior | Principal | Próxima
Como nós geramos os formatos | Acima | Open Publication License


Open Publication License

Manual do PHP
Anterior Próxima

Apêndice P. Open Publication License

Índice
I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS
II. COPYRIGHT
III. SCOPE OF LICENSE
IV. REQUIREMENTS ON MODIFIED WORKS
V. GOOD-PRACTICE RECOMMENDATIONS
VI. LICENSE OPTIONS

v1.0, 8 June 1999

I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS

The Open Publication works may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference (with any options elected by the author(s) and/or publisher) is displayed in the reproduction.

Proper form for an incorporation by reference is as follows:

Copyright (c) <year> by <author's name or designee>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, vX.Y or later (the latest version is presently available at http://www.opencontent.org/openpub/

The reference must be immediately followed with any options elected by the author(s) and/or publisher of the document (see section VI). Commercial redistribution of Open Publication-licensed material is permitted. Any publication in standard (paper) book form shall require the citation of the original publisher and author. The publisher and author's names shall appear on all outer surfaces of the book. On all outer surfaces of the book the original publisher's name shall be as large as the title of the work and cited as possessive with respect to the title.

Anterior | Principal | Próxima
Traduções | Acima | II. COPYRIGHT


II. COPYRIGHT

The copyright to each Open Publication is owned by its author(s) or designee.

Anterior | Principal | Próxima
Open Publication License | Acima | III. SCOPE OF LICENSE


III. SCOPE OF LICENSE

The following license terms apply to all Open Publication works, unless otherwise explicitly stated in the document.

Mere aggregation of Open Publication works or a portion of an Open Publication work with other works or programs on the same media shall not cause this license to apply to those other works. The aggregate work shall contain a notice specifying the inclusion of the Open Publication material and appropriate copyright notice.

SEVERABILITY. If any part of this license is found to be unenforceable in any jurisdiction, the remaining portions of the license remain in force.

NO WARRANTY. Open Publication works are licensed and provided "as is" without warranty of any kind, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose or a warranty of non-infringement.

Anterior | Principal | Próxima
II. COPYRIGHT | Acima | IV. REQUIREMENTS ON MODIFIED WORKS


IV. REQUIREMENTS ON MODIFIED WORKS

All modified versions of documents covered by this license, including translations, anthologies, compilations and partial documents, must meet the following requirements:

  1. The modified version must be labeled as such.

  2. The person making the modifications must be identified and the modifications dated.

  3. Acknowledgement of the original author and publisher if applicable must be retained according to normal academic citation practices.

  4. The location of the original unmodified document must be identified.

  5. The original author's (or authors') name(s) may not be used to assert or imply endorsement of the resulting document without the original author's (or authors') permission.

Anterior | Principal | Próxima
III. SCOPE OF LICENSE | Acima | V. GOOD-PRACTICE RECOMMENDATIONS


V. GOOD-PRACTICE RECOMMENDATIONS

In addition to the requirements of this license, it is requested from and strongly recommended of redistributors that:

  1. If you are distributing Open Publication works on hardcopy or CD-ROM, you provide email notification to the authors of your intent to redistribute at least thirty days before your manuscript or media freeze, to give the authors time to provide updated documents. This notification should describe modifications, if any, made to the document.

  2. All substantive modifications (including deletions) be either clearly marked up in the document or else described in an attachment to the document.

  3. Finally, while it is not mandatory under this license, it is considered good form to offer a free copy of any hardcopy and CD-ROM expression of an Open Publication-licensed work to its author(s).

Anterior | Principal | Próxima
IV. REQUIREMENTS ON MODIFIED WORKS | Acima | VI. LICENSE OPTIONS


VI. LICENSE OPTIONS

The author(s) and/or publisher of an Open Publication-licensed document may elect certain options by appending language to the reference to or copy of the license. These options are considered part of the license instance and must be included with the license (or its incorporation by reference) in derived works.

A. To prohibit distribution of substantively modified versions without the explicit permission of the author(s). "Substantive modification" is defined as a change to the semantic content of the document, and excludes mere changes in format or typographical corrections.

To accomplish this, add the phrase `Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.' to the license reference or copy.

B. To prohibit any publication of this work or derivative works in whole or in part in standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder.

To accomplish this, add the phrase 'Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.' to the license reference or copy.

Anterior | Principal | Próxima
V. GOOD-PRACTICE RECOMMENDATIONS | Acima | Índice de funções


Índice de funções

Manual do PHP
Anterior Próxima

Apêndice Q. Índice de funções

Índice
Índice de funções

Anterior | Principal | Próxima
VI. LICENSE OPTIONS | Acima | Índice de funções


Índice de funções

A

abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_response_headers()
apache_setenv()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_uassoc()
array_fill()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()

B

base64_decode()
base64_encode()
base_convert()
basename()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()

C

cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_get()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
connection_aborted()
connection_status()
connection_timeout()
constant()
convert_cyr_string()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()

D

date()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
domattribute->name()
domattribute->specified()
domattribute->value()
domdocument->add_root [deprecated]()
domdocument->create_attribute()
domdocument->create_cdata_section()
domdocument->create_comment()
domdocument->create_element()
domdocument->create_element_ns()
domdocument->create_entity_reference()
domdocument->create_processing_instruction()
domdocument->create_text_node()
domdocument->doctype()
domdocument->document_element()
domdocument->dump_file()
domdocument->dump_mem()
domdocument->get_element_by_id()
domdocument->get_elements_by_tagname()
domdocument->html_dump_mem()
domdocument->xinclude()
domdocumenttype->entities()
domdocumenttype->internal_subset()
domdocumenttype->name()
domdocumenttype->notations()
domdocumenttype->public_id()
domdocumenttype->system_id()
domelement->get_attribute()
domelement->get_attribute_node()
domelement->get_elements_by_tagname()
domelement->has_attribute()
domelement->remove_attribute()
domelement->set_attribute()
domelement->tagname()
domnode->add_namespace()
domnode->append_child()
domnode->append_sibling()
domnode->attributes()
domnode->child_nodes()
domnode->clone_node()
domnode->dump_node()
domnode->first_child()
domnode->get_content()
domnode->has_attributes()
domnode->has_child_nodes()
domnode->insert_before()
domnode->is_blank_node()
domnode->last_child()
domnode->next_sibling()
domnode->node_name()
domnode->node_type()
domnode->node_value()
domnode->owner_document()
domnode->parent_node()
domnode->prefix()
domnode->previous_sibling()
domnode->remove_child()
domnode->replace_child()
domnode->replace_node()
domnode->set_content()
domnode->set_name()
domnode->set_namespace()
domnode->unlink_node()
domprocessinginstruction->data()
domprocessinginstruction->target()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxsltstylesheet->process()
domxsltstylesheet->result_dump_file()
domxsltstylesheet->result_dump_mem()
dotnet_load()
doubleval()

E

each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_thumbnail()
exit()
exp()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()

F

fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_change_user()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_select_db()
fbsql_set_lob_mode()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()

G

gd_info()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_sqrtrm()
gmp_strval()
gmp_sub()
gmp_xor()
gmstrftime()
gregoriantojd()
gzclose()
gzcompress()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()

H

header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
http_build_query()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchors()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommitedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()

I

ibase_add_user()
ibase_affected_rows()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_rollback()
ibase_rollback_ret()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
image2wbmp()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imageinterlace()
imageistruecolor()
imagejpeg()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepscopyfont()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_lookup_format_messages()
ircg_msg()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_whois()
is_a()
is_array()
is_bool()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_string()
is_subclass_of()
is_uploaded_file()
is_writable()
is_writeable()
isset()

J

java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
juliantojd()

K

key()
krsort()
ksort()

L

lcg_value()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
link()
linkinfo()
list()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()

M

mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_strlen()
mb_strpos()
mb_strrpos()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
mcve_adduser()
mcve_adduserarg()
mcve_bt()
mcve_checkstatus()
mcve_chkpwd()
mcve_chngpwd()
mcve_completeauthorizations()
mcve_connect()
mcve_connectionerror()
mcve_deleteresponse()
mcve_deletetrans()
mcve_deleteusersetup()
mcve_deluser()
mcve_destroyconn()
mcve_destroyengine()
mcve_disableuser()
mcve_edituser()
mcve_enableuser()
mcve_force()
mcve_getcell()
mcve_getcellbynum()
mcve_getcommadelimited()
mcve_getheader()
mcve_getuserarg()
mcve_getuserparam()
mcve_gft()
mcve_gl()
mcve_gut()
mcve_initconn()
mcve_initengine()
mcve_initusersetup()
mcve_iscommadelimited()
mcve_liststats()
mcve_listusers()
mcve_maxconntimeout()
mcve_monitor()
mcve_numcolumns()
mcve_numrows()
mcve_override()
mcve_parsecommadelimited()
mcve_ping()
mcve_preauth()
mcve_preauthcompletion()
mcve_qc()
mcve_responseparam()
mcve_return()
mcve_returncode()
mcve_returnstatus()
mcve_sale()
mcve_setblocking()
mcve_setdropfile()
mcve_setip()
mcve_setssl()
mcve_setssl_files()
mcve_settimeout()
mcve_settle()
mcve_text_avs()
mcve_text_code()
mcve_text_cv()
mcve_transactionauth()
mcve_transactionavs()
mcve_transactionbatch()
mcve_transactioncv()
mcve_transactionid()
mcve_transactionitem()
mcve_transactionssent()
mcve_transactiontext()
mcve_transinqueue()
mcve_transnew()
mcve_transparam()
mcve_transsend()
mcve_ub()
mcve_uwait()
mcve_verifyconnection()
mcve_verifysslcert()
mcve_void()
md5()
md5_file()
mdecrypt_generic()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_setcubicthreshold()
ming_setscale()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_getdata()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_setdata()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_dbname()
msql_drop_db()
msql_dropdb()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_seek()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_freeresult()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_listdbs()
msql_listfields()
msql_listtables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_selectdb()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_client_info()
mysqli_get_host_info()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_prepare_result()
mysqli_profiler()
mysqli_query()
mysqli_read_query_result()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_reload()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_slave_query()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt_affected_rows()
mysqli_stmt_close()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()

N

natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()

O

ob_clean()
ob_end_clean()
ob_end_flush()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_list_handlers()
ob_start()
ob_tidyhandler()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()

P

pack()
parse_ini_file()
parse_str()
parse_url()
passthru()
pathinfo()
pattern modifiers()
pattern syntax()
pclose()
pcntl_exec()
pcntl_fork()
pcntl_signal()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_page()
pdf_begin_pattern()
pdf_begin_template()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_curveto()
pdf_delete()
pdf_end_page()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_stroke()
pdf_findfont()
pdf_get_buffer()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_initgraphics()
pdf_lineto()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_png()
pdf_open_tiff()
pdf_place_image()
pdf_place_pdi_page()
pdf_rect()
pdf_restore()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_font()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_translate()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_fetch_all()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_type()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_pconnect()
pg_ping()
pg_port()
pg_put_line()
pg_query()
pg_result_error()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_query()
pg_set_client_encoding()
pg_trace()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
php_ini_scanned_files()
php_logo_guid()
php_sapi_name()
php_uname()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()

Q

qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()

R

rad2deg()
rand()
range()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_read_history()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
register_shutdown_function()
register_tick_function()
rename()
reset()
restore_error_handler()
restore_include_path()
rewind()
rewinddir()
rmdir()
round()
rsort()
rtrim()

S

scandir()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
simplexml_element->asxml()
simplexml_element->attributes()
simplexml_element->children()
simplexml_element->xpath()
simplexml_load_dom()
simplexml_load_file()
simplexml_load_string()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_set_quick_print()
snmpget()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_iovec_add()
socket_iovec_alloc()
socket_iovec_delete()
socket_iovec_fetch()
socket_iovec_free()
socket_iovec_set()
socket_last_error()
socket_listen()
socket_read()
socket_readv()
socket_recv()
socket_recvfrom()
socket_recvmsg()
socket_select()
socket_send()
socket_sendmsg()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
socket_writev()
sort()
soundex()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_fetch_array()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqrt()
srand()
sscanf()
stat()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_context_create()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_get_name()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_wrapper_register()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpos()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
swfbitmap()
swfbitmap->getheight()
swfbitmap->getwidth()
swfbutton()
swfbutton->addaction()
swfbutton->addshape()
swfbutton->setaction()
swfbutton->setdown()
swfbutton->sethit()
swfbutton->setover()
swfbutton->setup()
swfbutton_keypress()
swfdisplayitem()
swfdisplayitem->addcolor()
swfdisplayitem->move()
swfdisplayitem->moveto()
swfdisplayitem->multcolor()
swfdisplayitem->remove()
swfdisplayitem->rotate()
swfdisplayitem->rotateto()
swfdisplayitem->scale()
swfdisplayitem->scaleto()
swfdisplayitem->setdepth()
swfdisplayitem->setname()
swfdisplayitem->setratio()
swfdisplayitem->skewx()
swfdisplayitem->skewxto()
swfdisplayitem->skewy()
swfdisplayitem->skewyto()
swffill()
swffill->moveto()
swffill->rotateto()
swffill->scaleto()
swffill->skewxto()
swffill->skewyto()
swffont()
swffont->getwidth()
swfgradient()
swfgradient->addentry()
swfmorph()
swfmorph->getshape1()
swfmorph->getshape2()
swfmovie()
swfmovie->add()
swfmovie->nextframe()
swfmovie->output()
swfmovie->remove()
swfmovie->save()
swfmovie->setbackground()
swfmovie->setdimension()
swfmovie->setframes()
swfmovie->setrate()
swfmovie->streammp3()
swfshape()
swfshape->addfill()
swfshape->drawcurve()
swfshape->drawcurveto()
swfshape->drawline()
swfshape->drawlineto()
swfshape->movepen()
swfshape->movepento()
swfshape->setleftfill()
swfshape->setline()
swfshape->setrightfill()
swfsprite()
swfsprite->add()
swfsprite->nextframe()
swfsprite->remove()
swfsprite->setframes()
swftext()
swftext->addstring()
swftext->getwidth()
swftext->moveto()
swftext->setcolor()
swftext->setfont()
swftext->setheight()
swftext->setspacing()
swftextfield()
swftextfield->addstring()
swftextfield->align()
swftextfield->setbounds()
swftextfield->setcolor()
swftextfield->setfont()
swftextfield->setheight()
swftextfield->setindentation()
swftextfield->setleftmargin()
swftextfield->setlinespacing()
swftextfield->setmargins()
swftextfield->setname()
swftextfield->setrightmargin()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
syslog()
system()

T

tan()
tanh()
tempnam()
textdomain()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_load_config()
tidy_node->attributes()
tidy_node->children()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->has_children()
tidy_node->has_siblings()
tidy_node->is_asp()
tidy_node->is_comment()
tidy_node->is_html()
tidy_node->is_jsp()
tidy_node->is_jste()
tidy_node->is_text()
tidy_node->is_xhtml()
tidy_node->is_xml()
tidy_node->next()
tidy_node->prev()
tidy_node->tidy_node()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
time()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()

U

uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()

V

var_dump()
var_export()
variant()
version_compare()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()

W

w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wordwrap()

X

xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xptr_eval()
xptr_new_context()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()

Y

yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()

Z

zend_logo_guid()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
zlib_get_coding_type()

Anterior | Principal | Próxima
Índice de funções | Acima | (Identificadores não encontrados na compilação do manual)


(Identificadores não encontrados na compilação do manual)

Manual do PHP
Anterior Próxima

Apêndice R. (Identificadores não encontrados na compilação do manual)

Anterior | Principal | Próxima
Índice de funções | Acima | HTML Help Edition


Manual do PHP

Copyright

Copyright © 1997 - 2004 para o PHP Documentation Group. Este material pode ser distribuído apenas sob os termos e condições determinadas pela Open Publication Licence, versão 1.0 ou posteriores (a última versão encontra-se disponível em http://www.opencontent.org/openpub/).

A distribuição de versões substancialmente modificadas deste documento é proíbida sem a permissão explícita dos responsáveis pelo copyright.

A distribuição do trabalho ou de um trabalho derivado em qualquer formato comum de livro (papel) é proibida sem a permissão que pode ser obtida dos responsáveis pelo copyright.

Os membros do PHP Documentation Group estão listados na página de frente deste manual. Caso você precise contatar o grupo, escreva para phpdoc@lists.php.net.

A seção 'Extendendo PHP 4.0' deste manual tem copyright © 2000 para Zend Technologies, Ltd. Este material pode ser distribuído somente sob os termos e condições descritas na Open Publication License v1.0 ou posterior (a versão mais recente está disponível em http://www.opencontent.org/openpub/).

Uma cópia da Open Publication License é distribuída com esse manual.

Principal


About This Edition

Manual do PHP
Anterior Próxima

Capítulo 57. About This Edition

The Windows HTML Help Edition of the PHP Manual is aimed at developers, who want the manual at hand every time, and would like to read manual pages and user notes without waiting for a remote webpage to download. This edition gives you the full content of the manual plus the user notes, with some great features provided by the viewer application by the scripts we use to generate this format and by other contributors in the form of skins.

This distribution of the PHP Manual contains many files, including the main manual file php_manual_en.chm. You can view the manual by double clicking on this file (as you already guessed). The user notes are in php_manual_notes.chm. You only need to have one copy of this file on your computer, regardless of how many languages you use to read the PHP Manual. The only requirement is that you need to have all php_manual_LANG.chm files in one directory with php_manual_notes.chm. You may also see a php_manual_en.chw file in the directory, it's generated the first time you use the index tab, and it contains an index with the manual's pages.

For those interested in technical details about Microsoft HTML Help, http://www.helpware.net/ is a great resource. For more information and positioning of Windows HTML Help in the Microsoft help formats and services history, see this WinWriters article.

Anterior | Principal | Próxima
HTML Help Edition | Acima | Using PHP Manual CHM Edition


CHM Edition Credits

Manual do PHP
Anterior

Capítulo 63. CHM Edition Credits

This enhanced version of the PHP Manual would never come to existence, if the following people would not help with their contribution to the project (in no particular order):

  • Holger Eggert, who created the two default designs, and provided many useability tips

  • Gonzalo De la Pena Andreu, who added many comments on how it would be ideal to provide the skinnable interface

  • Olexandr Vynnychenko added countless comments and testing all the time

  • Brendan Ferguson, who provided many optimizations, improvements to the HTML and JS codes behind the manual pages

  • Sandor Hojtsy, who coded the manual preferences desktop application

  • And at last but not least, everybody, who provided feedback through our mailing list, and in the user survey

Anterior | Principal
CSS classes | Acima


Integrating the PHP Manual

Manual do PHP
Anterior Próxima

Capítulo 61. Integrating the PHP Manual

Nota: The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Nota: All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp.

Anterior | Principal | Próxima
Presentational Specialities | Acima | Skin development


The Full Text Search

Manual do PHP
Anterior Próxima

Capítulo 59. The Full Text Search

Índice
General searching rules
Searching for words or phrases
Defining search terms
Using nested expressions when searching
Manual Content and User Note Separation

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.

  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.

  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.

  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Nota: If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."

Anterior | Principal | Próxima
Keyboard Shortcuts | Acima | Searching for words or phrases


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.

  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".

  • You cannot nest expressions more than five levels deep.

Anterior | Principal | Próxima
Defining search terms | Acima | Manual Content and User Note Separation


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.

  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.

  • You can bookmark manual pages with notes, or just a notes part of a page separately.

  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Anterior | Principal | Próxima
Using nested expressions when searching | Acima | Specialities of this Edition


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Tabela 59-2. Search operators

Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Nota: The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.

Anterior | Principal | Próxima
Searching for words or phrases | Acima | Using nested expressions when searching


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Tabela 59-1. Word and phrase searches

Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase "new operator" or new operator

Topics that contain the literal phrase "new operator" and all its grammatical variations.

Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.

Wildcard expressions esc* or HT??

Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term.

Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Nota: Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".

Anterior | Principal | Próxima
The Full Text Search | Acima | Defining search terms


Skin development

Manual do PHP
Anterior Próxima

Capítulo 62. Skin development

Índice
Page Display Process
Page Elements
CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybodies needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Atenção

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.

  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.

  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.

  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.

  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...

  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Anterior | Principal | Próxima
Integrating the PHP Manual | Acima | Page Elements


CSS classes

We cannot provide accurate documentation currently on useable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Anterior | Principal | Próxima
Page Elements | Acima | CHM Edition Credits


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.

  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.

  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).

  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).

  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Anterior | Principal | Próxima
Skin development | Acima | CSS classes


Specialities of this Edition

Manual do PHP
Anterior Próxima

Capítulo 60. Specialities of this Edition

Índice
User Preferences
Presentational Specialities

The Windows HTML Help Edition of the PHP Manual overperforms the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Tabela 60-1. Context menu items

Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.
Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Anterior | Principal | Próxima
Manual Content and User Note Separation | Acima | Presentational Specialities


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

Anterior | Principal | Próxima
Specialities of this Edition | Acima | Integrating the PHP Manual


Using PHP Manual CHM Edition

Manual do PHP
Anterior Próxima

Capítulo 58. Using PHP Manual CHM Edition

Índice
The HTML Help Toolbar
The Navigation Pane
Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.

  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).

  • Back - Goes back in the history.

  • Forward - Goes forward in the history.

  • Refresh - Reloads the current page.

  • Home - Opens the startup page of the CHM.

  • Print - Opens the print dialog box.

  • Options - Provides a dropdown with more options.

Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

Anterior | Principal | Próxima
About This Edition | Acima | The Navigation Pane


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

Tabela 58-1. General Help Viewer Shortcuts

To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu [see the User Preferences section] | SHIFT+F10

Tabela 58-2. Contents Tab Shortcuts

To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER

Tabela 58-3. Index Tab Shortcuts

To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D

Tabela 58-4. Search Tab shortcuts

To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R

Tabela 58-5. Favorites Tab Shortcuts

To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R

Tabela 58-6. Topic Pane Shortcuts

To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

Anterior | Principal | Próxima
The Navigation Pane | Acima | The Full Text Search


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).

  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.

  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.

  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

Anterior | Principal | Próxima
Using PHP Manual CHM Edition | Acima | Keyboard Shortcuts


HTML Help Edition

Manual do PHP
Anterior Próxima

X. HTML Help Edition

Índice
57. About This Edition
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Anterior | Principal | Próxima
(Identificadores não encontrados na compilação do manual) |  | About This Edition


break

break cancela a execução do comando for, foreach while, do..while ou switch atual.

break aceita um argumento numérico opcional que diz a ele quantas estruturas aninhadas englobadas devem ser quebradas.

<?php
$arr = array('um', 'dois', 'três', 'quatro', 'PARE', 'cinco');
while (list (, $val) = each ($arr)) {
    if ($val == 'PARE') {
        break;    /* Você poderia colocar 'break 1;' aqui. */
    }
    echo "$val<br />\n";
}

/* Utilizando o argumento opcional. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "No 5<br />\n";
        break 1;  /* Sai somente do switch. */
    case 10:
        echo "No 10; saindo<br />\n";
        break 2;  /* Sai do switch e while. */
    default:
        break;
    }
}
?>

Anterior | Principal | Próxima
foreach | Acima | continue


continue

continue é usado dentro de estruturas de loops para saltar o resto da iteração do loop atual e continuar a execução no início da próxima iteração.

Nota: Note que no PHP a instrução switch é considerada uma estrutura de loop quando relacionada ao comando continue.

continue aceita um argumento numérico opcional que diz a ele de quantos níveis de loops aninhados ele deve saltar até o fim.

<?php
while (list ($key, $value) = each ($arr)) {
    if (!($key % 2)) { // pula itens pares
        continue;
    }
    do_something_odd ($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Fora<br />\n";
    while (1) {
        echo "&nbsp;&nbsp;Meio<br />\n";
        while (1) {
            echo "&nbsp;&nbsp;Dentro<br />\n";
            continue 3;
        }
        echo "Isto nunca será exibido.<br />\n";
    }
    echo "Nem isso.<br />\n";
}
?>

Omitindo o ponto e vírgula depois do continue pode resultar em confusão. Este é um exemplo do que você não deve fazer.

<?php
  for ($i = 0; $i < 5; ++$i) {
      if ($i == 2)
          continue
      print "$i\n";
  }
?>

Um resultado esperado poderia ser:

0
1
3
4

mas esse script somente exibirá:

2

porque o valor de retorno da chamada a print() é int(1), e então ele se parecerá como o argumento numérico opcional mencionado acima.

Anterior | Principal | Próxima
break | Acima | switch


declare

O construtor declare é utilizado para configurar diretivas de execução para blocos de código. A sintaxe do declare é similar a sintaxe de outros construtores de controle.

declare (diretiva) instrucao

A seção diretiva permite o comportamento do bloco declare a ser configurado. Atualmente somente uma diretiva é reconhecida: a diretiva ticks. (veja abaixo para maiores informações em diretiva ticks)

A parte instrucao do bloco declare será executada. Como ela é executada e que efeitos colaterais que podem ocorrem durante a execução dependem da configuração diretiva.

O construtor declare também pode ser utilizado no escopo global, afetando todo o código que se seguir.

<?php
// isso eh o mesmo:

// voce pode fazer isso:
declare(ticks=1) {
    // script inteiro aqui
}

// ou pode fazer isto:
declare(ticks=1);
// sctipt inteiro aqui
?>

Ticks

Um tick é um evento que ocorre para cada N níveis de instruções executados pelo interpretador com o bloco declare. O valor para N é especificado utilizando ticks=N nos blocos declare das seções diretiva.

O(s) evento(s) que ocorre(m) em cada tick são especificados utilizando register_tick_function(). Veja o exemplo abaixo para maiores detalhes. Note que mais de um evento pode ocorrer em cada tick.

Exemplo 11-1. Histórico de um trecho de código PHP

<?php
// Uma função que grava o tempo entre as chamadas
function profile ($dump = FALSE)
{
    static $profile;

    // Retorna os tempos preservados no histórico, então apaga
    if ($dump) {
        $temp = $profile;
        unset ($profile);
        return ($temp);
    }

    $profile[] = microtime ();
}

// Ativa o manipulador do tick
register_tick_function("profile");

// Inicializa a função antes de declarar o bloco
profile();

// Roda um trecho de código, disparando um tick a cada duas instruções
declare(ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br />;";
    }
}

// Mostra os dados guardados no histórico
print_r(profile (TRUE));
?>
No exemplo acima, o bloco 'declare' grava os tempos a cada segundo nível dentro das instruções no bloco enquanto executam. Esta informação pode ser utilizada para encontrar áreas lentas em segmentos particulares de código. Este processo pode ser realizado de outras formas, mas a utilização de ticks é mais conveniente e fácil de implementar.

Ticks são idealizados para debug, implementação de multitask simples, processos de I/O em background e afins.

Veja também: register_tick_function() e unregister_tick_function().

Anterior | Principal | Próxima
switch | Acima | return


do..while

Loops do..while são bem similares aos loops while, exceto pelo fato de que a condição é verificada no fim de cada iteração em vez de no começo. A diferença principal dos loops while regulares é que a primeira iteração de um loop do..while é garantidamente executada (a condição só é verificada no fim da iteração) enquanto que ele pode não rodar necessariamente em um loop while normal (a condição é verificada no começo de cada iteração, se ela é avaliada como FALSE logo no começo, a execução do loop terminaria imediatamente).

Há apenas uma sintaxe para loops do..while:

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

O loop acima rodaria exatamente uma vez, desde que depois da primeira iteração, quando a condição é verificada, ela é avaliada como FALSE ($i não é maior que zero 0) e a execução do loop termina.

Usuários avançados de C podem estar familiarizados com o uso diferenciado do loop do..while, para permitir o fim da execução no meio dos blocos de código, englobando-os com do..while (0), e usando a instrução break . O fragmento de código a seguir demonstra isso:

<?php
do {
    if ($i < 5) {
        echo "i não é grande o suficiente";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i está Ok";

    /* process i */

} while (0);
?>

Não se preocupe se você não entendeu isto da forma certa ou de jeito nenhum. Você pode codificar scripts simples ou mesmo poderosos sem usar esse 'recurso'.

Anterior | Principal | Próxima
while | Acima | for


else

Freqüentemente você vai querer executar uma instrução se uma certa condição for encontrada, e uma instrução diferente se a condição não for encontrada. Isto é o que o else faz. else estende um comando if para executar uma instrução caso a expressão no comando if seja avaliada como FALSE. Por exemplo, o código a seguir mostraria a é maior que b se $a for maior que $b, e a NÃO é maior que b caso contrário:

<?php
if ($a > $b) {
    echo "a é maior que b";
} else {
    echo "a NÃO é maior que b";
}
?>

O comando else só é executado se a expressão if for avaliada como FALSE, e se havendo qualquer expressão elseif, somente se todas elas forem avaliadas como FALSE também (veja elseif).

Anterior | Principal | Próxima
Estruturas de Controle | Acima | elseif


elseif

elseif, como seu nome sugere, é uma combinação de if e else. Da mesma forma que o else, ele estende um comando if para executar uma instrução diferente no caso de a expressão if original ser avaliada como FALSE. Porém, ao contrário de else, ele executará aquela expressão alternativa somente se a expressão condicional do elseif for avaliada como TRUE. Por exemplo, o código a seguir mostraria a é maior que b, a é igual a b ou a é menor que b:

<?php
if ($a > $b) {
    echo "a é maior que b";
} elseif ($a == $b) {
    echo "a é igual a b";
} else {
    echo "a é menor que b b";
}
?>

Podem haver vários elseifs dentro da mesma instrução if. A primeira expressão elseif (se houver) que for avaliada como TRUE será executada. No PHP, você também pode escrever 'else if' (em duas palavras) e o comportamento será idêntico a um 'elseif' (em uma só palavra). O significado sintático é ligeiramente diferente (se você está familiarizado com C, eles tem o mesmo comportamento), mas no final de contas ambos teriam exatamente o mesmo comportamento.

O comando elseif só é executado se a expressão if precedente e quaisquer expressões elseif anteriores forem avaliadas como FALSE, e a expressão elseif atual for avaliada como TRUE.

Anterior | Principal | Próxima
else | Acima | Sintaxe alternativa para estruturas de controle


for

Loops for são os laços mais complexos em PHP. Eles se comportam como os seus compatíveis em C. A sintaxe de um loop for é:

for (expr1; expr2; expr3) instrucoes

A primeira expressão (expr1) é avaliada (executada) uma vez incondicionalmente no começo do loop.

No começo de cada iteração, expr2 é avaliada. Se ela é avaliada como TRUE, o loop continua e o(s) comando(s) aninhado(s) é(são) executado(s). Se é avaliada como FALSE, a execução do 'loop' termina.

No fim de cada iteração, expr3 é avaliada (executada).

Cada uma das expressões pode ser vazia. expr2 vazia significa que o loop pode rodar indefinidamente (PHP considera-a implicitamente como TRUE, como em C). Isto pode não ser tão inútil quanto você pode pensar, pois freqüentemente você pode querer terminar o 'loop' usando uma instrução break condicional em vez de usar a expressão-verdade do for.

Considere os seguintes exemplos. Todos eles mostram números de 1 a 10:

<?php
/* exemplo 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* exemplo 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* exemplo 3 */

$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* exemplo 4 */

for ($i = 1; $i <= 10; echo $i, $i++);
?>

Obviamente, o primeiro exemplo parece ser o mais bonito (ou talvez o quarto), mas você pode perceber que a possível utilização de expressões vazias em laços for se torna prático em algumas ocasiões.

O PHP também suporta a "sintaxe de dois-pontos" alternativa para laços for:

for (expr1; expr2; expr3): instrucoes; ...; endfor;

Outras linguagens têm uma instrução foreach para varrer uma matriz ou tabela de hashing. O PHP 3 não tem uma construção deste tipo; O PHP 4 possui (veja foreach). No PHP 3, você pode combinar while com as funções list() e each() para obter o mesmo efeito. Veja a documentação para estas funções para exemplos.

Anterior | Principal | Próxima
do..while | Acima | foreach


foreach

O PHP4 (mas não o PHP3) inclui um construtor foreach, muito parecido com o PERL e outras linguagens. Isto oferece uma maneira fácil de iterar sobre matrizes. foreach funciona somente com arrays, e lançará um erro se tentar utilizá-lo em uma variável de qualquer tipo diferente ou em variáveis não inicializadas. Há duas sintaxes; a segunda é uma abreviatura, mas bem útil do que primeira:

foreach (expressao_array as $valor) instrucoes
foreach (expressao_array as $chave => $valor) instrucoes

A primeira forma varre uma dada matriz dada por expressao_array. Em cada 'loop', o valor do elemento corrente é atribuído a $valor e o ponteiro interno da matriz é avançado em uma posição (assim, no próxima iteração você estará olhando para o próximo elemento).

A segunda forma faz a mesma coisa, exceto pelo fato de que a chave do elemento atual será atribuído à variável $chave em cada iteração.

Nota: Quando o foreach inicia sua primeira execução, o ponteiro interno da matriz é zerado automaticamente para o primeiro elemento do array. Isto significa que você não precisa chamar reset() antes de um loop foreach .

Nota: Note também que foreach opera sobre uma cópia do array especificado, não o próprio array, e portanto, o ponteiro do array original não é modificado como na instrução each(), que altera o elemento do array selecionado, mas isso não se reflete o array original. Entretanto, o ponteiro interno do array original é movimentado pelo processamento do array. Assumindo que o laço foreach rode até o fim, o ponteiro interno do array estará posicionado no fim do array.

Nota: foreach tem a habilidade de evitar mensagens de erro com '@'.

Você pode ter notado que os seguintes itens são funcionalmente idênticos:

<?php
$arr = array("um", "dois", "três");
reset ($arr);
while (list(, $value) = each ($arr)) {
    echo "Valor: $value<br />\n";
}

foreach ($arr as $value) {
    echo "Valor: $value<br />\n";
}
?>

Os seguintes também são funcionalmente idênticos:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each ($arr)) {
    echo "Chave: $key; Valor: $value<br />\n";
}

foreach ($arr as $key => $value) {
    echo "Chave: $key; Valor: $value<br />\n";
}
?>

Mais alguns exemplos para demonstrar os usos:

<?php
/* exemplo foreach 1: somente valores */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
   echo "Valor atual de \$a: $v.\n";
}

/* exemplo foreach 2: valores (com as chaves impressas para ilustração) */

$a = array(1, 2, 3, 17);

$i = 0; /* para exemplo somente */

foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* exemplo foreach 3: chaves e valores */

$a = array (
    "um" => 1,
    "dois" => 2,
    "três" => 3,
    "dezessete" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* exemplo foreach 4: arrays multidimensionais */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* exemplo foreach 5: arrays dinâmicos */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Anterior | Principal | Próxima
for | Acima | break


switch

A instrução switch é similar a uma série de instruções IFs seguidas. Em muitas ocasiões, você poderá ter que comparar a mesma variável (ou expressão) com muitos valores diferentes, executando códigos diferentes dependendo com qual valor ele se encaixar. É exatamente para isso que a instrução switch faz.

Nota: Note que diferentemente de outras linguagens, a instrução continue se aplica a switch e age similarmente a um break. Se você tem um switch dentro de um loop e deseja continuar para a próxima iteração do loop, use continue 2.

Os exemplos seguintes mostram duas maneiras diferentes de escrever a mesma coisa, uma utilizando uma série de iss e elseifs e a outra utlizando a instrução switch:

<?php
if ($i == 0) {
    echo "i igual a 0";
} elseif ($i == 1) {
    echo "i igual a 1";
} elseif ($i == 2) {
    echo "i igual a 2";
}

switch ($i) {
    case 0:
        echo "i igual a 0";
        break;
    case 1:
        echo "i igual a 1";
        break;
    case 2:
        echo "i igual a 2";
        break;
}
?>

É importante entender como a instrução switch funciona para evitar enganos. A instrução switch executa linha a linha (atualmente, instrução a instrução). No início, nenhum código é executado. Somente quando uma instrução case é encontrada com um valor que combina com a expressão do switch faz com que o PHP execute as instruções a partir daí. O PHP continua executando as instruções até o fim do bloco switch ou na primeira vez que encontrar uma instrução break. Se você não escrever uma instrução break no fim das instruções case, o PHP continuará executando os cases seguintes. Exemplo:

<?php
switch ($i) {
    case 0:
        echo "i igual a 0";
    case 1:
        echo "i igual a 1";
    case 2:
        echo "i igual a 2";
}
?>

Aqui, se $i é igual a zero, o PHP executará todas as instruções echo! Se $i é igual a 1, o PHP executará os últimas duas instruções echo, e somente se $i for igual a 2, você terá o comportamento 'esperado' apenas onde 'i igual a 2' será mostrado. Então é importante não se esquecer das instruções break (e as vezes não colocá-las para obter esse resultado em certas circunstâncias).

Em uma instrução switch, a condição somente será avaliada e resultado comparado para cada instrução case. Em uma instrução elseif, a condição é avaliada novamente. Se sua condição é mais complicada que um simples comparação e/ou e dentro de um loop, um switch é mais rápido.

Um case pode não ter nenhuma instrução dentro, o que simplesmente passa o controle para o próximo case.

<?php
switch ($i) {
    case 0:
    case 1:
    case 2:
        echo "i é menor que 3 mas não negativo";
        break;
    case 3:
        echo "i é 3";
}
?>

Um case especial é o default. Esse case é executado quando nenhum outro case combina. Ele precisa ser a última instrução case. Por exemplo:

<?php
switch ($i) {
    case 0:
        echo "i igual a 0";
        break;
    case 1:
        echo "i igual a 1";
        break;
    case 2:
        echo "i igual a 2";
        break;
    default:
        echo "i não é igual a 0, 1 ou 2";
}
?>

A expressão avaliada pelo case precisa ser um tipo simples, ou seja, inteiros, números de ponto flutuante e strings. Arrays ou objetos não podem ser utilizados a não ser que eles impliquem num tipo simples.

A sintaxe alternativa para estruturas de controle é suportada para os switches. Para maiores informações, veja Sintaxe alternativa para estruturas de controle.

<?php
switch ($i):
    case 0:
        echo "i igual a 0";
        break;
    case 1:
        echo "i igual a 1";
        break;
    case 2:
        echo "i igual a 2";
        break;
    default:
        echo "i não é igual a 0, 1 ou 2";
endswitch;
?>

Anterior | Principal | Próxima
continue | Acima | declare


while

Loops while são o tipo mais simples de criar um 'loop' em PHP. Eles se comportam como seus compatíveis em C. O formato básico de um comando while é:

while (expressao) instrucoes

O significado de um comando while é simples. Ele pede que o PHP execute os comandos aninhados repetidamente, enquanto a expressão do while é avaliada como TRUE. O valor da expressão é verificada cada vez que se passa no começo do 'loop', desta forma, mesmo que este valor mude durante a execução do(s) comando(s) aninhado(s), a execução não parará até que o fim da iteração (cada vez que o PHP executa os comandos dentro do 'loop' é uma iteração). Às vezes, se a expressão while é avaliada como FALSE logo no início, o(s) comando(s) aninhado(s) não será(ão) rodado(s) nem uma vez sequer.

Como no comando if, você pode agrupar múltiplos comandos dentro do mesmo laço while englobando um grupo de instruções com chaves, ou usando a sintaxe alternativa:

while (expressao): instrucoes ... endwhile;

Os exemplos a seguir são idênticos, e ambos imprimem números de 1 to 10:

<?php
/* exemplo 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* o valor impresso será
                   $i depois do acréscimo
                   (post-increment) */
}

/* exemplo 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>

Anterior | Principal | Próxima
Sintaxe alternativa para estruturas de controle | Acima | do..while


include

Manual do PHP
Anterior Capítulo 11. Estruturas de Controle Próxima

include()

A instrução include() inclui e avalia o arquivo informado.

A documentação a seguir se aplica também a require(). Esses dois construtores são idênticos a exceção de como eles manipulam erros. include() produz um Warning enquanto require() produzirá um Fatal Error. Em outras palavras, utilize require() se você deseja que um arquivo faltando interrompa o processamento da página. include() não se comporta da mesma maneira, permitindo que o script continue nessas situações. Em todo caso, vale a pena confirmar a configuração da diretiva include_path. Esteja avisado que um erro de interpretação no arquivo incluído não causa o cancelamento do processamento.

Arquivos a incluir são procurados primeiramente no include_path relativo ao diretório atual de trabalho e depois no include_path relativo ao diretório atual do script. Por exemplo, se seu incluide_path é ., o diretório atual é /www/, se você incluiu include/a.php e há um b.php nesse arquivo, b.php será procurado primeiro em /www/ e somente depois em /www/include/.

Quando um arquivo é incluído, seu código entra no escopo de variável da linha onde a inclusão ocorre. Qualquer variável disponível da linha onde a chamada da inclusão ocorre estará disponível para o arquivo incluído, daquele ponto em diante.

Exemplo 11-3. Exemplos de include()s simples

variaveis.php
<?php

$cor = 'verde';
$fruta = 'maçã';

?>

teste.php
<?php

echo "Uma $fruta $cor"; // Uma

include 'vars.php';

echo "Uma $fruta $cor"; // Uma maçã verde

?>

Se o include ocorre dentro de uma função do arquivo principal, então todo o código incluído será executado como se ele tivesse sido definido dentro daquela função. Da mesma forma, ele seguirá o escopo de variáveis da função.

Exemplo 11-4. Incluindo dentro de funções

<?php

function foo()
{
    global $cor;

    include 'variaveis.php';

    echo "Uma $fruta $cor";
}

/* variaveis.php está no escopo de foo(),   *
.* então $fruta NÃO está disponível fora de *
.* seu escopo. $cor estará porque ela foi   *
.* declarada como global                    */

foo();                    // Uma maçã verde
echo "A $fruta $cor";   // Uma maçã

?>

Quando um arquivo é incluído, o interpretador sai do modo PHP e entra no modo HTML (no começo do arquivo incluído), e alterna novamente no seu fim. Por isso, qualquer código dentro do arquivo incluído que precisa ser executado como código PHP tem de ser delimitado por tags válidas de abertura e fechamento.

Se "URL fopen wrappers" estão ativas no PHP (normalmente na configuração default), você pode especificar um arquivo utilizando uma URL (via HTTP ou qualquer outro wrapper suportado --- veja Apêndice J para uma lista dos protocolos) em vez de uma caminho local. Se o servidor apontado interpreta o arquivo informado como código PHP, variáveis podem ser passadas ao arquivo incluído na URL de requisição como num HTTP GET. Isto não é necessariamente a mesma coisa que incluir o arquivo e compartilhar o escopo de variável do arquivo principal: o script será executado no servidor remoto e apenas seu resultado será incluído no script local.

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Exemplo 11-5. include() através de HTTP

<?php

/* Este exemplo assume que www.exemplo.com está configurado para interpretar
 * arquivos .php mas não .txt. Além, 'Funciona' aqui significa que as
 * variáveis $foo e $bar estão disponíveis no arquivo incluído */

// Não funciona: arquivos txt não são manipulados em www.example.com como PHP
include 'http://www.exemplo.com/arquivo.txt?foo=1&bar=2';

// Não funciona: procura por um arquivo chamado 'arquivo.php?foo=1&bar=2' no
// sistemas de arquivo local.
include 'arquivo.php?foo=1&bar=2';

// Funciona.
include 'http://www.exemplo.com/arquivo.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'arquivo.txt';  // Funciona.
include 'arquivo.php';  // Funciona.

?>
Vaja também: Arquivos Remotos, fopen() e file() para informações relacionadas.

Por serem include() e require() dois construtores de linguagem especiais, você precisa delimitá-los como um bloco de instruções quando utilizados dentro de instruções condicionais.

Exemplo 11-6. include() e instruções condicionais

<?php

// Isto está errado e não funcionará como desejado
if ($condition)
    include $arquivo;
else
    include $outro;

// E este está correto
if ($condition) {
    include $arquivo;
} else {
    include $outro;
}

?>

Também é possível executar uma instrução return() dentro de um arquivo incluído de maneira a finalizar o processamento daquele arquivo e retornar para o script que o chamou. Também é possível retornar valores de arquivos incluídos. Você pode pegar o valor de retorno de um include como faria com uma função normal.

Nota: No PHP 3, o return não pode aparecer dento de um bloco a não ser que ele seja um bloco de função, e nesse caso return() se aplica apenas para a função e não para todo o arquivo.

Exemplo 11-7. Instruções include() e return()

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // imprime 'PHP'

$bar = include 'noreturn.php';

echo $bar; // imprime 1

?>

$bar assimila o valor 1 porque a inclusão foi realizada com sucesso. Verifique a diferença entre os exemplo. O primeiro utiliza return() dentro do arquivo incluído enquanto que o outro não. Há outras maneiras de "incluir" arquivos dentro de variáveis, com fopen(), file() ou utilizando include() através das Funções de Controle de Output.

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Veja também: require(), require_once(),
include_once(), readfile(),
virtual() e
include_path.


include_once

Manual do PHP
Anterior Capítulo 11. Estruturas de Controle Próxima

include_once()

A instrução include_once() inclui e avalia o arquivo especificado durante a execução de um script. Seu comportamento é similar a instrução include(), a não ser que o arquivo informado já tenha sido incluído, não refazendo a operação novamente. Como o nome sugere, ele será incluído apenas uma vez.

include_once() pode ser utilizado nos casos em que o mesmo arquivo pode acabar sendo incluído mais de uma vez durante a execução de um script em particular, quando na verdade ele só pode ser incluído apenas uma para evitar problemas com redefinições de funções, alterações nos valores de variáveis, etc.

Para maiores informações utilizando require_once() e include_once(), veja o código do PEAR incluído nas últimas distribuições do código fonte do PHP.

Nota: include_once() foi acrescentado a partir PHP 4.0.1pl2

Nota: Esteja avisado que o comportamento de include_once() e require_once() pode não ser o que você espera em um sistema operacional insensitivo ao caso (como o Windows).

Exemplo 11-9. include_once() não diferencia maiúsculas e minuúsculas no Windows

<?php
include_once("a.php"); // isto irá incluir a.php
include_once("A.php"); // isto irá incluir a.php de novo no Windows!
?>

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Veja também: include(),
require(), require_once(),
get_required_files(),
get_included_files(), readfile()
e virtual().

Anterior | Principal | Próxima
require_once() | Acima | Funções


require

Manual do PHP
Anterior Capítulo 11. Estruturas de Controle Próxima

require()

A instrução require() inclui a avalia um arquivo específico.

Informações detalhadas de como essa inclusão funciona está descrita na documentação do include().

require() e include() são idênticos em todas as formas exceto pela manipulação de erros. include() produz um Warning enquanto require() produzirá um Fatal Error. Em outras palavras, não hesite em utilizar require() se na falta de um arquivo quiser parar o processamento da página. include() não se comporta da mesma maneira, e o script poderá continuar nessa situação. Em todo caso, vale a pena confirmar a configuração da diretiva include_path.

Exemplo 11-2. Exemplos de require()s simples

<?php

require 'prepend.php';

require $somefile;

require ('somefile.txt');

?>

Vaja a documentação de include() para mais exemplos.

Nota: Até o PHP 4.0.2, havia o seguinte comportamento: require() sempre tentará ler o arquivo informado, mesmo que que a linha do require nunca seja executada. É por isso que instruções condicionais não afetam require(). Entretanto, se a linha onde ocorre o require() não for executada, nada do código incluído do arquivo também será. Similarmente, estruturas de loop não afetam o funcionamento do require(). Mas o código incluído pela função será submetida ao loop. A instrução require() apenas ocorre uma vez.

Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Veja também: include(), require_once(),
include_once(), eval(),
file(), readfile(),
virtual() e include_path.

Anterior | Principal | Próxima
return | Acima | include()


require_once

Manual do PHP
Anterior Capítulo 11. Estruturas de Controle Próxima

require_once()

A instrução require_once() incluí e avalia o arquivo especificado durante a execução do script. Seu comportamento é similar ao da instrução require(), a não ser que o arquivo informado já tenha sido incluído, não refazendo a operação novamente. Veja a documentação de require() para maiores informações sobre como essa instrução funciona.

require_once() pode ser utilizado nos casos em que o mesmo arquivo pode acabar sendo incluído mais de uma vez durante a execução de um script em particular, quando na verdade ele só pode ser incluído apenas uma, para evitar problemas com redefinições de funções, alterações nos valores de variáveis, etc.

Para exemplos de utilização de require_once() e include_once(), veja o código do PEAR incluído nas últimas distribuições do código fonte do PHP.

Nota: require_once() foi acrescentado a partir PHP 4.0.1pl2

Nota: Esteja avisado que o comportamento de require_once() e include_once() pode não ser o que você espera em um sistema operacional insensitivo ao caso (como o Windows).

Exemplo 11-8. require_once() não diferencia maiúsculas e minúsculas no Windows

<?php
require_once("a.php"); // isto irá incluir a.php
require_once("A.php"); // isto irá incluir a.php de novo no Windows!
?>

Atenção

A versões Windows do PHP anteriores ao PHP 4.3.0 não suportam acesso a arquivos remotos através desta função, mesmo se allow_url_fopen estiver ativado.

Veja também require(),
include(), include_once(),
get_required_files(),
get_included_files(), readfile()
e virtual().


extends

Permite classes com variáveis e funções similares a uma outra classe. De fato, é uma boa prática definir classes genéricas que podem ser utilizadas em todos os seus projetos, e adaptar essas classes com as necessidades específicas de cada projeto. Para facilitar isso, classes podem ser estensões de outras classes. A classe estendida ou derivada tem todas as variáveis e funções da classe base (isto é chamado herança, afora o fato que ninguém morreu) e mais aquelas que venha a acrescentar na versão estendida. Não é possível subtrair uma classe, ou seja, indefinir quaisquer funções ou variáveis existentes. Uma classe estendida é sempre dependente de uma única classe base, e portanto, herança múltipla não é suportada. Classes são estendidas utilizando a instrução 'extends'.

<?php
class CarrinhoDeComprasNomeado extends CarrinhoDeCompras {
    var $proprietario;

    function set_proprietario ($name) {
        $this->proprietario = $name;
    }
}
?>

Isto define uma classe chamada CarrinhoDeComprasNomeado que tem todas as variáveis e funções de CarrinhoDeCompras mais a variável $proprietario e uma função set_proprietario(). Você pode criar um carrinho nomeado da maneira usual e configurar e obter o proprietário do carrinho. Você ainda pode continuar utilizando carrinhos normais e carrinhos nomeados:

<?php
$ncart = new CarrinhoDeComprasNomeado;
$ncart->set_proprietario("kris");
print $ncart->proprietario;
$ncart->add_item("10", 1);  // (funcionalidade herdade do CarrinhoDeCompras)
?>

Isto é chamado relacionamento "pai-filho". Você cria uma classe pai e utiliza extends para criar uma nova classe baseada na classe pai: sua classe filha. Você ainda pode criar uma nova classe estendida a partir dessa classe filha e assim por diante.

Nota: As classes precisam ser definidas antes de serem utilizadas! Se você estender a classe CarrinhoDeComprasNomeado da classe CarrinhoDeCompras, você precisa antes criar a classe chamada CarrinhoDeCompras. Se você quiser criar uma outra classe chamada CarrinhoDeComprasNomeadoAmarelo baseada na classe CarrinhoDeComprasNomeado você tem que definir CarrinhoDeComprasNomeado primeiro. Trocando em miúdos: a ordem em que as classes são definidas é importante.

Anterior | Principal | Próxima
Classes e Objetos | Acima | Construtores


::

Cuidado

O seguinte é valido para o PHP 4 somente.

As vezes pode ser útil se referir a funções e variáveis na classe base ou referenciar funções em classes que não possuem qualquer instância. O operador :: pode ser utilizado nessas ocasiões.

<?php
class A {
    function exemplo() {
        echo "Eu sou a função original A::exemplo().<br />\n";
    }
}

class B extends A {
    function exemplo() {
        echo "Eu sou a função redefinida B::exemplo().<br />\n";
        A::exemplo();
    }
}

// Nao ha nenhum objeto da classe A.
// Isto ira imprimir
//   Eu sou a função original A::exemplo().<br />
A::exemplo();

// cria um objeto a partir da classe B
$b = new B;

// Isto ira imprimir
//   Eu sou a função redefinida B::exemplo().<br />
//   Eu sou a função original A::exemplo().<br />
$b->exemplo();
?>

O exemplo acima chama a função exemplo() da classe A, mas não há nenhum objeto da classe A, então não podemos escrever $a->exemplo() ou qualquer coisa similar, Em vez disso, nós chamamos exemplo() como uma 'função de classe', ou seja, como uma função da classe propriamente dita, não qualquer objeto dessa classe.

Existem funções de classe, mas não variáveis de classe. De fato, não há nenhum objeto durante toda a execução. Assim, uma função de classe não pode usar qualquer variável de objeto (mas pode usar variáveis locais e globais), e nunca podendo utilizar-se de $this.

Ainda no exemplo acima, a classe B redefine a função exemplo(). A definição da função original na classe A é ocultada e nunca disponível, a não ser que você se referencie especificamente a implementação de exemplo() da classe A utilizando-se do operador ::. Escrevemos A::exemplo() para isso (de fato, você também pode escrever parent::exemplo(), como mostrado na próxima seção).

Nesse contexto, existe um objeto e ele pode ter variáveis de objeto. Assim, quando utilizado de DENTRO de uma função de objeto, você pode usar $this e variáveis de objeto.

Anterior | Principal | Próxima
Construtores | Acima | parent


parent

Você pode se encontrar escrevendo código que precisa referenciar a variáveis e funções na classe base. Isto é particularmente verdade se você derivou uma classe como um refinamento ou especialização de código de sua classe base.

Em vez de utilizar o nome literal da classe base em seu código, você pode usar o nome especial parent, que se refere ao nome da sua classe base como informado na declaração extends. Fazendo isso, evita assim a utilização do nome da sua classe base em mais de um lugar. Se sua árvore de herança mudar durante a implementação, a modificação é mais facilmente realizada pela simples alteração da declaração extends de suas classes.

<?php
class A {
    function exemplo() {
        echo "Eu sou A:exemplo() e provenho funcionalidades básicas.<br />\n";
    }
}

class B extends A {
    function exemplo() {
        echo "Eu sou B::exemplo() e provenho funcionalidades adicionais.<br />\n";
        parent::exemplo();
    }
}

$b = new B;

// Isto ira chamar B::exemplo(), que por sua vez chama A::exemplo().
$b->exemplo();
?>

Anterior | Principal | Próxima
:: | Acima | Serializando objetos - objetos em sessões


Construtores

Cuidado

Os construtores se comportam diferentemente entre o PHP 3 e o PHP 4. A semântica do PHP 4 é atualmente preferencial.

Construtores são funções numa classe que são automaticamente chamados quando você cria uma nova instância da classe com new. No PHP 3, uma função se torna um construtor quando ele tem o mesmo nome da classe. No PHP 4, uma função se torna um construtor quando ele tem o mesmo nome da classe onde ela foi definida (a diferença é sutil, mas crucial --- veja abaixo).

<?php
// Funciona no PHP 3 e 4
class CarrinhoDeComprasAutomatico extends CarrinhoDeCompras {
    function CarrinhoDeComprasAutomatico() {
        $this->add_item ("10", 1);
    }
}
?>

Isto define uma classe chamada CarrinhoDeComprasAutomatico que é um CarrinhoDeCompras mais um construtor que inicializa o carrinho com um item do artigo numero "10" cada vez que um novo CarrinhoDeComprasAutomatico for criado com "new". Construtores pode ter argumentos e esses argumentos podem ser opcionais, o que os torna muito mais práticos. Para permitir a criação de classes sem parâmetros, todos os parâmetros dos construtores pode ser feitos opcionais simplesmente por terem valores default.

<?php
// Funciona no PHP 3 e 4
class CarrinhoDeComprasComConstrutor extends CarrinhoDeCompras {
    function CarrinhoDeComprasComConstrutor($item = "10", $num = 1) {
        $this->add_item ($item, $num);
    }
}

// Fazendo compras do mesmo modo antigo

$carrinho_default = new CarrinhoDeComprasComConstrutor;

// Fazendo compres de verdade

$carrinhho_diferente = new CarrinhoDeComprasComConstrutor("20", 17);
?>

Você pode usar o operador @ para esconder erros gerados no construtor do objeto, por exemplo: @new.

Cuidado

No PHP 3, classes derivadas e construtores tem uma série de limitações. Os exemplo seguintes precisam ser lidos cuidadosamente para que você entenda essas limitações.

<?php
class A {
    function A() {
      echo "Eu sou o construtor de A.<br />\n";
    }
}

class B extends A {
    function C() {
        echo "Eu sou uma função normal.<br />\n";
    }
}

// nenhum construtor é chamado no PHP 3
$b = new B;
?>

No PHP 3, nenhum construtor é chamado no exemplo acima. A regra no PHP 3 é: 'Um construtor é uma função com o mesmo nome da classe'. O nome da classe é B, e não há nenhuma função chamada B() na classe B. Nada ocorre.

Isto foi corrigido no PHP 4 pela instrução de outra regra: Se uma classe não tem construtor, o construtor da classe base é chamado, se existir. O exemplo acima teriam impresso 'Eu sou o construtor de A.<br />' no PHP 4.

<?php
class A
{
    function A()
    {
        echo "Eu sou o construtor de A.<br />\n";
    }

    function B()
    {
        echo "Eu sou uma função normal chamada B na classe A.<br />\n";
        echo "Eu não sou o construtor de A.<br />\n";
    }
}

class B extends A
{
    function C()
    {
        echo "Eu sou uma função normal.<br />\n";
    }
}

// Isto irá chamar B() como um construtor.
$b = new B;
?>

No PHP 3, a função B() na classe A se tornará silenciosamente um construtor na classe B, mesmo que isso nunca tenha sido planejado. A regra no PHP 3 é: 'Um construtor é uma função com o mesmo nome da classe'. PHP 3 não se preocupa se a função foi definida na classe B, ou se ela foi herdada.

Isto foi corrigido no PHP 4 pela modificação da regra para: 'Um construtor é uma função com o mesmo nome da classe onde ela é definida.'. Assim, no PHP 4, como a classe B não tem nenhuma função construtora definida nela mesma então o construtor da classe base será chamado, imprimindo 'Eu sou o construtor de A.<br />'.

Cuidado

Nem o PHP 3 ou o 4 chamam automaticamente os construtores da classe base a partir do construtor da classe derivada. É de sua responsabilidade propagar a chamada dos construtores herança acima, onde apropriado.

Nota: Não existem destrutores no PHP 3 ou 4. Mas você pode usar register_shutdown_function() para simular a maioria dos efeitos de destrutores.

Destrutores são funções que são chamadas automaticamente quando um objeto é destruído, ou pela utilização de unset() ou pela simples saída do escopo. Não existem destrutores no PHP.

Anterior | Principal | Próxima
extends | Acima | ::


As funções mágicas __sleep e __wakeup

serialize() verifica se sua classe tem uma função com o nome mágico __sleep. Se sim, essa função será executada antes de qualquer serialização. Assim é possível controlar a persistência do objeto enquanto deve retornar um array com os nomes de todas as variáveis daquele objeto que precisam ser serializadas.

__sleep é planejado para fechar quaisquer conexões com bancos de dados que o objeto tenha, realizar commits pendentes ou realizar tarefas de limpeza semelhantes. A função também é útil se você tem objetos muito grandes que não precisam ser salvos completamente.

Da mesma forma, unserialize() verifica pela presença de uma função com o nome mágico __wakeup. Se presente, esta função pode reconstruir quaisquer recursos que o objeto tenha.

__wakeup é planejado para restabelecer conexões com bancos de dados perdidas durante a serialização e para realizar outras tarefas de reinicialização.

Anterior | Principal | Próxima
Serializando objetos - objetos em sessões | Acima | Referências dentro do construtor


empty("0")

The perhaps most controversial change in behavior has happened to the behavior of the empty(). A String containing only the character '0' (zero) is now considered empty while it wasn't in PHP 3.

This new behavior makes sense in web applications, with all input fields returning strings even if numeric input is requested, and with PHP's capabilities of automatic type conversion. But on the other hand it might break your code in a rather subtle way, leading to misbehavior that is hard to track down if you do not know about what to look for.

Anterior | Principal | Próxima
Initializers | Acima | Missing functions


old_function

The old_function statement allows you to declare a function using a syntax identical to PHP/FI2 (except you must replace 'function' with 'old_function'.

This is a deprecated feature, and should only be used by the PHP/FI2->PHP 3 convertor.

Atenção

Functions declared as old_function cannot be called from PHP's internal code. Among other things, this means you can't use them in functions such as usort(), array_walk(), and register_shutdown_function(). You can get around this limitation by writing a wrapper function (in normal PHP 3 form) to call the old_function.

Anterior | Principal | Próxima
Migrating from PHP/FI 2 to PHP 3 | Acima | Start/end tags


Function TRUE/FALSE return values

Most internal functions have been rewritten so they return TRUE when successful and FALSE when failing, as opposed to 0 and -1 in PHP/FI 2.0, respectively. The new behaviour allows for more logical code, like $fp = fopen("/your/file") or fail("darn!");. Because PHP/FI 2.0 had no clear rules for what functions should return when they failed, most such scripts will probably have to be checked manually after using the 2.0 to 3.0 convertor.

Exemplo D-9. Migration from 2.0: return values, old code

$fp = fopen($file, "r");
if ($fp == -1);
    echo("Could not open $file for reading<br />\n");
endif;

Exemplo D-10. Migration from 2.0: return values, new code

$fp = @fopen($file, "r") or print("Could not open $file for reading<br />\n");

Anterior | Principal | Próxima
Short-circuited boolean evaluation | Acima | Other incompatibilities


Core Predefined Constants

Core Predefined Constants -- Constants defined in the PHP core, Zend, and SAPI modules

Description

These constants are defined by the PHP core. This includes PHP, the Zend engine, and SAPI modules.

PHP_VERSION (string)

PHP_OS (string)

DEFAULT_INCLUDE_PATH (string)

PEAR_INSTALL_DIR (string)

PEAR_EXTENSION_DIR (string)

PHP_EXTENSION_DIR (string)

PHP_BINDIR (string)

PHP_LIBDIR (string)

PHP_DATADIR (string)

PHP_SYSCONFDIR (string)

PHP_LOCALSTATEDIR (string)

PHP_CONFIG_FILE_PATH (string)

PHP_OUTPUT_HANDLER_START (integer)

PHP_OUTPUT_HANDLER_CONT (integer)

PHP_OUTPUT_HANDLER_END (integer)

E_ERROR (integer)

E_WARNING (integer)

E_PARSE (integer)

E_NOTICE (integer)

E_CORE_ERROR (integer)

E_CORE_WARNING (integer)

E_COMPILE_ERROR (integer)

E_COMPILE_WARNING (integer)

E_USER_ERROR (integer)

E_USER_WARNING (integer)

E_USER_NOTICE (integer)

E_ALL (integer)

Anterior | Principal | Próxima
Constantes Predefinidas | Acima | Standard Predefined Constants


Standard Predefined Constants

Standard Predefined Constants -- Constants defined in PHP by default

Description

These constants are defined in PHP by default.

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

SORT_ASC (integer)

SORT_DESC (integer)

SORT_REGULAR (integer)

SORT_NUMERIC (integer)

SORT_STRING (integer)

CASE_LOWER (integer)

CASE_UPPER (integer)

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

INI_USER (integer)

INI_PERDIR (integer)

INI_SYSTEM (integer)

INI_ALL (integer)

M_E (float)

M_LOG2E (float)

M_LOG10E (float)

M_LN2 (float)

M_LN10 (float)

M_PI (float)

M_PI_2 (float)

M_PI_4 (float)

M_1_PI (float)

M_2_PI (float)

M_2_SQRTPI (float)

M_SQRT2 (float)

M_SQRT1_2 (float)

CRYPT_SALT_LENGTH (integer)

CRYPT_STD_DES (integer)

CRYPT_EXT_DES (integer)

CRYPT_MD5 (integer)

CRYPT_BLOWFISH (integer)

DIRECTORY_SEPARATOR (string)

SEEK_SET (integer)

SEEK_CUR (integer)

SEEK_END (integer)

LOCK_SH (integer)

LOCK_EX (integer)

LOCK_UN (integer)

LOCK_NB (integer)

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

INFO_GENERAL (integer)

INFO_CREDITS (integer)

INFO_CONFIGURATION (integer)

INFO_MODULES (integer)

INFO_ENVIRONMENT (integer)

INFO_VARIABLES (integer)

INFO_LICENSE (integer)

INFO_ALL (integer)

CREDITS_GROUP (integer)

CREDITS_GENERAL (integer)

CREDITS_SAPI (integer)

CREDITS_MODULES (integer)

CREDITS_DOCS (integer)

CREDITS_FULLPAGE (integer)

CREDITS_QA (integer)

CREDITS_ALL (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

ABDAY_1 (integer)

ABDAY_2 (integer)

ABDAY_3 (integer)

ABDAY_4 (integer)

ABDAY_5 (integer)

ABDAY_6 (integer)

ABDAY_7 (integer)

DAY_1 (integer)

DAY_2 (integer)

DAY_3 (integer)

DAY_4 (integer)

DAY_5 (integer)

DAY_6 (integer)

DAY_7 (integer)

ABMON_1 (integer)

ABMON_2 (integer)

ABMON_3 (integer)

ABMON_4 (integer)

ABMON_5 (integer)

ABMON_6 (integer)

ABMON_7 (integer)

ABMON_8 (integer)

ABMON_9 (integer)

ABMON_10 (integer)

ABMON_11 (integer)

ABMON_12 (integer)

MON_1 (integer)

MON_2 (integer)

MON_3 (integer)

MON_4 (integer)

MON_5 (integer)

MON_6 (integer)

MON_7 (integer)

MON_8 (integer)

MON_9 (integer)

MON_10 (integer)

MON_11 (integer)

MON_12 (integer)

AM_STR (integer)

PM_STR (integer)

D_T_FMT (integer)

D_FMT (integer)

T_FMT (integer)

T_FMT_AMPM (integer)

ERA (integer)

ERA_YEAR (integer)

ERA_D_T_FMT (integer)

ERA_D_FMT (integer)

ERA_T_FMT (integer)

ALT_DIGITS (integer)

INT_CURR_SYMBOL (integer)

CURRENCY_SYMBOL (integer)

CRNCYSTR (integer)

MON_DECIMAL_POINT (integer)

MON_THOUSANDS_SEP (integer)

MON_GROUPING (integer)

POSITIVE_SIGN (integer)

NEGATIVE_SIGN (integer)

INT_FRAC_DIGITS (integer)

FRAC_DIGITS (integer)

P_CS_PRECEDES (integer)

P_SEP_BY_SPACE (integer)

N_CS_PRECEDES (integer)

N_SEP_BY_SPACE (integer)

P_SIGN_POSN (integer)

N_SIGN_POSN (integer)

DECIMAL_POINT (integer)

RADIXCHAR (integer)

THOUSANDS_SEP (integer)

THOUSEP (integer)

GROUPING (integer)

YESEXPR (integer)

NOEXPR (integer)

YESSTR (integer)

NOSTR (integer)

CODESET (integer)

LOG_EMERG (integer)

LOG_ALERT (integer)

LOG_CRIT (integer)

LOG_ERR (integer)

LOG_WARNING (integer)

LOG_NOTICE (integer)

LOG_INFO (integer)

LOG_DEBUG (integer)

LOG_KERN (integer)

LOG_USER (integer)

LOG_MAIL (integer)

LOG_DAEMON (integer)

LOG_AUTH (integer)

LOG_SYSLOG (integer)

LOG_LPR (integer)

LOG_NEWS (integer)

LOG_UUCP (integer)

LOG_CRON (integer)

LOG_AUTHPRIV (integer)

LOG_LOCAL0 (integer)

LOG_LOCAL1 (integer)

LOG_LOCAL2 (integer)

LOG_LOCAL3 (integer)

LOG_LOCAL4 (integer)

LOG_LOCAL5 (integer)

LOG_LOCAL6 (integer)

LOG_LOCAL7 (integer)

LOG_PID (integer)

LOG_CONS (integer)

LOG_ODELAY (integer)

LOG_NDELAY (integer)

LOG_NOWAIT (integer)

LOG_PERROR (integer)

Anterior | Principal | Próxima
Core Predefined Constants | Acima | List of Resource Types


Stream open options

Stream open options -- Affects the operation of stream factory functions

Description

One or more of these values can be combined using the OR operator.

IGNORE_PATH

This is the default option for streams; it requests that the include_path is not to be searched for the requested file.

USE_PATH

Requests that the include_path is to be searched for the requested file.

IGNORE_URL

Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.

IGNORE_URL_WIN

On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.

ENFORCE_SAFE_MODE

Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.

REPORT_ERRORS

If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.

STREAM_MUST_SEEK

This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Nota: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST

If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires.

The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream.

Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Anterior | Principal | Próxima
Streams Constants | Acima | FAQ: Perguntas Mais Freqüentes


php_register_url_stream_wrapper

(no version information, might be only in CVS)

php_register_url_stream_wrapper -- Registers a wrapper with the Streams API

Description

int php_register_url_stream_wrapper ( char * protocol, php_stream_wrapper * wrapper, TSRMLS_DC )

php_register_url_stream_wrapper() registers wrapper as the handler for the protocol specified by protocol.

Nota: If you call this function from a loadable module, you *MUST* call php_unregister_url_stream_wrapper() in your module shutdown function, otherwise PHP will crash.

Anterior | Principal | Próxima
php_stream_passthru | Acima | php_unregister_url_stream_wrapper


php_stream_can_cast

(no version information, might be only in CVS)

php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket

Description

int php_stream_can_cast ( php_stream * stream, int castas)

This function is equivalent to calling php_stream_cast() with ret set to NULL and flags set to 0. It returns SUCCESS if the stream can be converted into the form requested, or FAILURE if the conversion cannot be performed.

Nota: Although this function will not perform the conversion, some internal stream state *might* be changed by this call.

Nota: You must explicitly compare the return value of this function with one of the constants, as described in php_stream_cast().

See also php_stream_cast() and php_stream_is().

Anterior | Principal | Próxima
php_stream_cast | Acima | php_stream_is_persistent


php_stream_cast

(no version information, might be only in CVS)

php_stream_cast -- Convert a stream into another form, such as a FILE* or socket

Description

int php_stream_cast ( php_stream * stream, int castas, void ** ret, int flags)

php_stream_cast() attempts to convert stream into a resource indicated by castas. If ret is NULL, the stream is queried to find out if such a conversion is possible, without actually performing the conversion (however, some internal stream state *might* be changed in this case). If flags is set to REPORT_ERRORS, an error message will be displayed is there is an error during conversion.

Nota: This function returns SUCCESS for success or FAILURE for failure. Be warned that you must explicitly compare the return value with SUCCESS or FAILURE because of the underlying values of those constants. A simple boolean expression will not be interpreted as you intended.

Tabela 43-1. Resource types for castas

Value | Meaning
PHP_STREAM_AS_STDIO | Requests an ANSI FILE* that represents the stream
PHP_STREAM_AS_FD | Requests a POSIX file descriptor that represents the stream
PHP_STREAM_AS_SOCKETD | Requests a network socket descriptor that represents the stream

In addition to the basic resource types above, the conversion process can be altered by using the following flags by using the OR operator to combine the resource type with one or more of the following values:

Tabela 43-2. Resource types for castas

Value | Meaning
PHP_STREAM_CAST_TRY_HARD | Tries as hard as possible, at the expense of additional resources, to ensure that the conversion succeeds
PHP_STREAM_CAST_RELEASE | Informs the streams API that some other code (possibly a third party library) will be responsible for closing the underlying handle/resource. This causes the stream to be closed in such a way the underlying handle is preserved and returned in ret. If this function succeeds, stream should be considered closed and should no longer be used.

Nota: If your system supports fopencookie() (systems using glibc 2 or later), the streams API will always be able to synthesize an ANSI FILE* pointer over any stream. While this is tremendously useful for passing any PHP stream to any third-party libraries, such behaviour is not portable. You are requested to consider the portability implications before distributing you extension. If the fopencookie synthesis is not desirable, you should query the stream to see if it naturally supports FILE* by using php_stream_is()

Nota: If you ask a socket based stream for a FILE*, the streams API will use fdopen() to create it for you. Be warned that doing so may cause data that was buffered in the streams layer to be lost if you intermix streams API calls with ANSI stdio calls.

See also php_stream_is() and php_stream_can_cast().

Anterior | Principal | Próxima
php_stream_make_seekable | Acima | php_stream_can_cast


php_stream_close

(no version information, might be only in CVS)

php_stream_close -- Close a stream

Description

int php_stream_close ( php_stream * stream)

php_stream_close() safely closes stream and releases the resources associated with it. After stream has been closed, it's value is undefined and should not be used.

php_stream_close() returns 0 if the stream was closed or EOF to indicate an error. Regardless of the success of the call, stream is undefined and should not be used after a call to this function.

Anterior | Principal | Próxima
php_stream_gets | Acima | php_stream_flush


php_stream_closedir

(no version information, might be only in CVS)

php_stream_closedir -- Close a directory stream and release resources

Description

int php_stream_closedir ( php_stream * dirstream)

php_stream_closedir() closes a directory stream and releases resources associated with it. Returns 0 on success, but -1 on failure.

Anterior | Principal | Próxima
php_stream_rewinddir | Acima | Streams File API Reference


php_stream_copy_to_mem

(no version information, might be only in CVS)

php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer

Description

size_t php_stream_copy_to_mem ( php_stream * src, char ** buf, size_t maxlen, int persistent)

php_stream_copy_to_mem() allocates a buffer maxlen+1 bytes in length using pemalloc() (passing persistent). It then reads maxlen bytes from src and stores them in the allocated buffer.

The allocated buffer is returned in buf, and the number of bytes successfully read. You, the caller, are responsible for freeing the buffer by passing it and persistent to pefree().

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Nota: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Anterior | Principal | Próxima
php_stream_copy_to_stream | Acima | php_stream_make_seekable


php_stream_copy_to_stream

(no version information, might be only in CVS)

php_stream_copy_to_stream -- Copy data from one stream to another

Description

size_t php_stream_copy_to_stream ( php_stream * src, php_stream * dest, size_t maxlen)

php_stream_copy_to_stream() attempts to read up to maxlen bytes of data from src and write them to dest, and returns the number of bytes that were successfully copied.

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Nota: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Anterior | Principal | Próxima
php_stream_tell | Acima | php_stream_copy_to_mem


php_stream_eof

(no version information, might be only in CVS)

php_stream_eof -- Check for an end-of-file condition on a stream

Description

int php_stream_eof ( php_stream * stream)

php_stream_eof() checks for an end-of-file condition on stream.

php_stream_eof() returns the 1 to indicate EOF, 0 if there is no EOF and -1 to indicate an error.

Anterior | Principal | Próxima
php_stream_write | Acima | php_stream_getc


php_stream_filter_register_factory

(no version information, might be only in CVS)

php_stream_filter_register_factory -- Registers a filter factory with the Streams API

Description

int php_stream_filter_register_factory ( const char * filterpattern, php_stream_filter_factory * factory)

Use this function to register a filter factory with the name given by filterpattern. filterpattern can be either a normal string name (i.e. myfilter) or a global pattern (i.e. myfilterclass.*) to allow a single filter to perform different operations depending on the exact name of the filter invoked (i.e. myfilterclass.foo, myfilterclass.bar, etc...)

Nota: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Anterior | Principal | Próxima
php_stream_open_wrapper_as_file | Acima | php_stream_filter_unregister_factory


php_stream_filter_unregister_factory

(no version information, might be only in CVS)

php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Description

int php_stream_filter_unregister_factory ( const char * filterpattern)

Deregisters the filterfactory specified by the filterpattern making it no longer available for use.

Nota: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Anterior | Principal | Próxima
php_stream_filter_register_factory | Acima | Streams Dir API Reference


php_stream_flush

(no version information, might be only in CVS)

php_stream_flush -- Flush stream buffers to storage

Description

int php_stream_flush ( php_stream * stream)

php_stream_flush() causes any data held in write buffers in stream to be committed to the underlying storage.

php_stream_flush() returns 0 if the buffers were flushed, or if the buffers did not need to be flushed, but returns EOF to indicate an error.

Anterior | Principal | Próxima
php_stream_close | Acima | php_stream_seek


php_stream_fopen_from_file

(no version information, might be only in CVS)

php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream

Description

php_stream * php_stream_fopen_from_file ( FILE * file, char * mode)

php_stream_fopen_from_file() returns a stream based on the file. mode must be the same as the mode used to open file, otherwise strange errors may occur when trying to write when the mode of the stream is different from the mode on the file.

Anterior | Principal | Próxima
Streams File API Reference | Acima | php_stream_fopen_tmpfile


php_stream_fopen_temporary_file

(no version information, might be only in CVS)

php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Description

php_stream * php_stream_fopen_temporary_file ( const char * dir, const char * pfx, char ** opened)

php_stream_fopen_temporary_file() generates a temporary file name in the directory specified by dir and with a prefix of pfx. The generated file name is returns in the opened parameter, which you are responsible for cleaning up using efree(). A stream is opened on that generated filename in "w+b" mode. The file is NOT automatically deleted; you are responsible for unlinking or moving the file when you have finished with it.

Anterior | Principal | Próxima
php_stream_fopen_tmpfile | Acima | Streams Socket API Reference


php_stream_fopen_tmpfile

(no version information, might be only in CVS)

php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream

Description

php_stream * php_stream_fopen_tmpfile ( void )

php_stream_fopen_from_file() returns a stream based on a temporary file opened with a mode of "w+b". The temporary file will be deleted automatically when the stream is closed or the process terminates.

Anterior | Principal | Próxima
php_stream_fopen_from_file | Acima | php_stream_fopen_temporary_file


php_stream_getc

(no version information, might be only in CVS)

php_stream_getc -- Read a single byte from a stream

Description

int php_stream_getc ( php_stream * stream)

php_stream_getc() reads a single character from stream and returns it as an unsigned char cast as an int, or EOF if the end-of-file is reached, or an error occurred.

php_stream_getc() may block in the same way as php_stream_read() blocks.

The internal position of the stream is advanced by 1 if successful.

Anterior | Principal | Próxima
php_stream_eof | Acima | php_stream_gets


php_stream_gets

(no version information, might be only in CVS)

php_stream_gets -- Read a line of data from a stream into a buffer

Description

char * php_stream_gets ( php_stream * stream, char * buf, size_t maxlen)

php_stream_gets() reads up to count-1 bytes of data from stream and copies them into the buffer buf. Reading stops after an EOF or a newline. If a newline is read, it is stored in buf as part of the returned data. A NUL terminating character is stored as the last character in the buffer.

php_stream_read() returns buf when successful or NULL otherwise.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

This function may block in the same way as php_stream_read().

Anterior | Principal | Próxima
php_stream_getc | Acima | php_stream_close


php_stream_is

(no version information, might be only in CVS)

php_stream_is -- Determines if a stream is of a particular type

Description

int php_stream_is ( php_stream * stream, int istype)

php_stream_is() returns 1 if stream is of the type specified by istype, or 0 otherwise.

Tabela 43-1. Values for istype

Value | Meaning
PHP_STREAM_IS_STDIO | The stream is implemented using the stdio implementation
PHP_STREAM_IS_SOCKET | The stream is implemented using the network socket implementation
PHP_STREAM_IS_USERSPACE | The stream is implemented using the userspace object implementation
PHP_STREAM_IS_MEMORY | The stream is implemented using the grow-on-demand memory stream implementation

Nota: The PHP_STREAM_IS_XXX "constants" are actually defined as pointers to the underlying stream operations structure. If your extension (or some other extension) defines additional streams, it should also declare a PHP_STREAM_IS_XXX constant in it's header file that you can use as the basis of this comparison.

Nota: This function is implemented as a simple (and fast) pointer comparison, and does not change the stream state in any way.

See also php_stream_cast() and php_stream_can_cast().

Anterior | Principal | Próxima
php_stream_is_persistent | Acima | php_stream_passthru


php_stream_is_persistent

(no version information, might be only in CVS)

php_stream_is_persistent -- Determines if a stream is a persistent stream

Description

int php_stream_is_persistent ( php_stream * stream)

php_stream_is_persistent() returns 1 if the stream is a persistent stream, 0 otherwise.

Anterior | Principal | Próxima
php_stream_can_cast | Acima | php_stream_is


php_stream_make_seekable

(no version information, might be only in CVS)

php_stream_make_seekable -- Convert a stream into a stream is seekable

Description

int php_stream_make_seekable ( php_stream * origstream, php_stream ** newstream, int flags)

php_stream_make_seekable() checks if origstream is seekable. If it is not, it will copy the data into a new temporary stream. If successful, newstream is always set to the stream that is valid to use, even if the original stream was seekable.

flags allows you to specify your preference for the seekable stream that is returned: use PHP_STREAM_NO_PREFERENCE to use the default seekable stream (which uses a dynamically expanding memory buffer, but switches to temporary file backed storage when the stream size becomes large), or use PHP_STREAM_PREFER_STDIO to use "regular" temporary file backed storage.

Tabela 43-1. php_stream_make_seekable() return values

Value | Meaning
PHP_STREAM_UNCHANGED | Original stream was seekable anyway. newstream is set to the value of origstream.
PHP_STREAM_RELEASED | Original stream was not seekable and has been released. newstream is set to the new seekable stream. You should not access origstream anymore.
PHP_STREAM_FAILED | An error occurred while attempting conversion. newstream is set to NULL; origstream is still valid.
PHP_STREAM_CRITICAL | An error occurred while attempting conversion that has left origstream in an indeterminate state. newstream is set to NULL and it is highly recommended that you close origstream.

Nota: If you need to seek and write to the stream, it does not make sense to use this function, because the stream it returns is not guaranteed to be bound to the same resource as the original stream.

Nota: If you only need to seek forwards, there is no need to call this function, as the streams API will emulate forward seeks when the whence parameter is SEEK_CUR.

Nota: If origstream is network based, this function will block until the whole contents have been downloaded.

Nota: NEVER call this function with an origstream that is reference by a file pointer in a PHP script! This function may cause the underlying stream to be closed which could cause a crash when the script next accesses the file pointer!

Nota: In many cases, this function can only succeed when origstream is a newly opened stream with no data buffered in the stream layer. For that reason, and because this function is complicated to use correctly, it is recommended that you use php_stream_open_wrapper() and pass in PHP_STREAM_MUST_SEEK in your options instead of calling this function directly.

Anterior | Principal | Próxima
php_stream_copy_to_mem | Acima | php_stream_cast


php_stream_open_wrapper

(no version information, might be only in CVS)

php_stream_open_wrapper -- Opens a stream on a file or URL

Description

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper() opens a stream on the file, URL or other wrapped resource specified by path. Depending on the value of mode, the stream may be opened for reading, writing, appending or combinations of those. See the table below for the different modes that can be used; in addition to the characters listed below, you may include the character 'b' either as the second or last character in the mode string. The presence of the 'b' character informs the relevant stream implementation to open the stream in a binary safe mode.

The 'b' character is ignored on all POSIX conforming systems which treat binary and text files in the same way. It is a good idea to specify the 'b' character whenever your stream is accessing data where the full 8 bits are important, so that your code will work when compiled on a system where the 'b' flag is important.

Any local files created by the streams API will have their initial permissions set according to the operating system defaults - under Unix based systems this means that the umask of the process will be used. Under Windows, the file will be owned by the creating process. Any remote files will be created according to the URL wrapper that was used to open the file, and the credentials supplied to the remote server.

r

Open text file for reading. The stream is positioned at the beginning of the file.

r+

Open text file for reading and writing. The stream is positioned at the beginning of the file.

w

Truncate the file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+

Open text file for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

a

Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file.

a+

Open text file for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file.

options affects how the path/URL of the stream is interpreted, safe mode checks and actions taken if there is an error during opening of the stream. See Stream open options for more information about options.

If opened is not NULL, it will be set to a string containing the name of the actual file/resource that was opened. This is important when the options include USE_PATH, which causes the include_path to be searched for the file. You, the caller, are responsible for calling efree() on the filename returned in this parameter.

Nota: If you specified STREAM_MUST_SEEK in options, the path returned in opened may not be the name of the actual stream that was returned to you. It will, however, be the name of the original resource from which the seekable stream was manufactured.

Anterior | Principal | Próxima
php_stream_stat | Acima | php_stream_read


php_stream_open_wrapper_as_file

(no version information, might be only in CVS)

php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*

Description

FILE * php_stream_open_wrapper_as_file ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper_as_file() is exactly like php_stream_open_wrapper(), but converts the stream into an ANSI stdio FILE* and returns that instead of the stream. This is a convenient shortcut for extensions that pass FILE* to third-party libraries.

Anterior | Principal | Próxima
php_stream_open_wrapper_ex | Acima | php_stream_filter_register_factory


php_stream_open_wrapper_ex

(no version information, might be only in CVS)

php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context

Description

php_stream * php_stream_open_wrapper_ex ( char * path, char * mode, int options, char ** opened, php_stream_context * context)

php_stream_open_wrapper_ex() is exactly like php_stream_open_wrapper(), but allows you to specify a php_stream_context object using context. To find out more about stream contexts, see XXX

Anterior | Principal | Próxima
php_unregister_url_stream_wrapper | Acima | php_stream_open_wrapper_as_file


php_stream_opendir

(no version information, might be only in CVS)

php_stream_opendir -- Open a directory for file enumeration

Description

php_stream * php_stream_opendir ( char * path, php_stream_context * context)

php_stream_opendir() returns a stream that can be used to list the files that are contained in the directory specified by path. This function is functionally equivalent to POSIX opendir(). Although this function returns a php_stream object, it is not recommended to try to use the functions from the common API on these streams.

Anterior | Principal | Próxima
Streams Dir API Reference | Acima | php_stream_readdir


php_stream_passthru

(no version information, might be only in CVS)

php_stream_passthru -- Outputs all remaining data from a stream

Description

size_t php_stream_passthru ( php_stream * stream)

php_stream_passthru() outputs all remaining data from stream to the active output buffer and returns the number of bytes output. If buffering is disabled, the data is written straight to the output, which is the browser making the request in the case of PHP on a web server, or stdout for CLI based PHP. This function will use memory mapped files if possible to help improve performance.

Anterior | Principal | Próxima
php_stream_is | Acima | php_register_url_stream_wrapper


php_stream_read

(no version information, might be only in CVS)

php_stream_read -- Read a number of bytes from a stream into a buffer

Description

size_t php_stream_read ( php_stream * stream, char * buf, size_t count)

php_stream_read() reads up to count bytes of data from stream and copies them into the buffer buf.

php_stream_read() returns the number of bytes that were read successfully. There is no distinction between a failed read or an end-of-file condition - use php_stream_eof() to test for an EOF.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

If less than count bytes are available to be read, this call will block (or wait) until the required number are available, depending on the blocking status of the stream. By default, a stream is opened in blocking mode. When reading from regular files, the blocking mode will not usually make any difference: when the stream reaches the EOF php_stream_read() will return a value less than count, and 0 on subsequent reads.

Anterior | Principal | Próxima
php_stream_open_wrapper | Acima | php_stream_write


php_stream_readdir

(no version information, might be only in CVS)

php_stream_readdir -- Fetch the next directory entry from an opened dir

Description

php_stream_dirent * php_stream_readdir ( php_stream * dirstream, php_stream_dirent * ent)

php_stream_readdir() reads the next directory entry from dirstream and stores it into ent. If the function succeeds, the return value is ent. If the function fails, the return value is NULL. See php_stream_dirent for more details about the information returned for each directory entry.

Anterior | Principal | Próxima
php_stream_opendir | Acima | php_stream_rewinddir


php_stream_rewinddir

(no version information, might be only in CVS)

php_stream_rewinddir -- Rewind a directory stream to the first entry

Description

int php_stream_rewinddir ( php_stream * dirstream)

php_stream_rewinddir() rewinds a directory stream to the first entry. Returns 0 on success, but -1 on failure.

Anterior | Principal | Próxima
php_stream_readdir | Acima | php_stream_closedir


php_stream_seek

(no version information, might be only in CVS)

php_stream_seek -- Reposition a stream

Description

int php_stream_seek ( php_stream * stream, off_t offset, int whence)

php_stream_seek() repositions the internal position of stream. The new position is determined by adding the offset to the position indicated by whence. If whence is set to SEEK_SET, SEEK_CUR or SEEK_END the offset is relative to the start of the stream, the current position or the end of the stream, respectively.

php_stream_seek() returns 0 on success, but -1 if there was an error.

Nota: Not all streams support seeking, although the streams API will emulate a seek if whence is set to SEEK_CUR and offset is positive, by calling php_stream_read() to read (and discard) offset bytes.

The emulation is only applied when the underlying stream implementation does not support seeking. If the stream is (for example) a file based stream that is wrapping a non-seekable pipe, the streams api will not apply emulation because the file based stream implements a seek operation; the seek will fail and an error result will be returned to the caller.

Anterior | Principal | Próxima
php_stream_flush | Acima | php_stream_tell


php_stream_sock_open_from_socket

(no version information, might be only in CVS)

php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream

Description

php_stream * php_stream_sock_open_from_socket ( int socket, int persistent)

php_stream_sock_open_from_socket() returns a stream based on the socket. persistent is a flag that controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Anterior | Principal | Próxima
Streams Socket API Reference | Acima | php_stream_sock_open_host


php_stream_sock_open_host

(no version information, might be only in CVS)

php_stream_sock_open_host -- Open a connection to a host and return a stream

Description

php_stream * php_stream_sock_open_host ( const char * host, unsigned short port, int socktype, struct timeval * timeout, int persistent)

php_stream_sock_open_host() establishes a connect to the specified host and port. socktype specifies the connection semantics that should apply to the connection. Values for socktype are system dependent, but will usually include (at a minimum) SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP), or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum length (UDP).

persistent is a flag the controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

If not NULL, timeout specifies a maximum time to allow for the connection to be made. If the connection attempt takes longer than the timeout value, the connection attempt is aborted and NULL is returned to indicate that the stream could not be opened.

Nota: The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.

The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.

The streams API places no restrictions on the values you use for socktype, but encourages you to consider the portability of values you choose before you release your extension.

Anterior | Principal | Próxima
php_stream_sock_open_from_socket | Acima | php_stream_sock_open_unix


php_stream_sock_open_unix

(no version information, might be only in CVS)

php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Description

php_stream * php_stream_sock_open_unix ( const char * path, int pathlen, int persistent, struct timeval * timeout)

php_stream_sock_open_unix() attempts to open the Unix domain socket specified by path. pathlen specifies the length of path. If timeout is not NULL, it specifies a timeout period for the connection attempt. persistent indicates if the stream should be opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Nota: This function will not work under Windows, which does not implement Unix domain sockets. A possible exception to this rule is if your PHP binary was built using cygwin. You are encouraged to consider this aspect of the portability of your extension before it's release.

Nota: This function treats path in a binary safe manner, suitable for use on systems with an abstract namespace (such as Linux), where the first character of path is a NUL character.

Anterior | Principal | Próxima
php_stream_sock_open_host | Acima | Streams Structures


php_stream_stat

(no version information, might be only in CVS)

php_stream_stat -- Gets the status for the underlying storage associated with a stream

Description

int php_stream_stat ( php_stream * stream, php_stream_statbuf * ssb)

php_stream_stat() examines the storage to which stream is bound, and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Anterior | Principal | Próxima
php_stream_stat_path | Acima | php_stream_open_wrapper


php_stream_stat_path

(no version information, might be only in CVS)

php_stream_stat_path -- Gets the status for a file or URL

Description

int php_stream_stat_path ( char * path, php_stream_statbuf * ssb)

php_stream_stat_path() examines the file or URL specified by path and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Anterior | Principal | Próxima
Streams Common API Reference | Acima | php_stream_stat


php_stream_tell

(no version information, might be only in CVS)

php_stream_tell -- Determine the position of a stream

Description

off_t php_stream_tell ( php_stream * stream)

php_stream_tell() returns the internal position of stream, relative to the start of the stream. If there is an error, -1 is returned.

Anterior | Principal | Próxima
php_stream_seek | Acima | php_stream_copy_to_stream


php_stream_write

(no version information, might be only in CVS)

php_stream_write -- Write a number of bytes from a buffer to a stream

Description

size_t php_stream_write ( php_stream * stream, const char * buf, size_t count)

php_stream_write() writes count bytes of data from buf into stream.

php_stream_write() returns the number of bytes that were written successfully. If there was an error, the number of bytes written will be less than count.

The internal position of the stream is advanced by the number of bytes that were written, so that subsequent writes will continue writing from that point.

Anterior | Principal | Próxima
php_stream_read | Acima | php_stream_eof


php_unregister_url_stream_wrapper

(no version information, might be only in CVS)

php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API

Description

int php_unregister_url_stream_wrapper ( char * protocol, TSRMLS_DC )

php_unregister_url_stream_wrapper() unregisters the wrapper associated with protocol.

Anterior | Principal | Próxima
php_register_url_stream_wrapper | Acima | php_stream_open_wrapper_ex


struct php_stream_dirent

struct php_stream_dirent -- Holds information about a single file during dir scanning

Description

php_stream_dirent
     char d_name[MAXPATHLEN]

d_name holds the name of the file, relative to the directory being scanned.

Anterior | Principal | Próxima
struct php_stream_statbuf | Acima | struct php_stream_ops


struct php_stream_filter

struct php_stream_filter -- Holds filter properties and pointer to operations

Description

struct _php_stream_filter {
            php_stream_filter_ops *fops;
            void *abstract; /* for use by filter implementation */
            php_stream_filter *next;
            php_stream_filter *prev;
            int is_persistent;

            /* link into stream and chain */
            php_stream_filter_chain *chain;

            /* buffered buckets */
            php_stream_bucket_brigade buffer;
        } php_stream_filter;

Anterior | Principal | Próxima
struct php_stream_wrapper_ops | Acima | struct php_stream_filter_ops


struct php_stream_filter_ops

struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Description

typedef struct _php_stream_filter_ops {
            php_stream_filter_status_t (*filter)(
                    php_stream *stream,
                    php_stream_filter *thisfilter,
                    php_stream_bucket_brigade *buckets_in,
                    php_stream_bucket_brigade *buckets_out,
                    size_t *bytes_consumed,
                    int flags
                    TSRMLS_DC);

            void (*dtor)(php_stream_filter *thisfilter TSRMLS_DC);

            const char *label;
} php_stream_filter_ops;

Anterior | Principal | Próxima
struct php_stream_filter | Acima | Streams Constants


struct php_stream_ops

struct php_stream_ops -- Holds member functions for a stream implementation

Description

typedef struct _php_stream_ops {
             /* all streams MUST implement these operations */
             size_t (*write)(php_stream *stream, const char *buf, size_t count TSRMLS_DC);
             size_t (*read)(php_stream *stream, char *buf, size_t count TSRMLS_DC);
             int (*close)(php_stream *stream, int close_handle TSRMLS_DC);
             int (*flush)(php_stream *stream TSRMLS_DC);

             const char *label; /* name describing this class of stream */

             /* these operations are optional, and may be set to NULL if the stream does not
              * support a particular operation */
            int (*seek)(php_stream *stream, off_t offset, int whence TSRMLS_DC);
            char *(*gets)(php_stream *stream, char *buf, size_t size TSRMLS_DC);
            int (*cast)(php_stream *stream, int castas, void **ret TSRMLS_DC);
            int (*stat)(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC);
        } php_stream_ops;

Anterior | Principal | Próxima
struct php_stream_dirent | Acima | struct php_stream_wrapper


struct php_stream_statbuf

struct php_stream_statbuf -- Holds information about a file or URL

Description

php_stream_statbuf
     struct stat sb

sb is a regular, system defined, struct stat.

Anterior | Principal | Próxima
Streams Structures | Acima | struct php_stream_dirent


struct php_stream_wrapper

struct php_stream_wrapper -- Holds wrapper properties and pointer to operations

Description

struct _php_stream_wrapper  {
            php_stream_wrapper_ops *wops;   /* operations the wrapper can perform */
            void *abstract;                 /* context for the wrapper */
            int is_url;                     /* so that PG(allow_url_fopen) can be respected */

            /* support for wrappers to return (multiple) error messages to the stream opener */
            int err_count;
            char **err_stack;
        } php_stream_wrapper;

Anterior | Principal | Próxima
struct php_stream_ops | Acima | struct php_stream_wrapper_ops


struct php_stream_wrapper_ops

struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation

Description

typedef struct _php_stream_wrapper_ops {
            /* open/create a wrapped stream */
            php_stream *(*stream_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
            /* close/destroy a wrapped stream */
            int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC);
            /* stat a wrapped stream */
            int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb TSR$
            /* stat a URL */
            int (*url_stat)(php_stream_wrapper *wrapper, char *url, php_stream_statbuf *ssb TSRMLS_DC);
            /* open a "directory" stream */
            php_stream *(*dir_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);

            const char *label;

            /* Delete/Unlink a file */
            int (*unlink)(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC);
        } php_stream_wrapper_ops;

Anterior | Principal | Próxima
struct php_stream_wrapper | Acima | struct php_stream_filter


Including Output in phpinfo

Manual do PHP
Anterior Capítulo 36. Printing Information Próxima

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Exemplo 36-1 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Exemplo 36-1. Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Anterior | Principal | Próxima
zend_error() | Acima | Execution Information


zend_error

Manual do PHP
Anterior Capítulo 36. Printing Information Próxima

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.
zend_error(E_WARNING, "This function has been called with empty arguments");
Tabela 36-1 shows a list of possible values (see Figura 36-1). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Tabela 36-1. Zend's Predefined Error Messages.

Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately .
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Figura 36-1. Display of warning messages in the browser.

Anterior | Principal | Próxima
Printing Information | Acima | Including Output in phpinfo()


Creation of get_module

Manual do PHP
Anterior Capítulo 31. Source Discussion Próxima

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Anterior | Principal | Próxima
Declaration of the Zend Module Block | Acima | Implementation of All Exported Functions